summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-14 19:35:04 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-14 19:35:04 +0000
commit4026ce1e61982fe637913ea59c66f16c5d9165ee (patch)
treefe76ee7ad7ee03c4eae14b8cd7b5a99a8f8097c2 /chrome/renderer/extensions
parent2958211007b5f2ac195b38346cbe9b3116792d13 (diff)
downloadchromium_src-4026ce1e61982fe637913ea59c66f16c5d9165ee.zip
chromium_src-4026ce1e61982fe637913ea59c66f16c5d9165ee.tar.gz
chromium_src-4026ce1e61982fe637913ea59c66f16c5d9165ee.tar.bz2
Land implementation part of cl 3352009 (that cl was just data
files that had to be uploaded first for try runs to work). This makes window.open() open a tab or popup window correctly from extensions, even when no user gesture is present. BUG=54768 TEST=Added browser tests. Review URL: http://codereview.chromium.org/3325024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59418 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions')
-rw-r--r--chrome/renderer/extensions/bindings_utils.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/bindings_utils.cc b/chrome/renderer/extensions/bindings_utils.cc
index 988068e..d3fdb28 100644
--- a/chrome/renderer/extensions/bindings_utils.cc
+++ b/chrome/renderer/extensions/bindings_utils.cc
@@ -73,6 +73,11 @@ ContextList GetContextsForExtension(const std::string& extension_id) {
}
ContextInfo* GetInfoForCurrentContext() {
+ // This can happen in testing scenarios and v8::Context::GetCurrent() crashes
+ // if there is no JavaScript currently running.
+ if (!v8::Context::InContext())
+ return NULL;
+
v8::Local<v8::Context> context = v8::Context::GetCurrent();
ContextList::iterator context_iter = FindContext(context);
if (context_iter == GetContexts().end())