There are one event listener in blink for one v8::Function. This means the event listener for the v8::Function always have the same incumbent realm. However, it have to be possible to register the same v8::Function as event listeners with multiple incumbent realm. This issue can be experimented by existing test: https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-overlap.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c commit da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c Author: Yuki Yamada <yukiy@google.com> Date: Wed Sep 05 03:00:10 2018 Split implementation of EventListener and EventHandler This CL add new class blink::V8EventListenerImpl which implements ONLY EventListener (not EventHandler). It has a blink::V8EventListener which inherits blink::CallbackInterfaceBase. As a result, EventListener will start to handle incumbent realm. EventHandler will still be offered by blink::V8AbstractEventListener (this class is renamed to blink::V8AbstractEventHandler in this CL) after this CL submitted. Also, entry realm was set to wrong one (event target's one) with blink::V8AbstractEventLisntener so this CL set it to listener's one as defined in standard. Regarding crbug.com/872138 : Current blink::V8AbstractEventListener implements both of EventListener and EventHandler, so I am trying to implement new class for EventListener first to separate these. EventHandler will be modified in following CLs. Regarding crbug.com/878658 : This CL modifies expectation file for layout test: fast/events/touch/gesture/gesture-tap-frame-removed.html This is because event listener starts to remember incumbent realm after this CL and it results in incorrect behavior as explained in the BUG. This is not a regression, but have to be resolved in following CLs. Bug: 872138 , 878658 , 606900 , 849236 Change-Id: I4bf7fe2f4fd51287f873c2377edfd57e4bb2a54a Reviewed-on: https://chromium-review.googlesource.com/1172234 Commit-Queue: Yuki Yamada <yukiy@google.com> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Reviewed-by: Hayato Ito <hayato@chromium.org> Reviewed-by: Hitoshi Yoshida <peria@chromium.org> Cr-Commit-Position: refs/heads/master@{#588748} [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/external/wpt/dom/events/event-global-extra.window-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt [delete] https://crrev.com/683690300a6f2b0f8d2acff300f856065c826cd7/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/084-expected.txt [delete] https://crrev.com/683690300a6f2b0f8d2acff300f856065c826cd7/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-1-expected.txt [delete] https://crrev.com/683690300a6f2b0f8d2acff300f856065c826cd7/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-2-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/fast/dom/margin-height-guarded-crash-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/fast/dom/margin-height-guarded-crash.html [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/fast/dom/ready-state-change-crash-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-removed-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/bindings.gni [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/script_event_listener.cc [rename] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_abstract_event_handler.cc [rename] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_abstract_event_handler.h [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_event_listener_helper.cc [add] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_event_listener_impl.cc [add] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_event_listener_impl.h [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_event_listener_or_event_handler.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_event_listener_or_event_handler.h [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_lazy_event_listener.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/core/v8/v8_lazy_event_listener.h [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/scripts/v8_types.py [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface_node.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/bindings/tests/results/core/v8_test_object.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/core/core_idl_files.gni [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/core/dom/events/event_listener.h [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/core/dom/events/event_target.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/core/inspector/inspector_dom_debugger_agent.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.cc [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/platform/bindings/callback_interface_base.h [modify] https://crrev.com/da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9f87a1ee823c8bf185dfdde265e457c2cc668191 commit 9f87a1ee823c8bf185dfdde265e457c2cc668191 Author: Hitoshi Yoshida <peria@chromium.org> Date: Fri Sep 07 03:10:35 2018 Revert "Split implementation of EventListener and EventHandler" This reverts commit da27378f03ea3dc4bdba82e3cb1d13ad2fef7a7c. Reason for revert: This CL caused many crashes in the wild. (crbug.com/881348) Original change's description: > Split implementation of EventListener and EventHandler > > This CL add new class blink::V8EventListenerImpl which implements > ONLY EventListener (not EventHandler). It has a blink::V8EventListener > which inherits blink::CallbackInterfaceBase. As a result, EventListener > will start to handle incumbent realm. EventHandler will still be > offered by blink::V8AbstractEventListener (this class is renamed to > blink::V8AbstractEventHandler in this CL) after this CL submitted. > Also, entry realm was set to wrong one (event target's one) with > blink::V8AbstractEventLisntener so this CL set it to listener's one as > defined in standard. > > Regarding crbug.com/872138 : > Current blink::V8AbstractEventListener implements both of EventListener > and EventHandler, so I am trying to implement new class for > EventListener first to separate these. EventHandler will be modified in following CLs. > > Regarding crbug.com/878658 : > This CL modifies expectation file for layout test: > fast/events/touch/gesture/gesture-tap-frame-removed.html > This is because event listener starts to remember incumbent realm after > this CL and it results in incorrect behavior as explained in the BUG. > This is not a regression, but have to be resolved in following CLs. > > Bug: 872138 , 878658 , 606900 , 849236 > Change-Id: I4bf7fe2f4fd51287f873c2377edfd57e4bb2a54a > Reviewed-on: https://chromium-review.googlesource.com/1172234 > Commit-Queue: Yuki Yamada <yukiy@google.com> > Reviewed-by: Kentaro Hara <haraken@chromium.org> > Reviewed-by: Yuki Shiino <yukishiino@chromium.org> > Reviewed-by: Hayato Ito <hayato@chromium.org> > Reviewed-by: Hitoshi Yoshida <peria@chromium.org> > Cr-Commit-Position: refs/heads/master@{#588748} TBR=peria@chromium.org,yukishiino@chromium.org,hayato@chromium.org,haraken@chromium.org,yukiy@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 872138 , 878658 , 606900 , 849236 , 881348 Change-Id: Ie981df66657c8868c769cb8d18bf799605cfd004 Reviewed-on: https://chromium-review.googlesource.com/1212202 Commit-Queue: Hitoshi Yoshida <peria@chromium.org> Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Reviewed-by: Hitoshi Yoshida <peria@chromium.org> Cr-Commit-Position: refs/heads/master@{#589421} [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/external/wpt/dom/events/event-global-extra.window-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt [add] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/084-expected.txt [add] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-1-expected.txt [add] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-2-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/fast/dom/margin-height-guarded-crash-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/fast/dom/margin-height-guarded-crash.html [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/fast/dom/ready-state-change-crash-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-removed-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/bindings.gni [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/script_event_listener.cc [rename] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_abstract_event_listener.cc [rename] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_abstract_event_listener.h [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_event_listener_helper.cc [delete] https://crrev.com/231560efc85bde5d2fe9930bc36ce440745f671d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_impl.cc [delete] https://crrev.com/231560efc85bde5d2fe9930bc36ce440745f671d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_impl.h [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_event_listener_or_event_handler.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_event_listener_or_event_handler.h [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_lazy_event_listener.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/core/v8/v8_lazy_event_listener.h [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/scripts/v8_types.py [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface_node.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/bindings/tests/results/core/v8_test_object.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/core/core_idl_files.gni [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/core/dom/events/event_listener.h [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/core/dom/events/event_target.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/core/inspector/inspector_dom_debugger_agent.cc [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/platform/bindings/callback_interface_base.h [modify] https://crrev.com/9f87a1ee823c8bf185dfdde265e457c2cc668191/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20a443ce6dd653ce3259782667598f9b87211e5d commit 20a443ce6dd653ce3259782667598f9b87211e5d Author: Yuki Yamada <yukiy@google.com> Date: Mon Sep 10 02:27:07 2018 Reland: Split implementation of EventListener and EventHandler This reverts commit 9f87a1ee823c8bf185dfdde265e457c2cc668191. https://chromium-review.googlesource.com/c/chromium/src/+/1212202 Regarding to crbug.com/881688 : This CL adds the check for if listener is empty or not before calling it, but it should not be empty at that time. This is because listener object could be collected prematurally by garbage collection. This will be fixed after unified GC is launched, or wrapper-tracing is applied appropriately to all the EventTarget (some of EventTargets need to be ActiveScriptWrappable). Bug: 872138 , 881688, 878658 , 606900 , 849236 Change-Id: I9b224e0d261e1567c4c4f7778bd0d6044b7f6202 Reviewed-on: https://chromium-review.googlesource.com/1212376 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hayato Ito <hayato@chromium.org> Reviewed-by: Hitoshi Yoshida <peria@chromium.org> Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Commit-Queue: Yuki Yamada <yukiy@google.com> Cr-Commit-Position: refs/heads/master@{#589820} [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/external/wpt/dom/events/event-global-extra.window-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt [delete] https://crrev.com/8a2c335368664b66cbb29fc739bb864dfd37b4a6/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/084-expected.txt [delete] https://crrev.com/8a2c335368664b66cbb29fc739bb864dfd37b4a6/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-1-expected.txt [delete] https://crrev.com/8a2c335368664b66cbb29fc739bb864dfd37b4a6/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-2-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/fast/dom/margin-height-guarded-crash-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/fast/dom/margin-height-guarded-crash.html [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/fast/dom/ready-state-change-crash-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-removed-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/bindings.gni [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/script_event_listener.cc [rename] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_abstract_event_handler.cc [rename] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_abstract_event_handler.h [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_helper.cc [add] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_impl.cc [add] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_impl.h [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_or_event_handler.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_event_listener_or_event_handler.h [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_lazy_event_listener.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/core/v8/v8_lazy_event_listener.h [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/scripts/v8_types.py [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface_node.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/bindings/tests/results/core/v8_test_object.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/core/core_idl_files.gni [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/core/dom/events/event_listener.h [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/core/dom/events/event_target.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/core/inspector/inspector_dom_debugger_agent.cc [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/platform/bindings/callback_interface_base.h [modify] https://crrev.com/20a443ce6dd653ce3259782667598f9b87211e5d/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
Issue 919020 has been merged into this issue.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4c282d26840993300b2d1d9fc852cbce03f52d54 commit 4c282d26840993300b2d1d9fc852cbce03f52d54 Author: Yuki Shiino <yukishiino@chromium.org> Date: Thu Jan 17 12:01:59 2019 v8binding: Support 1:N mappings between JS function and IDL callbacks Because IDL callbacks consist from a pair of JS function and callback context (= incumbent realm) and there are multiple contexts in general, there must be 1:N relationships between JS function and IDL callbacks. This patch supports multiple instances of JSEventListener (hence V8EventListener) per v8::Function. Bug: 878658 Change-Id: I1c0b19f0127ce41b3d16cc081f1a3ba15a0bec33 Reviewed-on: https://chromium-review.googlesource.com/c/1411966 Commit-Queue: Yuki Shiino <yukishiino@chromium.org> Reviewed-by: Hitoshi Yoshida <peria@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#623654} [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/bindings.gni [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/core/v8/js_based_event_listener.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/core/v8/js_based_event_listener.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/core/v8/js_event_handler.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/core/v8/js_event_handler.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/core/v8/js_event_handler_for_content_attribute.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/core/v8/js_event_listener.h [delete] https://crrev.com/53b0b1cd9accbd98887a64954e5d0dd8889d56b9/third_party/blink/renderer/bindings/core/v8/v8_event_listener_helper.cc [delete] https://crrev.com/53b0b1cd9accbd98887a64954e5d0dd8889d56b9/third_party/blink/renderer/bindings/core/v8/v8_event_listener_helper.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/scripts/v8_attributes.py [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/scripts/v8_types.py [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/templates/methods.cc.tmpl [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/tests/results/core/v8_test_interface_node.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/bindings/tests/results/core/v8_test_object.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/core/css/media_query_list.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/core/css/media_query_list.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/core/dom/events/event_listener.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/core/dom/events/event_target.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/core/dom/events/event_target.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/core/inspector/thread_debugger.cc [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/platform/bindings/runtime_call_stats.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/renderer/platform/bindings/v8_private_property.h [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/web_tests/fast/events/touch/gesture/gesture-tap-frame-removed-expected.txt [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/4c282d26840993300b2d1d9fc852cbce03f52d54/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js
Pls apply appropriate OSs label. Thank you.
Comment 1 by yukishiino@chromium.org
, Aug 29Status: Available (was: Untriaged)