Make PointerEventManager a GC managed object |
||
Issue descriptionAfter an attempt to make PointerEventManager a GC object to the purpose using postTask, Chrome crashes every time EventHandler gets destroyed: ASSERTION FAILED: m_thread == currentThread() ../../third_party/WebKit/Source/platform/Timer.h(216) : bool blink::TimerBase::isActive() const 1 0x7f58de7987d7 2 0x7f58df017f15 blink::EventHandler::~EventHandler() 3 0x7f58df025275 4 0x7f58df025255 5 0x7f58df025235 6 0x7f58ea8624c1 blink::HeapObjectHeader::finalize(unsigned char*, unsigned long) 7 0x7f58ea8670c8 8 0x7f58ea863389 blink::BaseArena::sweepUnsweptPage() 9 0x7f58ea86356e blink::BaseArena::lazySweepWithDeadline(double) 10 0x7f58ea8713f9 blink::ThreadState::performIdleLazySweep(double) 11 0x7f58ea8785da 12 0x7f58ea878516 13 0x7f58ea8784a7 14 0x7f58ea8783fc 15 0x7f58ea406b54 16 0x7f58ea406a84 17 0x7f58ea40683b 18 0x7f58e3367a65 scheduler::WebSchedulerImpl::runIdleTask(std::unique_ptr<blink::WebThread::IdleTask, std::default_delete<blink::WebThread::IdleTask> >, base::TimeTicks) 19 0x7f58e336914f 20 0x7f58e336909d 21 0x7f58e3369037 22 0x7f58e3368dfc 23 0x7f58e3366996 24 0x7f58e336635a 25 0x7f58e3366f78 26 0x7f58e3366e7f 27 0x7f58e3366df3 28 0x7f58e3366b6c 29 0x7f58f7f4a39e 30 0x7f58f7f6ff9e base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&) 31 0x7f58e3340a94 scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(scheduler::internal::WorkQueue*, scheduler::internal::TaskQueueImpl::Task*) We need to make PointerEventManager a GC managed object to use postTask cleanly instead of delegating the task to EventHandler.
,
Jul 29 2016
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
,
Jul 29 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by mustaq@chromium.org
, Jul 21 2016