Use only one ui::Compositor per Chrome window on Mac
Create a BrowserCompositorViewMac C++ class which is used to manage
and recycle a BrowserCompositorViewCocoa Objective C class (in a similar
manner to RenderWidgetHostViewMac and RenderWidgetHostViewCocoa).
There are two classes of BrowserCompositorViewMac -- ones that have a
BrowserCompositorViewCocoa, used by visible windows, and ones that
do not, which are used by backgrounded tabs. When there are any of the
second type of BrowserCompositorViewMac in existence, keep around at
most one spare BrowserCompositorViewCocoa to be recycled. This has
the effect of avoiding creating and destroying ui::Compositors during
tab switch.
Move the persistent BrowserCompositorViewCocoa functionality to a
separate file for readability.
BUG=314190
Review URL: https://codereview.chromium.org/
349443006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280460 0039d316-1c4b-4281-b951-d872f2087c98