Chromium Code Reviews| 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 |