| Index: chrome/browser/renderer_host/chrome_render_message_filter.cc
|
| ===================================================================
|
| --- chrome/browser/renderer_host/chrome_render_message_filter.cc (revision 232511)
|
| +++ chrome/browser/renderer_host/chrome_render_message_filter.cc (working copy)
|
| @@ -8,6 +8,8 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| +#include "base/command_line.h"
|
| +#include "base/metrics/field_trial.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/automation/automation_resource_message_filter.h"
|
| @@ -23,10 +25,12 @@
|
| #include "chrome/browser/extensions/event_router.h"
|
| #include "chrome/browser/extensions/extension_process_manager.h"
|
| #include "chrome/browser/extensions/extension_system.h"
|
| +#include "chrome/browser/google/google_util.h"
|
| #include "chrome/browser/net/chrome_url_request_context.h"
|
| #include "chrome/browser/net/predictor.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/browser/task_manager/task_manager.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/extensions/api/i18n/default_locale_handler.h"
|
| #include "chrome/common/extensions/extension_file_util.h"
|
| #include "chrome/common/extensions/extension_messages.h"
|
| @@ -147,6 +151,8 @@
|
| OnCanTriggerClipboardRead)
|
| IPC_MESSAGE_HANDLER(ChromeViewHostMsg_CanTriggerClipboardWrite,
|
| OnCanTriggerClipboardWrite)
|
| + IPC_MESSAGE_HANDLER(ChromeViewHostMsg_IsWebGLDebugRendererInfoAllowed,
|
| + OnIsWebGLDebugRendererInfoAllowed)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
|
|
| @@ -622,6 +628,28 @@
|
| origin, render_process_id_, APIPermission::kClipboardWrite));
|
| }
|
|
|
| +void ChromeRenderMessageFilter::OnIsWebGLDebugRendererInfoAllowed(
|
| + const GURL& origin, bool* allowed) {
|
| + *allowed = false;
|
| + const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| + if (command_line.HasSwitch(switches::kDisableWebGLDebugRendererInfo))
|
| + return;
|
| +
|
| + // TODO(zmo): in this experimental stage, we only expose WebGL extension
|
| + // WEBGL_debug_renderer_info for Google domains. Once we finish the experiment
|
| + // and make a decision, this extension should be avaiable to all or none.
|
| + if (!google_util::IsGoogleDomainUrl(origin, google_util::ALLOW_SUBDOMAIN,
|
| + google_util::ALLOW_NON_STANDARD_PORTS)) {
|
| + return;
|
| + }
|
| +
|
| + const char kWebGLDebugRendererInfoFieldTrialName[] = "WebGLDebugRendererInfo";
|
| + const char kWebGLDebugRendererInfoFieldTrialEnabledName[] = "enabled";
|
| + *allowed = (base::FieldTrialList::FindFullName(
|
| + kWebGLDebugRendererInfoFieldTrialName) ==
|
| + kWebGLDebugRendererInfoFieldTrialEnabledName);
|
| +}
|
| +
|
| void ChromeRenderMessageFilter::OnGetCookies(
|
| const GURL& url,
|
| const GURL& first_party_for_cookies,
|
|
|