New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 660018 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

MacViews: Underling NSSheet seen when opening views sheets

Project Member Reported by rsesek@chromium.org, Oct 27 2016

Issue description

Version: 56.0.2902.0
OS: 10.11.6

What steps will reproduce the problem?
(1) --secondary-ui-md --top-chrome-md=material-hybrid --enable-features=MacViewsNativeDialogs,MacViewsWebUIDialogs
(2) Have a bookmark on the bookmark bar
(3) Right click and choose Edit
(4) Sheet opens but you can see the underlying NSSheet behind it

What is the expected output?
No double-sheet effect

What do you see instead?
Double-sheet effect

Please use labels and text to provide additional information.

 
Screen Shot 2016-10-27 at 10.52.15 AM.png
38.3 KB View Download

Comment 1 by rsesek@chromium.org, Oct 27 2016

Cc: karandeepb@chromium.org tapted@chromium.org
Maybe a regression from https://codereview.chromium.org/2448243003/?

Comment 2 by tapted@chromium.org, Oct 27 2016

Cc: hwi@chromium.org ellyjo...@chromium.org shrike@chromium.org
Status: Available (was: Untriaged)
Thanks for the bug! It's not from r428002 - this has been happening for a while. The problem is rooted in how we want window-modal dialogs to appear on Mac.

Before harmony, we said "we like sheets - they are very maccy". Showing this dialog on 10.9 (which screws up shadows if you use a fancy border) was simpler if we just used a native sheet and opaque backgroundColor. "Sheets should look like sheets" *dusts hands*

With --top-chrome-md=material-hybrid, the new dialog code bypasses the codepath I added to nerf the raster border that gets added for Linux (where dialogs are not "real" windows, so you don't get a border shadow from the window manager).

For a while there was talk of just killing this dialog off entirely in Harmony, so I've had this problem on the backburner.

One option is just to re-add the codepath to nerf the raster border when --top-chrome-md=material-hybrid is set. This would retain the past MacViews behaviour, and make this look like a native sheet again.

But also designers are telling me they no longer like "sheets" for window-modal dialogs (or, in fact, any kind of window modal dialog -- e.g. hwi asked if we could make the native `Save` sheet tab-modal [yes we can]). But,
 - Should 'Edit Bookmark' be tab-modal? [probably not].
 - Should we make it a sheet again by nerfing the inner border? [probably easiest for unbreaking this weirdness, and we can still explore other changes later]
 - Should we stop trying to make it look like a "sheet" and use the rounded border? (or,
 - more crazy: Should we make it a bubble/popover like Safari :p?)

Comment 3 by shrike@chromium.org, Oct 28 2016

Labels: Proj-HarmonyDialogs

Comment 4 by tapted@chromium.org, Nov 22 2016

Labels: macvi
Owner: tapted@chromium.org
Status: Started (was: Available)
https://codereview.chromium.org/2519313002/

Comment 5 by tapted@chromium.org, Nov 22 2016

Labels: -macvi Proj-MacViews
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 23 2016

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

commit bf9bf4f69ef97afe4554e489704940db643dac35
Author: tapted <tapted@chromium.org>
Date: Wed Nov 23 01:22:24 2016

MacViews: For "NO_ASSET" MD bubbles, just use the border drawn by the window server.

BubbleBorder::PaintMd() currently ignores BubbleBorder::shadow_. That's
fine for everything except BubbleBorder::NO_ASSETS which should never
draw borders or shadows. On Mac, it allows the WindowServer to provide
the shadow instead.

Add BubbleBorder::PaintNoAssets() which just paints transparent pixels
around the edge of the bubble. This ensures that subviews painting over
the bubble corners (such as the signin promo on the bookmark bubble) get
rounded (again).

BubbleBorder::NO_ASSETS is also used by the fullscreen bubble and shelf
tooltips on ChromeOS. This approach keeps those bubbles to spec with
--secondary-ui-md (e.g. per http://crbug.com/595011 ).

BUG= 667623 ,  660018 

Review-Url: https://codereview.chromium.org/2519313002
Cr-Commit-Position: refs/heads/master@{#434069}

[modify] https://crrev.com/bf9bf4f69ef97afe4554e489704940db643dac35/ui/views/bubble/bubble_border.cc
[modify] https://crrev.com/bf9bf4f69ef97afe4554e489704940db643dac35/ui/views/bubble/bubble_border.h

Comment 7 by tapted@chromium.org, Nov 23 2016

Status: Fixed (was: Started)

Sign in to add a comment