| Index: tools/telemetry/telemetry/internal/browser/browser_credentials.py
|
| diff --git a/tools/telemetry/telemetry/internal/browser/browser_credentials.py b/tools/telemetry/telemetry/internal/browser/browser_credentials.py
|
| deleted file mode 100644
|
| index 54b8fd106108eb43bafd4b1a4a3ca4e4f522c687..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/internal/browser/browser_credentials.py
|
| +++ /dev/null
|
| @@ -1,150 +0,0 @@
|
| -# Copyright 2012 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import json
|
| -import logging
|
| -import os
|
| -
|
| -from telemetry.core import util
|
| -from telemetry.internal.backends import codepen_credentials_backend
|
| -from telemetry.internal.backends import facebook_credentials_backend
|
| -from telemetry.internal.backends import google_credentials_backend
|
| -from telemetry.testing import options_for_unittests
|
| -
|
| -
|
| -class CredentialsError(Exception):
|
| - """Error that can be thrown when logging in."""
|
| -
|
| -
|
| -class BrowserCredentials(object):
|
| - def __init__(self, backends=None):
|
| - self._credentials = {}
|
| - self._credentials_path = None
|
| - self._extra_credentials = {}
|
| -
|
| - if backends is None:
|
| - backends = [
|
| - codepen_credentials_backend.CodePenCredentialsBackend(),
|
| - facebook_credentials_backend.FacebookCredentialsBackend(),
|
| - facebook_credentials_backend.FacebookCredentialsBackend2(),
|
| - google_credentials_backend.GoogleCredentialsBackend(),
|
| - google_credentials_backend.GoogleCredentialsBackend2()]
|
| -
|
| - self._backends = {}
|
| - for backend in backends:
|
| - self._backends[backend.credentials_type] = backend
|
| -
|
| - def AddBackend(self, backend):
|
| - assert backend.credentials_type not in self._backends
|
| - self._backends[backend.credentials_type] = backend
|
| -
|
| - def IsLoggedIn(self, credentials_type):
|
| - if credentials_type not in self._backends:
|
| - raise CredentialsError(
|
| - 'Unrecognized credentials type: %s', credentials_type)
|
| - if credentials_type not in self._credentials:
|
| - return False
|
| - return self._backends[credentials_type].IsLoggedIn()
|
| -
|
| - def CanLogin(self, credentials_type):
|
| - if credentials_type not in self._backends:
|
| - raise CredentialsError(
|
| - 'Unrecognized credentials type: %s', credentials_type)
|
| - return credentials_type in self._credentials
|
| -
|
| - def LoginNeeded(self, tab, credentials_type):
|
| - if credentials_type not in self._backends:
|
| - raise CredentialsError(
|
| - 'Unrecognized credentials type: %s', credentials_type)
|
| - if credentials_type not in self._credentials:
|
| - return False
|
| - from telemetry.page import action_runner
|
| - runner = action_runner.ActionRunner(tab)
|
| - return self._backends[credentials_type].LoginNeeded(
|
| - tab, runner, self._credentials[credentials_type])
|
| -
|
| - def LoginNoLongerNeeded(self, tab, credentials_type):
|
| - assert credentials_type in self._backends
|
| - self._backends[credentials_type].LoginNoLongerNeeded(tab)
|
| -
|
| - @property
|
| - def credentials_path(self):
|
| - return self._credentials_path
|
| -
|
| - @credentials_path.setter
|
| - def credentials_path(self, credentials_path):
|
| - self._credentials_path = credentials_path
|
| - self._RebuildCredentials()
|
| -
|
| - def Add(self, credentials_type, data):
|
| - if credentials_type not in self._extra_credentials:
|
| - self._extra_credentials[credentials_type] = {}
|
| - for k, v in data.items():
|
| - assert k not in self._extra_credentials[credentials_type]
|
| - self._extra_credentials[credentials_type][k] = v
|
| - self._RebuildCredentials()
|
| -
|
| - def _ResetLoggedInState(self):
|
| - """Makes the backends think we're not logged in even though we are.
|
| - Should only be used in unit tests to simulate --dont-override-profile.
|
| - """
|
| - for backend in self._backends.keys():
|
| - # pylint: disable=protected-access
|
| - self._backends[backend]._ResetLoggedInState()
|
| -
|
| - def _RebuildCredentials(self):
|
| - credentials = {}
|
| - if self._credentials_path == None:
|
| - pass
|
| - elif os.path.exists(self._credentials_path):
|
| - with open(self._credentials_path, 'r') as f:
|
| - credentials = json.loads(f.read())
|
| -
|
| - # TODO(nduca): use system keychain, if possible.
|
| - homedir_credentials_path = os.path.expanduser('~/.telemetry-credentials')
|
| - homedir_credentials = {}
|
| -
|
| - if (not options_for_unittests.GetCopy() and
|
| - os.path.exists(homedir_credentials_path)):
|
| - logging.info("Found ~/.telemetry-credentials. Its contents will be used "
|
| - "when no other credentials can be found.")
|
| - with open(homedir_credentials_path, 'r') as f:
|
| - homedir_credentials = json.loads(f.read())
|
| -
|
| - self._credentials = {}
|
| - all_keys = set(credentials.keys()).union(
|
| - homedir_credentials.keys()).union(
|
| - self._extra_credentials.keys())
|
| -
|
| - for k in all_keys:
|
| - if k in credentials:
|
| - self._credentials[k] = credentials[k]
|
| - if k in homedir_credentials:
|
| - logging.info("Will use ~/.telemetry-credentials for %s logins." % k)
|
| - self._credentials[k] = homedir_credentials[k]
|
| - if k in self._extra_credentials:
|
| - self._credentials[k] = self._extra_credentials[k]
|
| -
|
| - def WarnIfMissingCredentials(self, page):
|
| - if page.credentials and not self.CanLogin(page.credentials):
|
| - files_to_tweak = []
|
| - if page.credentials_path:
|
| - files_to_tweak.append(page.credentials_path)
|
| - files_to_tweak.append('~/.telemetry-credentials')
|
| -
|
| - example_credentials_file = os.path.join(
|
| - util.GetTelemetryDir(), 'examples', 'credentials_example.json')
|
| -
|
| - logging.warning("""
|
| - Credentials for %s were not found. page %s will not be tested.
|
| -
|
| - To fix this, either follow the instructions to authenticate to gsutil
|
| - here:
|
| - http://www.chromium.org/developers/telemetry/upload_to_cloud_storage,
|
| -
|
| - or add your own credentials to:
|
| - %s
|
| - An example credentials file you can copy from is here:
|
| - %s\n""" % (page.credentials, page, ' or '.join(files_to_tweak),
|
| - example_credentials_file))
|
|
|