Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py

Issue 19774009: Fix for extension binding race condition when evaluating JS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tab unit tests Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/backends/chrome/extension_dict_backend.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/backends/chrome/extension_dict_backend.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698