Index: tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py |
diff --git a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py |
index 43793d7caa3c7144e19468639a1385a7c305c2cb..331334f49c63e3fd7504fd7a5b808328d394f6d0 100644 |
--- a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py |
+++ b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py |
@@ -11,6 +11,7 @@ import socket |
import sys |
import urllib2 |
+from telemetry import decorators |
from telemetry.core import exceptions |
from telemetry.core import forwarders |
from telemetry.core import user_agent |
@@ -19,7 +20,7 @@ from telemetry.core import web_contents |
from telemetry.core import wpr_modes |
from telemetry.core import wpr_server |
from telemetry.core.backends import browser_backend |
-from telemetry.core.backends.chrome import extension_dict_backend |
+from telemetry.core.backends.chrome import extension_backend |
from telemetry.core.backends.chrome import misc_web_contents_backend |
from telemetry.core.backends.chrome import system_info_backend |
from telemetry.core.backends.chrome import tab_list_backend |
@@ -66,12 +67,6 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend): |
'unexpected effects due to profile-specific settings, ' |
'such as about:flags settings, cookies, and ' |
'extensions.\n') |
- self._misc_web_contents_backend = ( |
- misc_web_contents_backend.MiscWebContentsBackend(self)) |
- self._extension_dict_backend = None |
- if supports_extensions: |
- self._extension_dict_backend = ( |
- extension_dict_backend.ExtensionDictBackend(self)) |
def AddReplayServerOptions(self, extra_wpr_args): |
if self.browser_options.netsim: |
@@ -80,14 +75,17 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend): |
extra_wpr_args.append('--no-dns_forwarding') |
@property |
+ @decorators.Cache |
def misc_web_contents_backend(self): |
- """Access to chrome://oobe/login page which is neither a tab nor an |
- extension.""" |
- return self._misc_web_contents_backend |
+ """Access to chrome://oobe/login page.""" |
+ return misc_web_contents_backend.MiscWebContentsBackend(self) |
@property |
- def extension_dict_backend(self): |
- return self._extension_dict_backend |
+ @decorators.Cache |
+ def extension_backend(self): |
+ if not self.supports_extensions: |
+ return None |
+ return extension_backend.ExtensionBackendDict(self) |
def GetBrowserStartupArgs(self): |
args = [] |
@@ -153,9 +151,9 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend): |
document.readyState == 'interactive') |
""" |
for e in self._extensions_to_load: |
- if not e.extension_id in self._extension_dict_backend: |
+ if not e.extension_id in self.extension_backend: |
return False |
- extension_object = self._extension_dict_backend[e.extension_id] |
+ extension_object = self.extension_backend[e.extension_id] |
try: |
res = extension_object.EvaluateJavaScript( |
extension_ready_js % e.extension_id) |
@@ -182,8 +180,7 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend): |
logging.error('ExtensionsToLoad: ' + |
repr([e.extension_id for e in self._extensions_to_load])) |
logging.error('Extension list: ' + |
- pprint.pformat(self._extension_dict_backend.GetExtensionInfoList(), |
- indent=4)) |
+ pprint.pformat(self._extension_backend, indent=4)) |
raise |