New issue
Advanced search Search tips

Issue 824757 link

Starred by 6 users

Issue metadata

Status: Verified
Owner:
Closed: Mar 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug

Blocking:
issue 817419



Sign in to add a comment

MacViews browser: fullscreen trips AppKit assert

Project Member Reported by ellyjo...@chromium.org, Mar 22 2018

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

 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3bc31a601c4bc44f7caa2a9bb3e88d11e4eb9d72

commit 3bc31a601c4bc44f7caa2a9bb3e88d11e4eb9d72
Author: Elly Fong-Jones <ellyjones@chromium.org>
Date: Thu Mar 22 15:44:54 2018

polychrome: disable ZoomBubbleViewsBrowserTest.NonImmersiveFullscreen on Mac

This test doesn't work on Mac in any mode; it historically hasn't been run
on Mac at all. Something is up with the fullscreen transition it does.

TBR=robliao@chromium.org

Bug:  824757 ,817408
Change-Id: Ie32cabcaf3d69e7b6944cedb17a2a0ad61da9966
Reviewed-on: https://chromium-review.googlesource.com/975625
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545083}
[modify] https://crrev.com/3bc31a601c4bc44f7caa2a9bb3e88d11e4eb9d72/chrome/browser/ui/views/location_bar/zoom_bubble_view_browsertest.cc

Cc: robliao@chromium.org
 Issue 823490  has been merged into this issue.
Blocking: 817419
Labels: MacViews-Tests
Owner: lgrey@chromium.org
Load balancing M67 bugs :)
Labels: -Pri-2 Pri-1
This is actually very easy to trigger in normal use: fullscreen the browser window, then exit fullscreen. Bumping priority.

Comment 7 by gov...@chromium.org, Mar 26 2018

Labels: Proj-MacViews

Comment 8 by gov...@chromium.org, 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. 

Comment 9 by gov...@chromium.org, Mar 26 2018

Cc: ellyjo...@chromium.org
Labels: M-67

Comment 11 by lgrey@chromium.org, 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
Project Member

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

Project Member

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

Is anything pending or this can be marked as fixed?

Comment 15 by lgrey@google.com, Mar 29 2018

Status: Fixed (was: Assigned)
Labels: Needs-Feedback
@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!

Comment 17 by lgrey@chromium.org, 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.

Comment 18 by lgrey@chromium.org, Apr 20 2018

Status: Verified (was: Fixed)

Sign in to add a comment