Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Issue 159573002: Fix app launcher animation tearing on OSX Mavericks. (Closed)

Created:
6 years, 10 months ago by tapted
Modified:
6 years, 10 months ago
Reviewers:
Robert Sesek
CC:
chromium-reviews, chrome-apps-syd-reviews_chromium.org, tfarina
Visibility:
Public.

Description

Fix app launcher animation tearing on OSX Mavericks. Mavericks introduced [NSView setCanDrawSubviewsIntoLayer:] which I suspect has changed some of the animation compositing pipeline. Recently, the app launcher has been "tearing" the canvas while dragging items around quickly. This change ensures that the common ancestor view of the NSCollectionView and the transitive layer used for custom drag animations is layer-backed. This prevents the tearing. BUG=341769 TEST=Drag items around the OSX app lanucher quickly - icons should animate smoothly, without tearing. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=251030

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+6 lines, -0 lines) Patch
M ui/app_list/cocoa/app_list_view_controller.mm View 1 chunk +6 lines, -0 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
tapted
Hi Robert could you take a look? ... more AppKit craziness. Note this has started ...
6 years, 10 months ago (2014-02-11 03:59:21 UTC) #1
Robert Sesek
lgtm w/ q: Are the NSCollectionView and dnd view both layer-backed too?
6 years, 10 months ago (2014-02-11 16:07:23 UTC) #2
tapted
On 2014/02/11 16:07:23, rsesek wrote: > lgtm w/ q: > > Are the NSCollectionView and ...
6 years, 10 months ago (2014-02-12 10:34:35 UTC) #3
tapted
On 2014/02/12 10:34:35, tapted wrote: > On 2014/02/11 16:07:23, rsesek wrote: > > lgtm w/ ...
6 years, 10 months ago (2014-02-13 05:12:04 UTC) #4
tapted
The CQ bit was checked by tapted@chromium.org
6 years, 10 months ago (2014-02-13 05:12:12 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/tapted@chromium.org/159573002/1
6 years, 10 months ago (2014-02-13 05:14:41 UTC) #6
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 10 months ago (2014-02-13 08:16:16 UTC) #7
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) telemetry_unittests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=263301
6 years, 10 months ago (2014-02-13 08:16:17 UTC) #8
tapted
The CQ bit was checked by tapted@chromium.org
6 years, 10 months ago (2014-02-13 12:11:08 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/tapted@chromium.org/159573002/1
6 years, 10 months ago (2014-02-13 12:11:40 UTC) #10
commit-bot: I haz the power
Change committed as 251030
6 years, 10 months ago (2014-02-13 15:44:38 UTC) #11
Robert Sesek
On 2014/02/13 05:12:04, tapted wrote: > On 2014/02/12 10:34:35, tapted wrote: > > On 2014/02/11 ...
6 years, 10 months ago (2014-02-24 14:14:56 UTC) #12
Robert Sesek
6 years, 10 months ago (2014-02-24 14:50:54 UTC) #13
Message was sent while issue was closed.
On 2014/02/24 14:14:56, rsesek wrote:
> On 2014/02/13 05:12:04, tapted wrote:
> > On 2014/02/12 10:34:35, tapted wrote:
> > > On 2014/02/11 16:07:23, rsesek wrote:
> > > > lgtm w/ q:
> > > > 
> > > > Are the NSCollectionView and dnd view both layer-backed too?
> > > 
> > > Ah, so the dnd view definitely is -
> > >
> >
>
https://code.google.com/p/chromium/codesearch#chromium/src/ui/app_list/cocoa/...
> > > 
> > > The NSCollectionView doesn't appear to be -- -[NSCollectionView
wantsLayer]
> > > always returns 'NO'. And calling setWantsLayer:YES on the NSCollecitonView
> > (and
> > > not the common ancestor view) also prevents the tearing. Performance
wise..
> > it's
> > > hard to tell if one is better (I don't have any retina dev machines
sadly).
> > > 
> > > Do you have any recommendations? E.g. one of:
> > >  - setWantsLayer on the NSCollectionView instead of the ancestor view
> > >  - setWantsLayer on both
> > >  - as is (just ancestor view)
> > 
> > Going for the CQ gauntlet.. feel free to boot it out. I think putting it on
> the
> > ancestor view is the more robust option; so all subviews inherit a layer.
Then
> > (after some more experiments) setting it (or not) on the NSCollectionView
> seems
> > to have no effect.
> 
> Back from vacation, now…
> 
> If it works by giving the ancestor parent view a layer that its children
share,
> that's the best option since it's more efficient.

False. This is only true on 10.9 if you enable layer squashing:

https://developer.apple.com/library/mac/documentation/cocoa/reference/applica...:

This is fine.

Powered by Google App Engine
This is Rietveld 408576698