New issue
Advanced search Search tips

Issue 836437 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug


Participants' hotlists:
Modern-Media-Controls


Sign in to add a comment

Frequent DCHECK in MediaControlOverflowMenuListElement

Project Member Reported by tguilbert@chromium.org, Apr 24 2018

Issue description

Chrome 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

 
Status: Assigned (was: Untriaged)
Cc: steimel@chromium.org
It looks like the overflow menu is not being displayed so the dcheck is firing because we should be shown.
Labels: -Pri-3 Pri-2
Labels: M-68
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
@tguilbert - when you say this is frequent, how often would you say this is reproducible?
100% repro rate, on the page mentioned above, when zoomed in (tied to 837436).
Mergedinto: 835748
Status: Duplicate (was: Assigned)
Just found out there's another crbug with the same root cause. Closing as dup.
Status: WontFix (was: Duplicate)
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