diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-14 19:35:04 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-14 19:35:04 +0000 |
commit | 4026ce1e61982fe637913ea59c66f16c5d9165ee (patch) | |
tree | fe76ee7ad7ee03c4eae14b8cd7b5a99a8f8097c2 /chrome/renderer/extensions | |
parent | 2958211007b5f2ac195b38346cbe9b3116792d13 (diff) | |
download | chromium_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.cc | 5 |
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()) |