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 9d72dc67dee46dde36bc63bdd5c6c86d14db4076..1d18f3153770f6bae5714039d52eb11c3ebf1c81 100644 |
--- a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py |
+++ b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py |
@@ -138,8 +138,22 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend): |
if not e.extension_id in self._extension_dict_backend: |
return False |
extension_object = self._extension_dict_backend[e.extension_id] |
- res = extension_object.EvaluateJavaScript( |
- extension_ready_js % e.extension_id) |
+ try: |
+ res = extension_object.EvaluateJavaScript( |
+ extension_ready_js % e.extension_id) |
+ except exceptions.EvaluateException: |
+ # If the inspected page is not ready, we will get an error |
+ # when we evaluate a JS expression, but we can just keep polling |
+ # until the page is ready (crbug.com/251913). |
+ res = None |
+ |
+ # TODO(tengs): We don't have full support for getting the Chrome |
achuithb
2013/10/01 23:50:39
Does this comment need to be updated? We neeed the
Tim Song
2013/10/02 00:01:20
If we can get the Chrome version reliably before l
achuithb
2013/10/02 00:34:44
Ah, ok, I was under the impression that the blink
|
+ # version before launch, so for now we use a generic workaround to |
+ # check for an extension binding bug in old versions of Chrome. |
+ # See crbug.com/263162 for details. |
+ if res and extension_object.EvaluateJavaScript( |
+ 'chrome.runtime == null'): |
+ extension_object.Reload() |
if not res: |
return False |
return True |