Use a separate NSView to draw browser composited content
commitf63bdd1b378950aa99ba36da80eb8bebad60ff12
authorccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Fri, 23 May 2014 10:35:29 +0000 (23 10:35 +0000)
committerccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Fri, 23 May 2014 10:35:29 +0000 (23 10:35 +0000)
tree8d5e1928e088f108e93f3e706f1978cf2e6c3f22
parent514aeafb81f823103d35c83132b508e3e5814808
Use a separate NSView to draw browser composited content

Prior to this, the RenderWidgetHostViewMac was responsible for drawing
(with its NSViews and CALayers) the contents coming from the renderer
compositor or the browser compositor. This was was getting too messy
(lots of state was shared unintentionally).

This create a BrowserCompositorViewMac sub-NSView of the
RenderWidgetHostViewMac, which is responsible for drawing delegated
renderer content coming from the browser.

This class still uses the SoftwareLayer and CompositingIOSurfaceLayer
classes used to draw content from renderer. In order to make this clean,
cut the dependencies from the CompositingIOSurfaceLayer to the
RenderWidgetHostViewMac, and hide all needed communication behind a
CompositingIOSurfaceLayerClient interface (which is likely to be needed
by the BrowserCompositorViewMac).

It would seem more reasonable to have BrowserCompositorViewMac live in
the ui namespace and directories, but that is not an option yet, because
it needs to share so much code with RenderWidgetHostViewMac.  Once we
switch to using only a delegated renderer, we can move all of this code
over to ui.

Also, start replacing instances of "composited" with "accelerated". It
used to be that these were synonyms, but they are not anymore --
"composited" can be either "accelerated" or "software".

BUG=314190

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272469 0039d316-1c4b-4281-b951-d872f2087c98
13 files changed:
content/browser/compositor/browser_compositor_view_mac.h [new file with mode: 0644]
content/browser/compositor/browser_compositor_view_mac.mm [new file with mode: 0644]
content/browser/compositor/software_output_device_mac.mm
content/browser/renderer_host/compositing_iosurface_layer_mac.h
content/browser/renderer_host/compositing_iosurface_layer_mac.mm
content/browser/renderer_host/compositing_iosurface_mac.h
content/browser/renderer_host/compositing_iosurface_mac.mm
content/browser/renderer_host/render_widget_helper_mac.mm
content/browser/renderer_host/render_widget_host_view_mac.h
content/browser/renderer_host/render_widget_host_view_mac.mm
content/browser/renderer_host/software_layer_mac.h [new file with mode: 0644]
content/browser/renderer_host/software_layer_mac.mm [new file with mode: 0644]
content/content_browser.gypi