New issue
Advanced search Search tips

Issue 844482 link

Starred by 6 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocking:
issue 672343



Sign in to add a comment

MacViews: DCHECK when creating a new window while in a new window

Project Member Reported by mblsha.y...@gmail.com, May 18 2018

Issue description

Chrome Version: 68.0.3434.0 dec5afddcc71114e20f7bd9696e86ce82d7b3331-refs/heads/master@{#559532}
OS: macOS 10.13.4 (Build 17E199)

What steps will reproduce the problem?
(1) Start Chromium with --enable-features=ViewsBrowserWindows
(2) View → Enter Full Screen
(3) File → New Window

What is the expected result?
A new window is created immediately on a new space and the active space is changed to that.

What happens instead?
Before the expected result happens we get a DCHECK: window_visible_ is false in BridgedNativeWidget::OnFullscreenTransitionStart:

  * frame #3: 0x000000013b180a73 libviews.dylib`views::BridgedNativeWidget::OnFullscreenTransitionStart(this=0x00000001022514f0, target_fullscreen_state=true) at bridged_native_widget.mm:654
    frame #4: 0x000000013b199ced libviews.dylib`::-[ViewsNSWindowDelegate windowWillEnterFullScreen:](self=0x000060800042f040, _cmd="windowWillEnterFullScreen:", notification="NSWindowWillEnterFullScreenNotification") at views_nswindow_delegate.mm:143
    frame #5: 0x00007fff377bff2c CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #6: 0x00007fff377bfdfa CoreFoundation`_CFXRegistrationPost + 458
    frame #7: 0x00007fff377bfb31 CoreFoundation`___CFXNotificationPost_block_invoke + 225
    frame #8: 0x00007fff3777d8d0 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1664
    frame #9: 0x00007fff3777ca07 CoreFoundation`_CFXNotificationPost + 599
    frame #10: 0x00007fff3987f8c7 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
    frame #11: 0x00007fff358bfc10 AppKit`-[NSWindow(NSFullScreen) _willEnterFullScreen] + 89
    frame #12: 0x00007fff3521d9a6 AppKit`-[_NSWindowEnterFullScreenTransitionController setupWindowForAfterFullScreenEnter] + 72
    frame #13: 0x00007fff356ef4e9 AppKit`-[_NSEnterFullScreenTransitionController start] + 393
    frame #14: 0x00007fff3521f02e AppKit`-[_NSWindowEnterFullScreenTransitionController start] + 369
    frame #15: 0x00007fff356195b7 AppKit`-[NSWindow _reallyDoOrderWindowAboveOrBelow:relativeTo:findKey:forCounter:force:isModal:] + 2895
    frame #16: 0x00007fff34e71765 AppKit`-[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 287
    frame #17: 0x00007fff34e715cb AppKit`-[NSWindow orderWindow:relativeTo:] + 169
    frame #18: 0x000000013b197a31 libviews.dylib`::-[NativeWidgetMacNSWindow orderWindow:relativeTo:](self=0x00000001022574a0, _cmd="orderWindow:relativeTo:", orderingMode=NSWindowAbove, otherWindowNumber=0) at native_widget_mac_nswindow.mm:145
    frame #19: 0x000000010d1b4541 libchrome_dll.dylib`::-[BrowserNativeWidgetWindow orderWindow:relativeTo:](self=0x00000001022574a0, _cmd="orderWindow:relativeTo:", place=NSWindowAbove, otherWin=0) at browser_native_widget_window_mac.mm:115
    frame #20: 0x00007fff34f151c9 AppKit`-[NSWindow makeKeyAndOrderFront:] + 110
    frame #21: 0x000000013b17eba1 libviews.dylib`views::BridgedNativeWidget::SetVisibilityState(this=0x00000001022514f0, new_state=SHOW_AND_ACTIVATE_WINDOW) at bridged_native_widget.mm:512
    frame #22: 0x000000013b309c96 libviews.dylib`views::NativeWidgetMac::ShowWithWindowState(this=0x0000608000294870, state=SHOW_STATE_DEFAULT) at native_widget_mac.mm:467
    frame #23: 0x000000013b31ca62 libviews.dylib`views::Widget::Show(this=0x0000000102239940) at widget.cc:622
    frame #24: 0x000000010d3adc9b libchrome_dll.dylib`BrowserView::Show(this=0x0000000100958e00) at browser_view.cc:622
    frame #25: 0x000000010cb1c25c libchrome_dll.dylib`chrome::OpenEmptyWindow(profile=0x000000015e41b180) at browser_commands.cc:392
    frame #26: 0x000000010cb1c14b libchrome_dll.dylib`chrome::NewEmptyWindow(profile=0x000000015e41b180) at browser_commands.cc:383
    frame #27: 0x000000010cb1d951 libchrome_dll.dylib`chrome::NewWindow(browser=0x000000010250dff0) at browser_commands.cc:552

Not sure whether it's a regression or it always was like this in MacViews: can't bisect a DCHECK :-(
 

Comment 1 by tapted@chromium.org, May 22 2018

Blocking: 672343
Status: Available (was: Untriaged)
This may be "innocent" (i.e. everything works fine in Release when the DCHECK doesn't happen - if not please comment).

But we should add test coverage to bridged_native_widget_interactive_uitest.mm to exercise this codepath before removing the DCHECK.
Cc: -tapted@chromium.org
Owner: tapted@chromium.org
Status: Assigned (was: Available)
(I'm hitting this in dev, seems to be okay in release.)
Labels: Group-Full_Screen_Support
Labels: Hotlist-DesktopUIValid Hotlist-DesktopUIChecked
** UI Mass triage**

Adding labels for expert review.

Sign in to add a comment