Index: content/browser/browser_main_loop.cc |
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc |
index 39a1de39215ce7f35b8708db72921143545498a8..508e06792d1538ed6a1982acad037156402cc2ea 100644 |
--- a/content/browser/browser_main_loop.cc |
+++ b/content/browser/browser_main_loop.cc |
@@ -84,6 +84,7 @@ |
#if defined(OS_MACOSX) && !defined(OS_IOS) |
#include "content/browser/theme_helper_mac.h" |
+#include "ui/compositor/compositor.h" |
#endif |
#if defined(OS_WIN) |
@@ -754,8 +755,13 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() { |
resource_dispatcher_host_.get()->Shutdown(); |
} |
-#if defined(USE_AURA) |
- { |
+#if defined(OS_MACOSX) && !defined(OS_IOS) |
+ if (IsDelegatedRendererEnabled()) |
+ ui::Compositor::Terminate(); |
+#endif |
+ |
+#if defined(USE_AURA) || defined(OS_MACOSX) |
+ if (ShouldInitializeBrowserGpuChannelAndTransportSurface()) { |
TRACE_EVENT0("shutdown", |
"BrowserMainLoop::Subsystem:ImageTransportFactory"); |
ImageTransportFactory::Terminate(); |
@@ -1073,6 +1079,12 @@ bool BrowserMainLoop::InitializeToolkit() { |
aura::Env::CreateInstance(true); |
#endif // defined(USE_AURA) |
+ // Create the compositor for the non-Aura delegated renderer on Mac. |
+#if defined(OS_MACOSX) && !defined(OS_IOS) |
+ if (IsDelegatedRendererEnabled()) |
+ ui::Compositor::Initialize(); |
+#endif |
+ |
if (parts_) |
parts_->ToolkitInitialized(); |