Reland "mac: Implement custom AppKit Enter Fullscreen transition."
commit7b8655fdfa9ae6717dc7bb0a113f614954583e7e
authorerikchen <erikchen@chromium.org>
Tue, 20 Jan 2015 19:04:07 +0000 (20 11:04 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 20 Jan 2015 19:05:10 +0000 (20 19:05 +0000)
tree13c2e467c72278e222ba931058573d522beb65c9
parent421eb1d2185b5e1992d0a52a69dce8ef433a82f8
Reland "mac: Implement custom AppKit Enter Fullscreen transition."

The original CL was reverted because it introduced a static initializer. This
CL fixes that.

> AppKit's default Fullscreen transition cross-fades between two static images: a
> snapshot of the window before the transition began, and a snapshot of the
> window resized to the full size of the screen. This has the problem that
> frequently, when AppKit takes the snapshot of the final state of the window,
> the web contents view has not yet drawn any content in the new size. The
> animation itself looks weird, and then there's a flash when the animation
> finishes where the snapshot of the old web content is replaced by the new web
> content.
>
> This custom fullscreen transition is very similar, except instead of taking a
> snapshot of the window in its final state, the transition uses a live version
> of the window in its final state. See the associated bug for more details about
> the implementation.
>
> BUG=414527
> Committed: https://crrev.com/a48cbbba0075b7a7c135605ab576bad2cfa5a1b3
> Cr-Commit-Position: refs/heads/master@{#311717}

BUG=414527
TBR=mark@chromium.org, andresantoso@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#312234}
base/mac/sdk_forward_declarations.h
chrome/browser/ui/cocoa/browser_window_controller.h
chrome/browser/ui/cocoa/browser_window_controller_private.h
chrome/browser/ui/cocoa/browser_window_controller_private.mm
chrome/browser/ui/cocoa/browser_window_enter_fullscreen_transition.h [new file with mode: 0644]
chrome/browser/ui/cocoa/browser_window_enter_fullscreen_transition.mm [new file with mode: 0644]
chrome/chrome_browser_ui.gypi