diff options
author | kalman <kalman@chromium.org> | 2015-04-14 17:25:06 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-15 00:25:50 +0000 |
commit | b0c1c5018d08b6e8d8de896d0d079386be50536f (patch) | |
tree | 24c01b875ed4f0236156bd632239b65708cff849 /extensions/renderer/native_handler.h | |
parent | ac57a89020219cf98422d07fe861b38d3f33073b (diff) | |
download | chromium_src-b0c1c5018d08b6e8d8de896d0d079386be50536f.zip chromium_src-b0c1c5018d08b6e8d8de896d0d079386be50536f.tar.gz chromium_src-b0c1c5018d08b6e8d8de896d0d079386be50536f.tar.bz2 |
Reland: Move the event attach/detach logic on unload from event.js to event_bindings.cc.
Original patch: https://codereview.chromium.org/1074273002.
Move the event attach/detach logic on unload from event.js to
event_bindings.cc.
This removes one of the reasons to call into JavaScript on context unload,
which can crash. It's also more robust; it's confusing trying to maintain a
data structure in JavaScript which reflects C++ state, which contributes to
bugs like crbug.com/474718.
Also clean up and formalise the script context invalidation system: CHECK
rather than guarding against multiple invalidations, only invalidate script
context related member variables, add an invalidation observer interface.
BUG=474718, 475536
R=rdevlin.cronin@chromium.org
Review URL: https://codereview.chromium.org/1057003005
Cr-Commit-Position: refs/heads/master@{#325156}
Diffstat (limited to 'extensions/renderer/native_handler.h')
-rw-r--r-- | extensions/renderer/native_handler.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/extensions/renderer/native_handler.h b/extensions/renderer/native_handler.h index c0660c8..1491feb 100644 --- a/extensions/renderer/native_handler.h +++ b/extensions/renderer/native_handler.h @@ -29,6 +29,9 @@ class NativeHandler { // // Subclasses should override to invalidate their own V8 state. If they do // they must call their superclass' Invalidate(). + // + // Invalidate() will be called on destruction, if it hasn't already been. + // Subclasses don't need to do it themselves. virtual void Invalidate(); protected: |