New issue
Advanced search Search tips

Issue 758953 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner:
Closed: Jul 11
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Blocking:
issue 671916



Sign in to add a comment

[MacViews] History swiper arrows

Reported by jongkwon...@navercorp.com, Aug 25 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3189.0 Safari/537.36

Steps to reproduce the problem:
1. build chrome with mac_views_browser=1 and run
2. open any web page
3. swipe with magic mouse right
4. I can see left arrow on the left side of web page
5. miniaturize browser and deminiaturize
6. swipe with magic mouse right

What is the expected behavior?
Left arrow should be seen on the left side of web page 

What went wrong?
Left arrow is not seen. Only a round background is displayed.

Did this work before? No 

Chrome version: 62.0.3189.0  Channel: n/a
OS Version: OS X 10.12.6
Flash Version:
 

Comment 1 by meh...@chromium.org, Aug 25 2017

Cc: tapted@chromium.org
Components: -UI UI>Browser>Navigation
Labels: Proj-MacViews

Comment 2 by tapted@chromium.org, Aug 26 2017

Blocking: 671916
Status: Available (was: Unconfirmed)
This issue reproduces on OS X 10.12 but not on OS X 10.11.
It is related to setAutoDisplay: in BridgedNativeWidget::OnVisibilityChanged()
https://cs.chromium.org/chromium/src/ui/views/cocoa/bridged_native_widget.mm?q=bridged_nat&sq=package:chromium&l=913

It can be fixed if we call [window_ display]; after the call [window_ setAutodisplay:YES]; but I don't know why.
I tested it on seeing the following comment in WebKit:
https://webkit.googlesource.com/WebKit/+/b11e7874ca019b0218066e938b93574cdd423e10/Source/WebKit2/ChangeLog#14690

Or it also can be fixed if we do not call [window_ setAutodisplay:window_visible_]; and I don't know why it is necessary here.
in the past, the layer()->SetVisible(..) call (with false) higher up in OnVisibilityChanged would cause the contents to disappear/paint white during a minimize animation. If that no longer happens, it might be something changed in 10.12, or something changed around how ui::Layers work so that that no longer happens.

If 10.9 is fine without it, and no tests fail, it should be fine to remove.
layer()->SetVisible(false) is causing the contents to disappear/paint white during a minimize animation even with [window_ setAutodisplay:window_visible_]. I tested it on 10.12 and 10.11.
How about not to call layer()->SetVisible(window_visible_) when window_visible_ is false. I think layer() can be remain visible when window_ is invisible.
> layer()->SetVisible(false) is causing the contents to disappear/paint white during a minimize animation even with [window_ setAutodisplay:window_visible_]. I tested it on 10.12 and 10.11.

This should be fixable. We might need to delay the call to setAutoDisplay:true until BridgedNativeWidget::AcceleratedWidgetSwapCompleted(), or find some other way to suppess showing the blank layer. Otherwise, somehow block the deminiaturize animation from commencing with BridgedNativeWidget::MaybeWaitForFrame()


> How about not to call layer()->SetVisible(window_visible_) when window_visible_ is false. I think layer() can be remain visible when window_ is invisible.

I think this will cause tests to fail. And there are downsides - we still want to free up resources and suppress paints while the window is minimized. However there is also "occlusion" which feeds through differently on Mac, but AFAIK just for web contents (i.e. NSWindowDidChangeOcclusionStateNotification and RenderWidgetHostViewMac::Was[Un]Occluded(). If we can use occlusion to fulfill the same {free resources,suppress repaints} requirement on Mac function (rather than setting the layer invisible), then we might be able to justify leaving the layer visible.

But I suspect NSWindowDidChangeOcclusionStateNotification is asynchronous and won't satisfy all the requirements -- we still need to "Freeze" window display calls somehow.
Labels: -Via-Wizard-UI MacViews-Browser Target-68
Owner: sdy@chromium.org
Status: Assigned (was: Available)
MacViews triage: assigning to sdy@ for M-68 fix.

Comment 8 by gov...@chromium.org, Mar 27 2018

Labels: M-68

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

** Bulk Edit **

FYI: Starting 04/13 M68 will be in canary, M68 Dev promotion will be on 04/26.

Pls mark the bug as fixed if CL is landed in trunk and nothing else is pending. Thank you.
Labels: -Target-68 Target-69
Status: WontFix (was: Assigned)
This seems to be fixed.
Labels: -M-68 Group-Views_Regressions_from_Cocoa

Sign in to add a comment