diff options
author | kalman <kalman@chromium.org> | 2015-07-23 22:10:59 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-24 05:11:56 +0000 |
commit | 32d7af200850f2378d0a554f8fe046d8b14265ca (patch) | |
tree | 7827eafc60fecb60c9e4b78840e00b146fd73ad8 /extensions/extensions_tests.gypi | |
parent | 431311669957bc4d4674796bf80a9fed8ba2764a (diff) | |
download | chromium_src-32d7af200850f2378d0a554f8fe046d8b14265ca.zip chromium_src-32d7af200850f2378d0a554f8fe046d8b14265ca.tar.gz chromium_src-32d7af200850f2378d0a554f8fe046d8b14265ca.tar.bz2 |
Bypass the v8 GC second pass callback set up by GCCallback for extension messaging.
This fixes a bug where an extension script context was being invalidated in
between calls for the first and second pass v8::PersistentBase::SetWeak
callbacks, which would invalidate a base::WeakPtr and crash. This bug can be
trivially bypassed by removing the second pass entirely and relying on the post
back to the current message loop.
This also adds 2 tests, one where the script context is invalidated before GC,
the other where GC happens before the script context is invalidated.
This patch is a combination of jochen's https://crrev.com/1247093005 and
kalman's https://crrev.com/1242273007, see those patches for more comments.
BUG=512080
R=rdevlin.cronin@chromium.org,jochen@chromium.org,adamk@chromium.org
Review URL: https://codereview.chromium.org/1250093008
Cr-Commit-Position: refs/heads/master@{#340224}
Diffstat (limited to 'extensions/extensions_tests.gypi')
-rw-r--r-- | extensions/extensions_tests.gypi | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/extensions/extensions_tests.gypi b/extensions/extensions_tests.gypi index c8b422b..eed12fb 100644 --- a/extensions/extensions_tests.gypi +++ b/extensions/extensions_tests.gypi @@ -145,6 +145,7 @@ 'renderer/api_test_base.h', 'renderer/api_test_base_unittest.cc', 'renderer/event_unittest.cc', + 'renderer/gc_callback_unittest.cc', 'renderer/json_schema_unittest.cc', 'renderer/messaging_utils_unittest.cc', 'renderer/module_system_test.cc', |