Issue metadata
Sign in to add a comment
|
Blank bar above tabs in Chrome when switching displays on MacOS
Reported by
michal.m...@gmail.com,
Jun 8 2018
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36 Steps to reproduce the problem: 1. Run chrome 2. Switch to external display 3. Disconnect external display What is the expected behavior? Chrome UI looks nice What went wrong? There's a big gray/empty/blank area above tabs. The only way to get rid of it I found is going full screen and back. Restarting Chrome does not help - the issue comes back eventually. Did this work before? Yes Chrome version: 67.0.3396.62 Channel: n/a OS Version: OS X 10.13.5 Flash Version: Multiple people in our office seeing the same. But not all. Started happening ~1 month ago - maybe around Chrome 65? Was not happening before
,
Jun 8 2018
Unable to reproduce the issue on reported version chrome 67.0.3396.62 using Mac 10.13.3. Steps: ----------- 1. Enabled multi monitor set up on Mac 2. Launched chrome and moved one tab to second monitor. 3. Disabled the second monitor. Observed that Chrome UI looks nice and there is no blank. Cc'ing lgrey@ from Issue 835296 for more inputs on this. @reporter: Would it be possible to attach screen-cast of the behavior you are seeing?
,
Jun 8 2018
I can repro by making the window full height on the external monitor and downloading something (so the download bar is showing).
,
Jun 8 2018
+sdy@ The root cause here is that DownloadShelf is causing a relayout when the backing store changes (https://cs.chromium.org/chromium/src/chrome/browser/ui/cocoa/download/download_shelf_view_cocoa.mm?sq=package:chromium&dr&g=0&l=147) This relayout sees the new content view frame and adjusts accordingly But: Later in the process of switching screens we see: 2 AppKit 0x00007fff4605bf19 -[NSView resizeSubviewsWithOldSize:] + 504 3 AppKit 0x00007fff4603a6f6 -[NSView setFrameSize:] + 1672 4 AppKit 0x00007fff460d9df9 -[NSWindow _oldPlaceWindow:] + 1006 5 AppKit 0x00007fff460d921a -[NSWindow _setFrameCommon:display:stashSize:] + 3108 6 AppKit 0x00007fff460d85e9 -[NSWindow _setFrame:display:allowImplicitAnimation:stashSize:] + 222 7 AppKit 0x00007fff460d8504 -[NSWindow setFrame:display:] + 67 8 AppKit 0x00007fff463529b8 -[NSWindow _adjustWindowToScreen] + 1728 Which adjusts everything as if the previous layout hadn't happened, and so, bumps everything down by Height(oldScreen) - Height(newScreen) sdy@ can you think of something less brute force than readjusting the height in this case? We'd need to merge back to 68, so ellyjones@ and I have already rejected trying to work around this some more complex way.
,
Jun 8 2018
It looks like -viewDidChangeBackingProperties doesn't attempt to lay out anything other than the shelf itself. How does it end up affecting the rest of the window? I'm guessing that commenting it out doesn't help, though? One quick option I can think of is to make the height *not* depend on the divider height: just size the shelf to `kMDShelfHeight`.
,
Jun 8 2018
You might also try just doing `self.needsLayout = YES` in -viewDidMoveToWindow and -viewDidChangeBackingProperties, and then putting the actual height adjustment (the body of adjustHeightForDivider) in a -layout override.
,
Jun 11 2018
Re c#5 2 libchrome_dll.dylib 0x000000010998effa -[BrowserWindowController(Private) applyLayout:] + 570 3 libchrome_dll.dylib 0x000000010998a6e1 -[BrowserWindowController(Private) layoutSubviews] + 433 4 libchrome_dll.dylib 0x000000010997ace1 -[BrowserWindowController resizeView:newHeight:] + 2385 5 libchrome_dll.dylib 0x0000000109900ef8 -[AnimatableView setHeight:] + 88 6 libchrome_dll.dylib 0x00000001099d1d12 -[DownloadShelfView adjustHeightForDivider] + 306 Magic!
,
Jun 11 2018
I see :/
,
Jun 11 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b6a6f344bb8e4279c60f48e02caa7cbef461765b commit b6a6f344bb8e4279c60f48e02caa7cbef461765b Author: Leonard Grey <lgrey@chromium.org> Date: Mon Jun 11 23:00:30 2018 Cocoa: don't adjust download shelf height to account for divider Making this change during a screen transition causes a browser view layout. However, AppKit appears to manually adjust subviews of views that were resized due to a screen change, and does this using the former sizes. This happens *after* layout is triggered in this case, causing the contents of the view to be pushed down by the difference in height between displays. Bug: 850829 Change-Id: I53a0b03114fa9647c389595265211f5639a523a0 Reviewed-on: https://chromium-review.googlesource.com/1095322 Reviewed-by: Sidney San Martín <sdy@chromium.org> Commit-Queue: Leonard Grey <lgrey@chromium.org> Cr-Commit-Position: refs/heads/master@{#566189} [modify] https://crrev.com/b6a6f344bb8e4279c60f48e02caa7cbef461765b/chrome/browser/ui/cocoa/download/download_shelf_view_cocoa.mm
,
Jun 12 2018
,
Jun 12 2018
This bug requires manual review: M68 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jun 14 2018
+abdulsyed@ Abdul, we believe this is a very safe merge
,
Jun 14 2018
Actually, +govind@, since it looks like Abdul is out
,
Jun 14 2018
Approving merge to M68 branch 3440 based on comment #12. Please merge. Thank you.
,
Jun 14 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3480b2a11f92e7fcf063ad5a4b1403a91b43413c commit 3480b2a11f92e7fcf063ad5a4b1403a91b43413c Author: Leonard Grey <lgrey@chromium.org> Date: Thu Jun 14 15:06:51 2018 Cocoa: don't adjust download shelf height to account for divider Making this change during a screen transition causes a browser view layout. However, AppKit appears to manually adjust subviews of views that were resized due to a screen change, and does this using the former sizes. This happens *after* layout is triggered in this case, causing the contents of the view to be pushed down by the difference in height between displays. Bug: 850829 Change-Id: I53a0b03114fa9647c389595265211f5639a523a0 Reviewed-on: https://chromium-review.googlesource.com/1095322 Reviewed-by: Sidney San Martín <sdy@chromium.org> Commit-Queue: Leonard Grey <lgrey@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#566189}(cherry picked from commit b6a6f344bb8e4279c60f48e02caa7cbef461765b) Reviewed-on: https://chromium-review.googlesource.com/1101097 Reviewed-by: Leonard Grey <lgrey@chromium.org> Cr-Commit-Position: refs/branch-heads/3440@{#359} Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733} [modify] https://crrev.com/3480b2a11f92e7fcf063ad5a4b1403a91b43413c/chrome/browser/ui/cocoa/download/download_shelf_view_cocoa.mm
,
Jun 14 2018
Issue 845953 has been merged into this issue.
,
Jun 25 2018
,
Jun 29 2018
,
Jun 29 2018
,
Jul 19
,
Aug 16
Issue 873276 has been merged into this issue. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by michal.m...@gmail.com
, Jun 8 2018