New issue
Advanced search Search tips

Issue 629935 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Make PointerEventManager a GC managed object

Project Member Reported by nzolghadr@chromium.org, Jul 20 2016

Issue description

After 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.
 

Comment 1 by mustaq@chromium.org, Jul 21 2016

Cc: haraken@chromium.org
Project Member

Comment 2 by bugdroid1@chromium.org, 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

Status: Fixed (was: Assigned)

Sign in to add a comment