MacViews browser: fullscreen trips AppKit assert |
|||||||||||
Issue description
ZoomBubbleViewsBrowserTest.NonImmersiveFullscreen, when in polychrome-views mode, trips an assertion in appkit:
[54424:57871:0322/095744.372397:ERROR:native_widget_mac.mm(176)] Not implemented reached in virtual void views::NativeWidgetMac::FrameTypeChanged()
[54424:775:0322/095744.691847:ERROR:native_widget_mac.mm(611)] Not implemented reached in virtual void views::NativeWidgetMac::SetVisibilityAnimationTransition(Widget::VisibilityTransition)
Assertion failed: ([self.titlebarContainerView superview] == nil), function -[NSThemeFrame _reacquireToolbarViewFromFullScreenWindowAndShow:], file /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1561.40.112/AppKit.subproj/NSThemeFrame.m, line 7816.
(lldb) bt
* thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00007fff7fa24b6e libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007fff7fbef080 libsystem_pthread.dylib`pthread_kill + 333
frame #2: 0x00007fff7f9801ae libsystem_c.dylib`abort + 127
frame #3: 0x00007fff7f9481ac libsystem_c.dylib`__assert_rtn + 320
frame #4: 0x00007fff54db1742 AppKit`-[NSThemeFrame _reacquireToolbarViewFromFullScreenWindowAndShow:] + 621
* frame #5: 0x00007fff55649980 AppKit`-[NSWindow(NSFullScreen) _cleanupAndRemoveFullScreenContentController] + 78
frame #6: 0x00007fff5564b366 AppKit`-[NSWindow(NSFullScreen) _fullScreenStatusChanged] + 374
frame #7: 0x00007fff54cd643f AppKit`__25-[NSWindow setStyleMask:]_block_invoke + 2178
frame #8: 0x00007fff54bf5c0c AppKit`NSPerformVisuallyAtomicChange + 146
frame #9: 0x00007fff54cd5b74 AppKit`-[NSWindow setStyleMask:] + 191
frame #10: 0x00007fff5515296e AppKit`-[_NSWindowExitFullScreenTransitionController setupWindowForAfterFullScreenExit] + 106
frame #11: 0x00007fff5543bfa0 AppKit`__46-[_NSExitFullScreenTransitionController start]_block_invoke.268 + 57
frame #12: 0x00007fff7f8a264a libdispatch.dylib`_dispatch_call_block_and_release + 12
frame #13: 0x00007fff7f89ae08 libdispatch.dylib`_dispatch_client_callout + 8
frame #14: 0x00007fff7f8a63e5 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1148
frame #15: 0x00007fff5757dea9 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
frame #16: 0x00007fff575406ba CoreFoundation`__CFRunLoopRun + 2586
frame #17: 0x00007fff5753fa07 CoreFoundation`CFRunLoopRunSpecific + 487
frame #18: 0x00007fff5681dd96 HIToolbox`RunCurrentEventLoopInMode + 286
frame #19: 0x00007fff5681db06 HIToolbox`ReceiveNextEventCommon + 613
frame #20: 0x00007fff5681d884 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64
frame #21: 0x00007fff54ad0a73 AppKit`_DPSNextEvent + 2085
frame #22: 0x00007fff55266e34 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
frame #23: 0x0000000101a14be0 browser_tests`::__71-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]_block_invoke(.block_descriptor=0x00007ffeefbfdef8) at chrome_browser_application_mac.mm:177 [opt]
frame #24: 0x00000001093dd5ea libbase.dylib`base::mac::CallWithEHFrame(void () block_pointer) at call_with_eh_frame_asm.S:36
frame #25: 0x0000000101a14b24 browser_tests`::-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:](self=<unavailable>, _cmd=<unavailable>, mask=<unavailable>, expiration=<unavailable>, mode=<unavailable>, dequeue=<unavailable>) at chrome_browser_application_mac.mm:176 [opt]
frame #26: 0x00007fff54ac5885 AppKit`-[NSApplication run] + 764
frame #27: 0x00000001093ef55c libbase.dylib`base::MessagePumpNSApplication::DoRun(this=0x000000011d143720, delegate=<unavailable>) at message_pump_mac.mm:815 [opt]
frame #28: 0x00000001093edcee libbase.dylib`base::MessagePumpCFRunLoopBase::Run(this=0x000000011d143720, delegate=0x000000011d12cff0) at message_pump_mac.mm:189 [opt]
frame #29: 0x000000010941de35 libbase.dylib`base::RunLoop::Run(this=0x00007ffeefbfe210) at run_loop.cc:130 [opt]
frame #30: 0x0000000101f3e4a3 browser_tests`content::RunMessageLoop() [inlined] content::RunThisRunLoop(run_loop=0x000000011d12cff8) at test_utils.cc:127 [opt]
frame #31: 0x0000000101f3e47b browser_tests`content::RunMessageLoop() at test_utils.cc:121 [opt]
frame #32: 0x00000001019a7799 browser_tests`InProcessBrowserTest::QuitBrowsers(this=0x000000011d6b38a0) at in_process_browser_test.cc:538 [opt]
frame #33: 0x00000001019a7678 browser_tests`InProcessBrowserTest::PostRunTestOnMainThread(this=0x000000011d6b38a0) at in_process_browser_test.cc:514 [opt]
frame #34: 0x0000000101ef29da browser_tests`content::BrowserTestBase::ProxyRunTestOnMainThreadLoop(this=0x000000011d6b38a0) at browser_test_base.cc:404 [opt]
frame #35: 0x0000000101a1a22d browser_tests`ChromeBrowserMainParts::PreMainMessageLoopRunImpl() [inlined] base::RepeatingCallback<void ()>::Run(this=<unavailable>) const & at callback.h:124 [opt]
frame #36: 0x0000000101a1a227 browser_tests`ChromeBrowserMainParts::PreMainMessageLoopRunImpl(this=0x000000011840d5d0) at chrome_browser_main.cc:2111 [opt]
frame #37: 0x0000000101a190be browser_tests`ChromeBrowserMainParts::PreMainMessageLoopRun(this=0x000000011840d5d0) at chrome_browser_main.cc:1442 [opt]
frame #38: 0x000000010d218043 libcontent.dylib`content::BrowserMainLoop::PreMainMessageLoopRun(this=0x000000011840a830) at browser_main_loop.cc:1040 [opt]
frame #39: 0x000000010d5f8f87 libcontent.dylib`content::StartupTaskRunner::RunAllTasksNow() [inlined] base::RepeatingCallback<int ()>::Run(this=<unavailable>) const & at callback.h:124 [opt]
frame #40: 0x000000010d5f8f77 libcontent.dylib`content::StartupTaskRunner::RunAllTasksNow(this=0x000000011d12a3a0) at startup_task_runner.cc:45 [opt]
frame #41: 0x000000010d216c5d libcontent.dylib`content::BrowserMainLoop::CreateStartupTasks(this=0x000000011840a830) at browser_main_loop.cc:953 [opt]
frame #42: 0x000000010d21a4f0 libcontent.dylib`content::BrowserMainRunnerImpl::Initialize(this=<unavailable>, parameters=0x00007ffeefbfea10) at browser_main_runner.cc:141 [opt]
frame #43: 0x000000010d214b34 libcontent.dylib`content::BrowserMain(parameters=0x00007ffeefbfea10) at browser_main.cc:42 [opt]
frame #44: 0x000000010daa0049 libcontent.dylib`content::ContentMainRunnerImpl::Run(this=0x000000012160b7e0) at content_main_runner.cc:703 [opt]
frame #45: 0x00000001112bad13 libembedder.dylib`service_manager::Main(params=<unavailable>) at main.cc:453 [opt]
frame #46: 0x000000010da9f524 libcontent.dylib`content::ContentMain(params=0x00007ffeefbff628) at content_main.cc:19 [opt]
frame #47: 0x0000000101ef2410 browser_tests`content::BrowserTestBase::SetUp(this=0x000000011d6b38a0) at browser_test_base.cc:320 [opt]
frame #48: 0x00000001019a67ff browser_tests`InProcessBrowserTest::SetUp(this=0x000000011d6b38a0) at in_process_browser_test.cc:230 [opt]
frame #49: 0x00000001014d1731 browser_tests`testing::Test::Run(this=0x000000011d6b38a0) at gtest.cc:0 [opt]
frame #50: 0x00000001014d2350 browser_tests`testing::TestInfo::Run(this=0x000000011d5b6ac0) at gtest.cc:2661 [opt]
frame #51: 0x00000001014d28b7 browser_tests`testing::TestCase::Run(this=0x000000011d5b6cd0) at gtest.cc:2779 [opt]
frame #52: 0x00000001014ddf17 browser_tests`testing::internal::UnitTestImpl::RunAllTests(this=0x00000001182099c0) at gtest.cc:5036 [opt]
frame #53: 0x00000001014ddb9e browser_tests`testing::UnitTest::Run(this=<unavailable>) at gtest.cc:0 [opt]
frame #54: 0x00000001019b9ba7 browser_tests`base::TestSuite::Run() [inlined] RUN_ALL_TESTS() at gtest.h:2314 [opt]
frame #55: 0x00000001019b9b9a browser_tests`base::TestSuite::Run(this=0x00007ffeefbff298) at test_suite.cc:275 [opt]
frame #56: 0x00000001019788c5 browser_tests`ChromeTestSuiteRunner::RunTestSuite(this=<unavailable>, argc=<unavailable>, argv=<unavailable>) at chrome_test_launcher.cc:66 [opt]
frame #57: 0x0000000101f3ae85 browser_tests`content::LaunchTests(launcher_delegate=0x00007ffeefbff820, parallel_jobs=1, argc=3, argv=0x00007ffeefbff880) at test_launcher.cc:625 [opt]
frame #58: 0x0000000101978dac browser_tests`LaunchChromeTests(parallel_jobs=1, delegate=0x00007ffeefbff820, argc=3, argv=0x00007ffeefbff880) at chrome_test_launcher.cc:171 [opt]
frame #59: 0x000000010197883e browser_tests`main(argc=3, argv=0x00007ffeefbff880) at browser_tests_main.cc:36 [opt]
frame #60: 0x00007fff7f8d4015 libdyld.dylib`start + 1
,
Mar 22 2018
,
Mar 22 2018
,
Mar 23 2018
,
Mar 26 2018
Load balancing M67 bugs :)
,
Mar 26 2018
This is actually very easy to trigger in normal use: fullscreen the browser window, then exit fullscreen. Bumping priority.
,
Mar 26 2018
,
Mar 26 2018
If there is any additional work needed besides Cl listed at #1, pls try to finish it ASAP and land the change to trunk. Thank you. Note: M67 branch is coming soon on April 12th and this is BLOCKING canary/dev experiment as it is P1.
,
Mar 26 2018
,
Mar 26 2018
,
Mar 27 2018
The fix for this is stuck in CQ right now due to https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/6WEMw7zaTtc
,
Mar 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4a9be00adc2d3b5123cc48b18a72802a09f24d5c commit 4a9be00adc2d3b5123cc48b18a72802a09f24d5c Author: Leonard Grey <lgrey@chromium.org> Date: Tue Mar 27 16:02:56 2018 MacViews: fix fullscreen AppKit assert The root cause of this was that a copy of the toolbar was being created in fullscreen mode. It seems like having separate NSThemeFrame subclasses for fullscreen and non-fullscreen is unsupported. This change causes a regression by making the toolbar too large in fullscreen mode; https://crbug.com/825968 was filed to address this. Bug: 824757 Change-Id: I9d63a1646f5dbfd0666f367d1dc859359e91552f Reviewed-on: https://chromium-review.googlesource.com/980600 Reviewed-by: Sidney San MartÃn <sdy@chromium.org> Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org> Commit-Queue: Leonard Grey <lgrey@chromium.org> Cr-Commit-Position: refs/heads/master@{#546114} [modify] https://crrev.com/4a9be00adc2d3b5123cc48b18a72802a09f24d5c/chrome/browser/ui/views/frame/browser_native_widget_window_mac.mm
,
Mar 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1d0b72987eac3d6484fb80063c04a29dabdc1975 commit 1d0b72987eac3d6484fb80063c04a29dabdc1975 Author: Leonard Grey <lgrey@chromium.org> Date: Tue Mar 27 21:56:01 2018 Re-enable ZoomBubbleViewsBrowserTest.NonImmersiveFullscreen on Mac Bug: 824757 Change-Id: I260a790b508b30c2781cdc2061da2588bfcda2c9 Reviewed-on: https://chromium-review.googlesource.com/980966 Reviewed-by: Robert Liao <robliao@chromium.org> Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org> Commit-Queue: Leonard Grey <lgrey@chromium.org> Cr-Commit-Position: refs/heads/master@{#546279} [modify] https://crrev.com/1d0b72987eac3d6484fb80063c04a29dabdc1975/chrome/browser/ui/views/location_bar/zoom_bubble_view_browsertest.cc
,
Mar 29 2018
Is anything pending or this can be marked as fixed?
,
Mar 29 2018
,
Apr 20 2018
@Leonard Grey: Could you please let us know if this issue can be verified from our end, if yes - providing with steps/test file along with expected and actual behaviour would help us in verifying the fix. Thanks!
,
Apr 20 2018
I'm not sure if this was ever reproducible outside of tests. The test is enabled and passing now, so I'll mark it verified.
,
Apr 20 2018
|
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by bugdroid1@chromium.org
, Mar 22 2018