module Selenium::WebDriver::DriverExtensions::HasFedCmDialog

def enable_fedcm_delay=(enable)

This method allows turning it off to let tests run faster where this is not relevant.
FedCm by default delays promise resolution in failure cases for privacy reasons.

Disables the promise rejection delay for FedCm.
def enable_fedcm_delay=(enable)
  @bridge.fedcm_delay(enable)
end

def fedcm_dialog

def fedcm_dialog
  @fedcm_dialog ||= FedCM::Dialog.new(@bridge)
end

def reset_fedcm_cooldown

this method resets that cooldown so that the dialog can be triggered again immediately.
If a user agent triggers a cooldown when the account chooser is dismissed,

Resets the FedCm dialog cooldown.
def reset_fedcm_cooldown
  @bridge.reset_fedcm_cooldown
end

def wait_for_fedcm_dialog(timeout: 5, interval: 0.2, message: nil, ignore: nil)

def wait_for_fedcm_dialog(timeout: 5, interval: 0.2, message: nil, ignore: nil)
  wait = Wait.new(timeout: timeout, interval: interval, message: message, ignore: ignore)
  wait.until do
    fedcm_dialog if fedcm_dialog.type
  rescue Error::NoSuchAlertError
    nil
  end
end