Index: tools/telemetry/telemetry/browser_credentials.py |
diff --git a/tools/telemetry/telemetry/browser_credentials.py b/tools/telemetry/telemetry/browser_credentials.py |
deleted file mode 100644 |
index 97717216eefd197981d730f1833b6dcbd04c8ae9..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/browser_credentials.py |
+++ /dev/null |
@@ -1,145 +0,0 @@ |
-# Copyright (c) 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 logging |
-import json |
-import os |
- |
-from telemetry import facebook_credentials_backend |
-from telemetry import google_credentials_backend |
-from telemetry import options_for_unittests |
- |
-class BrowserCredentials(object): |
- def __init__(self, backends = None): |
- self._credentials = {} |
- self._credentials_path = None |
- self._extra_credentials = {} |
- |
- if backends is None: |
- backends = [ |
- facebook_credentials_backend.FacebookCredentialsBackend(), |
- google_credentials_backend.GoogleCredentialsBackend()] |
- |
- 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 Exception('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 Exception('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 Exception('Unrecognized credentials type: %s', credentials_type) |
- if credentials_type not in self._credentials: |
- return False |
- return self._backends[credentials_type].LoginNeeded( |
- tab, 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(): |
- self._backends[backend]._ResetLoggedInState() # pylint: disable=W0212 |
- |
- 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_set): |
- num_pages_missing_login = 0 |
- missing_credentials = set() |
- for page in page_set: |
- if (page.credentials |
- and not self.CanLogin(page.credentials)): |
- num_pages_missing_login += 1 |
- missing_credentials.add(page.credentials) |
- |
- if num_pages_missing_login > 0: |
- files_to_tweak = [] |
- if page_set.credentials_path: |
- files_to_tweak.append( |
- os.path.relpath(os.path.join(os.path.dirname(page_set.file_path), |
- page_set.credentials_path))) |
- files_to_tweak.append('~/.telemetry-credentials') |
- |
- example_credentials_file = ( |
- os.path.relpath( |
- os.path.join( |
- os.path.dirname(__file__), |
- '..', 'examples', 'credentials_example.json'))) |
- |
- logging.warning(""" |
- Credentials for %s were not found. %i pages will not be benchmarked. |
- |
- To fix this, either add svn-internal to your .gclient using |
- http://goto/read-src-internal, or add your own credentials to: |
- %s |
- An example credentials file you can copy from is here: |
- %s\n""" % (', '.join(missing_credentials), |
- num_pages_missing_login, |
- ' or '.join(files_to_tweak), |
- example_credentials_file)) |