Index: content/browser/gpu/gpu_data_manager_impl_private.cc |
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc |
index ab8029c63b925b6e481a48f346bde38809a53106..56b8f27578acf562ed8d4b7b526cd4fdf2045405 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
@@ -19,6 +19,7 @@ |
#include "content/browser/gpu/gpu_process_host.h" |
#include "content/common/gpu/gpu_messages.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/content_browser_client.h" |
#include "content/public/browser/gpu_data_manager_observer.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/content_constants.h" |
@@ -312,6 +313,17 @@ enum BlockStatusHistogram { |
BLOCK_STATUS_MAX |
}; |
+bool IsWebGLDebugRendererInfoFieldTrialEnabled() { |
+ const char kWebGLDebugRendererInfoFieldTrialName[] = "WebGLDebugRendererInfo"; |
+ const char kWebGLDebugRendererInfoFieldTrialEnabledName[] = "enabled"; |
+ |
+ base::FieldTrial* trial = base::FieldTrialList::Find( |
+ kWebGLDebugRendererInfoFieldTrialName); |
+ if (!trial) |
+ return false; |
+ return trial->group_name() == kWebGLDebugRendererInfoFieldTrialEnabledName; |
Alexei Svitkine (slow)
2013/10/30 18:10:18
Instead, just use base::FieldTrialList::FindFullNa
Zhenyao Mo
2013/10/30 20:20:50
Done.
See chrome_render_message_filter.cc
|
+} |
+ |
} // namespace anonymous |
void GpuDataManagerImplPrivate::InitializeForTesting( |
@@ -1259,6 +1271,22 @@ void GpuDataManagerImplPrivate::Notify3DAPIBlocked(const GURL& url, |
url, render_process_id, render_view_id, requester); |
} |
+bool GpuDataManagerImplPrivate::IsWebGLDebugRendererInfoAllowed( |
+ const GURL& url) const { |
+ const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ // Allow someone to disable this extension in WebGL. |
+ if (command_line->HasSwitch(switches::kDisableWebGLDebugRendererInfo)) |
+ return false; |
+ // Allow someone to force-enable this extension. This is mostly for |
+ // testing purpose. |
+ if (command_line->HasSwitch(switches::kEnableWebGLDebugRendererInfo)) |
+ return true; |
Ken Russell (switch to Gerrit)
2013/10/29 23:15:35
The test of the kEnableWebGLDebugRendererInfo swit
Zhenyao Mo
2013/10/29 23:33:43
I just realized we can probably get rid of the kEn
Zhenyao Mo
2013/10/29 23:43:37
Never mind about this auto flag thing. I read the
Ken Russell (switch to Gerrit)
2013/10/29 23:58:16
OK. Using --force-fieldtrials and removing the kEn
|
+ |
+ if (!GetContentClient()->browser()->AllowWebGLDebugRendererInfoForDomain(url)) |
+ return false; |
+ return IsWebGLDebugRendererInfoFieldTrialEnabled(); |
+} |
+ |
void GpuDataManagerImplPrivate::OnGpuProcessInitFailure() { |
gpu_process_accessible_ = false; |
gpu_info_.finalized = true; |