New issue
Advanced search Search tips

Issue 911488 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Regression : Chrome crashes when trying to close the detached NTP.

Project Member Reported by sav...@virtusa.com, Dec 4

Issue description

Chrome Version : 73.0.3630.0 (Official Build) 4e0c28599deef67a295ba4ecd2e0180a4b5157e0-refs/branch-heads/3630@{#1} 64 bit
OS : Mac(10.13.1, 10.14.2)

Precondition : Kindly use external USB mouse to reproduce this crash consistently.

What steps will reproduce the problem?
1. Launch chrome and open two NTPs.
2. Detach second NTP (do not release 'Left' mouse click) and simultaneously press 'Right' mouse button to open context menu.
3. Select 'Close Tab' option from context menu and then click on 'X' to close the current NTP.
4. Observe.

Actual Result : Chrome crashes when trying to close the detached NTP.

Expected Result : Chrome should not crash when user closes detached NTP.

Crash ID:
ID abdc5949ceb38df2 (Local Crash ID: 76ae4656-a805-4b68-a353-559557e9baee)
ID 8d400479d291f28f (Local Crash ID: 42f06ad7-6b96-40aa-b47d-e0179f08709d)

This is a regression issue broken in M-70 and below is the bisect information:
Good Build : 70.0.3503.0 (Revision : 578160)
Bad Build : 70.0.3504.0 (Revision : 578510)

CHANGE LOG URL:
https://chromium.googlesource.com/chromium/src/+log/bcb7db78edc13f57577f0a9562c98918bdcc10ae..67d21d10815fe6d87d1785a65a50fbc386e6605b

Suspecting: https://chromium.googlesource.com/chromium/src/+/67d21d10815fe6d87d1785a65a50fbc386e6605b

@ellyjones: Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner.

Note:
1. Unable to reproduce issue on Mac Touch Bar (10.13.6)
2. Issue is reproducible in Beta #71.0.3578.80, Stable #70.0.3538.110 and Dev build #72.0.3622.0
3. This is Mac OS specific issue and same is not reproducible in Windows(7,8,10) and Linux(14.04 LTS) OS

Thank you..!
 
Actual_Crash.mov
7.5 MB View Download
Expected_Result.mov
5.0 MB View Download
Stack Trace for the crash id:
-----------------------------
Thread 0 (id: 0xeae3) CRASHED [EXC_BAD_ACCESS / KERN_INVALID_ADDRESS @ 0x00000420 ] MAGIC SIGNATURE THREAD
Stack Quality83%Show frame trust levels
0x0000000112b41072	(Google Chrome Framework -tab_drag_controller.cc:665 )	TabDragController::EndDragImpl(TabDragController::EndDragType)
0x0000000112b3f504	(Google Chrome Framework -tab_drag_controller.cc:579 )	TabDragController::EndDrag(EndDragReason)
0x0000000112b40bd5	(Google Chrome Framework -tab_drag_controller.cc:1346 )	TabDragController::RunMoveLoop(gfx::Vector2d const&)
0x0000000112b42098	(Google Chrome Framework -tab_drag_controller.cc:1284 )	TabDragController::DetachIntoNewBrowserAndRunMoveLoop(gfx::Point const&)
0x0000000112b417eb	(Google Chrome Framework -tab_drag_controller.cc:761 )	TabDragController::DragBrowserToNewTabStrip(TabStrip*, gfx::Point const&)
0x0000000112b40d3e	(Google Chrome Framework -tab_drag_controller.cc:727 )	TabDragController::ContinueDragging(gfx::Point const&)
0x0000000112b3f8ba	(Google Chrome Framework -tab_drag_controller.cc:537 )	TabDragController::Drag(gfx::Point const&)
0x0000000112b4cb93	(Google Chrome Framework -tab_strip.cc:1128 )	<name omitted>
0x0000000112b50ee2	(Google Chrome Framework -tab_strip.cc:2766 )	TabStrip::OnMouseDragged(ui::MouseEvent const&)
0x0000000111d6adfe	(Google Chrome Framework -view.cc:2458 )	views::View::ProcessMouseDragged(ui::MouseEvent const&)
0x0000000111d6a9e9	(Google Chrome Framework -view.cc:1092 )	views::View::OnMouseEvent(ui::MouseEvent*)
0x0000000110a9a8a1	(Google Chrome Framework -event_dispatcher.cc:193 )	ui::EventDispatcher::ProcessEvent(ui::EventTarget*, ui::Event*)
0x0000000110a9a6b3	(Google Chrome Framework -event_dispatcher.cc:86 )	ui::EventDispatcherDelegate::DispatchEvent(ui::EventTarget*, ui::Event*)
0x0000000111d7482e	(Google Chrome Framework -root_view.cc:426 )	views::internal::RootView::OnMouseDragged(ui::MouseEvent const&)
0x0000000111d7a3d2	(Google Chrome Framework -widget.cc:1257 )	views::Widget::OnMouseEvent(ui::MouseEvent*)
0x0000000111d85cb2	(Google Chrome Framework -bridged_content_view.mm:695 )	-[BridgedContentView mouseEvent:]
0x0000000111dd53c1	(Google Chrome Framework -cocoa_mouse_capture.mm:91 )	___ZN16views_bridge_mac17CocoaMouseCapture14ActiveEventTap4InitEv_block_invoke
0x00007fff40197df5	(AppKit + 0x00027df5 )	
0x00007fff40196867	(AppKit + 0x00026867 )	
0x000000010fcf09a3	(Google Chrome Framework -chrome_browser_application_mac.mm:337 )	__34-[BrowserCrApplication sendEvent:]_block_invoke
0x0000000110104f59	(Google Chrome Framework + 0x027c9f59 )	base::mac::CallWithEHFrame(void () block_pointer)
0x000000010fcf067f	(Google Chrome Framework -chrome_browser_application_mac.mm:318 )	-[BrowserCrApplication sendEvent:]
0x00007fff4018419c	(AppKit + 0x0001419c )	
0x0000000110112b6b	(Google Chrome Framework -message_pump_mac.mm:808 )	base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*)
0x000000011011171d	(Google Chrome Framework -message_pump_mac.mm:184 )	base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*)
0x00000001101354c4	(Google Chrome Framework -run_loop.cc:102 )	<name omitted>
0x000000010fcf5377	(Google Chrome Framework -chrome_browser_main.cc:1886 )	ChromeBrowserMainParts::MainMessageLoopRun(int*)
0x000000010e5f9e53	(Google Chrome Framework -browser_main_loop.cc:999 )	content::BrowserMainLoop::RunMainMessageLoopParts()
0x000000010e5fc191	(Google Chrome Framework -browser_main_runner_impl.cc:165 )	content::BrowserMainRunnerImpl::Run()
0x000000010e5f70a8	(Google Chrome Framework -browser_main.cc:47 )	content::BrowserMain(content::MainFunctionParams const&)
0x000000010fcad340	(Google Chrome Framework -content_main_runner_impl.cc:543 )	content::ContentMainRunnerImpl::RunServiceManager(content::MainFunctionParams&, bool)
0x000000010fcad223	(Google Chrome Framework -content_main_runner_impl.cc:866 )	content::ContentMainRunnerImpl::Run(bool)
0x000000011229e77a	(Google Chrome Framework -main.cc:472 )	service_manager::Main(service_manager::MainParams const&)
0x000000010fcac5d3	(Google Chrome Framework -content_main.cc:19 )	content::ContentMain(content::ContentMainParams const&)
0x000000010d93ed2e	(Google Chrome Framework -chrome_main.cc:102 )	ChromeMain
0x000000010d91fdcd	(Google Chrome -chrome_exe_main_mac.cc:101 )	main
0x00007fff6fe74ed8	(libdyld.dylib + 0x00016ed8 )	
0x00007fff6fe74ed8	(libdyld.dylib + 0x00016ed8 )	
I can reproduce this locally. I think it might be related to issue 876493. Investigating.
Labels: -Pri-1 -Target-70 -M-70 -Target-71 -Target-72 M-73 Pri-2
Kicking this down to Pri-2 and M73.
Cc: lgrey@chromium.org
TabDragController::RunMoveLoop does:

  views::Widget::MoveLoopResult result =
      move_loop_widget_->RunMoveLoop(
          drag_offset, move_loop_source, escape_behavior);

while this move loop is running, menus work as normal; if you open a right-click context menu, result will be views::widget::MOVE_LOOP_CANCELED, so TabDragController::RunMoveLoop calls into ::EndDrag and thence into ::EndDragImpl. EndDragImpl is unaware that the tab has been destroyed and tries to call RestoreFocus(), which bursts into flames.

I think that perhaps ::RunMoveLoop (or maybe ::EndDrag) need to deal with the window disappearing while the move loop is running, OR we need to forbid context menus inside the window move loop.
As an aside, thank you **VERY MUCH** for filing this bug - the repro steps here gave us the clue we needed to reproduce issue 876493, which we've been struggling with for months now. :D
Owner: lgrey@chromium.org
To lgrey@ since the root cause is the same as 876493.
Labels: Hotlist-DesktopUIConsider
Labels: Group-Platform
Labels: -Hotlist-DesktopUIConsider Hotlist-DesktopUITriaged

Sign in to add a comment