Following an issue in the spec regarding delaying lost/gotpointercapture events until the next event: https://github.com/w3c/pointerevents/issues/32 and based on this proposal https://github.com/w3c/pointerevents/pull/76 we need to send lost/gotpointercapture when it doesn't cause an infinite passing of pointer capture.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560 commit 7d314cf3ad6a9f0fe163228f7a0efc5a72adc560 Author: nzolghadr <nzolghadr@chromium.org> Date: Thu Jul 21 22:41:59 2016 Send got/lostpointercapture immediately if possible After calls to set/releasepointercapture queue the process pending pointer capture task if the capture target and pending capture target were the same. This way it not only sends the capture event immediately in the normal cases but also doesn't generate to the inifinite got/lostpointercapture event sequence. BUG= 627192 Review-Url: https://codereview.chromium.org/2147263003 Cr-Commit-Position: refs/heads/master@{#406972} [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_capture_mouse-manual-automation.js [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_capture_suppressing_mouse-manual-automation.js [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_lostpointercapture_is_first-manual-automation.js [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual-automation.js [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/Source/core/events/PointerEventFactory.cpp [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/Source/core/events/PointerEventFactory.h [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/Source/core/input/EventHandler.cpp [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/Source/core/input/EventHandler.h [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/Source/core/input/PointerEventManager.cpp [modify] https://crrev.com/7d314cf3ad6a9f0fe163228f7a0efc5a72adc560/third_party/WebKit/Source/core/input/PointerEventManager.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120 commit fbbdbf2f9d8b6ad09d8efba64b70d71563a25120 Author: nzolghadr <nzolghadr@chromium.org> Date: Fri Jul 29 19:19:31 2016 Revert "Send got/lostpointercapture immediately if possible" This reverts commit 7d314cf3ad6a9f0fe163228f7a0efc5a72adc560 as a follow up to the decision about delayed capturing https://github.com/w3c/pointerevents/issues/32 This also gets rid of the need to make PointerEventManager a GC object. BUG= 627192 , 629935 Review-Url: https://codereview.chromium.org/2193473002 Cr-Commit-Position: refs/heads/master@{#408714} [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_capture_mouse-manual-automation.js [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_capture_suppressing_mouse-manual-automation.js [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_lostpointercapture_is_first-manual-automation.js [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual-automation.js [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/Source/core/events/PointerEventFactory.cpp [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/Source/core/events/PointerEventFactory.h [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/Source/core/input/EventHandler.cpp [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/Source/core/input/EventHandler.h [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/Source/core/input/PointerEventManager.cpp [modify] https://crrev.com/fbbdbf2f9d8b6ad09d8efba64b70d71563a25120/third_party/WebKit/Source/core/input/PointerEventManager.h
Comment 1 by bugdroid1@chromium.org
, Jul 21 2016