| Index: tools/telemetry/telemetry/form_based_credentials_backend.py
|
| diff --git a/tools/telemetry/telemetry/form_based_credentials_backend.py b/tools/telemetry/telemetry/form_based_credentials_backend.py
|
| index 2769eba4fcc2cdbf74e63435c9ce28b974f42f30..368a80ad4098e7fd0022d5ef1884982bfbede933 100644
|
| --- a/tools/telemetry/telemetry/form_based_credentials_backend.py
|
| +++ b/tools/telemetry/telemetry/form_based_credentials_backend.py
|
| @@ -8,16 +8,11 @@ import telemetry
|
| from telemetry import util
|
|
|
|
|
| -def _IsAlreadyLoggedIn(already_logged_in_element_id, tab):
|
| - return tab.EvaluateJavaScript(
|
| - 'document.getElementById("%s")!== null' % \
|
| - already_logged_in_element_id)
|
| -
|
| -def _WaitForLoginFormToLoad(login_form_id, already_logged_in_element_id, tab):
|
| +def _WaitForLoginFormToLoad(backend, login_form_id, tab):
|
| def IsFormLoadedOrAlreadyLoggedIn():
|
| return tab.EvaluateJavaScript(
|
| 'document.querySelector("#%s")!== null' % login_form_id) or \
|
| - _IsAlreadyLoggedIn(already_logged_in_element_id, tab)
|
| + backend.IsAlreadyLoggedIn(tab)
|
|
|
| # Wait until the form is submitted and the page completes loading.
|
| util.WaitFor(lambda: IsFormLoadedOrAlreadyLoggedIn(), # pylint: disable=W0108
|
| @@ -38,6 +33,9 @@ class FormBasedCredentialsBackend(object):
|
| def __init__(self):
|
| self._logged_in = False
|
|
|
| + def IsAlreadyLoggedIn(self, tab):
|
| + raise NotImplementedError()
|
| +
|
| @property
|
| def credentials_type(self):
|
| raise NotImplementedError()
|
| @@ -55,10 +53,6 @@ class FormBasedCredentialsBackend(object):
|
| raise NotImplementedError()
|
|
|
| @property
|
| - def already_logged_in_element_id(self):
|
| - raise NotImplementedError()
|
| -
|
| - @property
|
| def password_input_id(self):
|
| raise NotImplementedError()
|
|
|
| @@ -90,21 +84,19 @@ class FormBasedCredentialsBackend(object):
|
| try:
|
| logging.info('Loading %s...', self.url)
|
| tab.Navigate(self.url)
|
| - _WaitForLoginFormToLoad(self.login_form_id,
|
| - self.already_logged_in_element_id,
|
| - tab)
|
| + _WaitForLoginFormToLoad(self, self.login_form_id, tab)
|
|
|
| - if _IsAlreadyLoggedIn(self.already_logged_in_element_id, tab):
|
| + if self.IsAlreadyLoggedIn(tab):
|
| self._logged_in = True
|
| return True
|
|
|
| tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()
|
| logging.info('Loaded page: %s', self.url)
|
|
|
| - email_id = 'document.getElementById("%s").value = "%s"; ' % (
|
| - self.login_input_id, config['username'])
|
| - password = 'document.getElementById("%s").value = "%s"; ' % (
|
| - self.password_input_id, config['password'])
|
| + email_id = 'document.querySelector("#%s").%s.value = "%s"; ' % (
|
| + self.login_form_id, self.login_input_id, config['username'])
|
| + password = 'document.querySelector("#%s").%s.value = "%s"; ' % (
|
| + self.login_form_id, self.password_input_id, config['password'])
|
| tab.ExecuteJavaScript(email_id)
|
| tab.ExecuteJavaScript(password)
|
|
|
|
|