Frequent DCHECK in MediaControlOverflowMenuListElement |
|||||||
Issue descriptionChrome Version: 68.0.3405.0 OS: android What steps will reproduce the problem? (1) Navigate to http://storage.googleapis.com/watk/v (2) Click "buck360p_h264.mp4" to add a video element to the page (3) Click the video's triple dotted overflow button (4) Re-click the overflow menu button What is the expected result? Overflow menu appears What happens instead? Tab crashes (DCHECK) [FATAL:media_control_overflow_menu_list_element.cc(51)] Check failed: !time_shown_. Stack Trace: RELADDR FUNCTION FILE:LINE 000cf581 logging::LogMessage::~LogMessage() /usr/local/google/home/tguilbert/Code/chromium/src/base/logging.cc:594:29 00508771 blink::MediaControlOverflowMenuListElement::SetIsWanted(bool) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc:51:5 0051070b blink::MediaControlsImpl::ToggleOverflowMenu() /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc:1870:19 005085c9 blink::MediaControlOverflowMenuButtonElement::DefaultEventHandler(blink::Event*) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.cc:56:24 00960125 blink::EventDispatcher::DispatchEventPostProcess(blink::Node*, blink::EventDispatchHandlingState*) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/dom/events/event_dispatcher.cc:313:12 0095fd31 blink::EventDispatcher::Dispatch() /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/dom/events/event_dispatcher.cc:182:3 00a05add blink::MouseEvent::DispatchEvent(blink::EventDispatcher&) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/events/mouse_event.cc:399:52 0095f91b blink::EventDispatcher::DispatchEvent(blink::Node&, blink::Event*) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/dom/events/event_dispatcher.cc:57:17 00b35acf blink::MouseEventManager::DispatchMouseEvent(blink::EventTarget*, WTF::AtomicString const&, blink::WebMouseEvent const&, WTF::String const&, blink::EventTarget*, bool) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/input/mouse_event_manager.cc:255:51 00b35b91 blink::MouseEventManager::SetMousePositionAndDispatchMouseEvent(blink::Node*, WTF::String const&, WTF::AtomicString const&, blink::WebMouseEvent const&) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/input/mouse_event_manager.cc:272:10 00b346db blink::GestureManager::HandleGestureTap(blink::EventWithHitTestResults<blink::WebGestureEvent> const&) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/input/gesture_manager.cc:290:33 00b3432f blink::GestureManager::HandleGestureEventInFrame(blink::EventWithHitTestResults<blink::WebGestureEvent> const&) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/input/gesture_manager.cc:119:14 00b32079 blink::EventHandler::HandleGestureEvent(blink::EventWithHitTestResults<blink::WebGestureEvent> const&) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/input/event_handler.cc:1334:43 00a264a7 blink::WebViewImpl::HandleGestureEvent(blink::WebGestureEvent const&) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/exported/web_view_impl.cc:694:60 00a26997 blink::WebViewImpl::ResolveTapDisambiguation(double, blink::WebPoint, bool) /usr/local/google/home/tguilbert/Code/chromium/src/third_party/blink/renderer/core/exported/web_view_impl.cc:812:3 00eba861 content::RenderViewImpl::OnResolveTapDisambiguation(double, gfx::Point, bool) /usr/local/google/home/tguilbert/Code/chromium/src/content/renderer/render_view_impl.cc:2402:14
,
Apr 27 2018
,
Apr 27 2018
It looks like the overflow menu is not being displayed so the dcheck is firing because we should be shown.
,
Apr 27 2018
,
Apr 27 2018
,
Apr 27 2018
I had looked at this a while back. IIRC, the click event first makes the overflow menu disappear and *then* the button gets the event and tries to open it. However the recording happens asynchronously, so by the time we're reopening the menu, the last time hasn't been recorded. So the DCHECK fires since time_shown hasn't been reset
,
Apr 27 2018
@tguilbert - when you say this is frequent, how often would you say this is reproducible?
,
Apr 27 2018
100% repro rate, on the page mentioned above, when zoomed in (tied to 837436).
,
Apr 30 2018
Just found out there's another crbug with the same root cause. Closing as dup.
,
May 1 2018
Hmm, actually this bug is a by-product of the zoom issue (overflow menu not at the right position): we shouldn't be able to open the menu twice. steimel@ fixed that issue. The DCHECK also has no impact on stability as we don't make any assumption afterwards. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by tguilbert@chromium.org
, Apr 24 2018