CoreAnimation: Fix avatar button
commit3d728037f158ff13ace75414ff082370b9048cfe
authorccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Tue, 22 Apr 2014 04:46:45 +0000 (22 04:46 +0000)
committerccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Tue, 22 Apr 2014 04:46:45 +0000 (22 04:46 +0000)
tree7ddb704e4be1bfca346a9a7b0f481d5aa06e1954
parent82c78fd2f4ce4a15160964172845590b45aa0c3f
CoreAnimation: Fix avatar button

The avatar button is a child of the NSThemeFrameView, which does not
have a layer, and therefore does not have a layer itself. As a result,
it will never appear above a view that has a layer, like, for instance,
the FloatingBarBackingView, when in presentation mode.

Note that, while this does fix the issue empirically, there is no
guarantee about the ordering of layered views that do not have a common
ancestor that has a layer. In principle, this issue could happen again,
depending on internal implementation details -- this fix just makes
it so the issue is not guaranteed to happen all the time. In my testing
I haven't provoked the issue with the fix.

The long-term solution to this problem is probably to have the
NSThemeFrameView have a layer. This will need to be done carefully
because simply making it layer-backed results in high memory usage and
poor performance.

BUG=365266

Review URL: https://codereview.chromium.org/242843003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265166 0039d316-1c4b-4281-b951-d872f2087c98
chrome/browser/ui/cocoa/profiles/avatar_icon_controller.mm