Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5395)

Unified Diff: chrome/browser/media/protected_media_identifier_permission_context.cc

Issue 2816773002: Added switch for bypassing protected media identifier permission (Closed)
Patch Set: Added switch for bypassing permissions Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/protected_media_identifier_permission_context.cc
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc
index 50c2dc51ec53a1f4269eff81c038c44fc6eb40bc..f1a9f391da65a801cb0256439f9c90c98b8d658d 100644
--- a/chrome/browser/media/protected_media_identifier_permission_context.cc
+++ b/chrome/browser/media/protected_media_identifier_permission_context.cc
@@ -6,15 +6,19 @@
#include "base/command_line.h"
#include "base/metrics/user_metrics.h"
+#include "base/strings/string_split.h"
#include "build/build_config.h"
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/permissions/permission_util.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
+#include "media/base/media_switches.h"
+#include "net/base/url_util.h"
#if defined(OS_CHROMEOS)
#include <utility>
@@ -101,9 +105,39 @@ ProtectedMediaIdentifierPermissionContext::GetPermissionStatusInternal(
content_setting == CONTENT_SETTING_BLOCK ||
content_setting == CONTENT_SETTING_ASK);
+ // For automated testing of protected content - having a prompt that
+ // requires user intervention is problematic. If the domain has been
+ // whitelisted as safe - suppress the request and allow.
+ if (content_setting == CONTENT_SETTING_ASK &&
+ IsOriginWhitelisted(requesting_origin)) {
+ content_setting = CONTENT_SETTING_ALLOW;
+ }
+
return content_setting;
}
+bool ProtectedMediaIdentifierPermissionContext::IsOriginWhitelisted(
+ const GURL& requesting_origin) {
+ const base::CommandLine& command_line =
+ *base::CommandLine::ForCurrentProcess();
+
+ if (command_line.GetSwitchValueASCII(switches::kUserDataDir).empty()) {
+ return false;
+ }
+
+ const std::string whitelist = command_line.GetSwitchValueASCII(
+ switches::kDisableInfobarForProtectedMediaIdentifierForDomain);
+
+ for (const std::string& origin : base::SplitString(
+ whitelist, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) {
+ if (requesting_origin.DomainIs(origin)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
void ProtectedMediaIdentifierPermissionContext::CancelPermissionRequest(
content::WebContents* web_contents,
const PermissionRequestID& id) {

Powered by Google App Engine
This is Rietveld 408576698