Index: content/browser/gpu/compositor_util.cc |
diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc |
index 9270300d2968439ed06686719c548c4cbe29232b..8afd0e9204a846932243b1a716c0cc838bdfd61e 100644 |
--- a/content/browser/gpu/compositor_util.cc |
+++ b/content/browser/gpu/compositor_util.cc |
@@ -103,4 +103,28 @@ bool IsForceCompositingModeEnabled() { |
trial->group_name() == kGpuCompositingFieldTrialThreadEnabledName); |
} |
+bool IsDelegatedRendererEnabled() { |
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
+ bool enabled = false; |
+ |
+#if defined(USE_AURA) |
+ // Default to true on Aura, but allow override via flags. |
+ enabled = true; |
+#endif |
+ |
+ // Flags override. |
+ enabled |= command_line.HasSwitch(switches::kEnableDelegatedRenderer); |
+ enabled &= !command_line.HasSwitch(switches::kDisableDelegatedRenderer); |
+ |
+ // Needs compositing, and thread. |
+ if (enabled && |
+ (!IsForceCompositingModeEnabled() || !IsThreadedCompositingEnabled())) { |
+ enabled = false; |
+ LOG(ERROR) << "Disabling delegated-rendering because it needs " |
+ << "force-compositing-mode and threaded-compositing."; |
+ } |
+ |
+ return enabled; |
+} |
+ |
} // namespace content |