| 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 4ca5630d14e2ac9984f8e04265c2931109ceab8e..990be4c913e70ad32e41955653b9c0b37cf8ebbb 100644
|
| --- a/chrome/browser/media/protected_media_identifier_permission_context.cc
|
| +++ b/chrome/browser/media/protected_media_identifier_permission_context.cc
|
| @@ -12,6 +12,11 @@
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/web_contents.h"
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +#include "chrome/browser/chromeos/settings/cros_settings.h"
|
| +#include "chromeos/settings/cros_settings_names.h"
|
| +#endif
|
| +
|
| ProtectedMediaIdentifierPermissionContext::
|
| ProtectedMediaIdentifierPermissionContext(Profile* profile)
|
| : PermissionContextBase(profile,
|
| @@ -30,17 +35,13 @@ void ProtectedMediaIdentifierPermissionContext::RequestPermission(
|
| const BrowserPermissionCallback& callback) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
| -#if defined(OS_ANDROID)
|
| - // Check if the protected media identifier master switch is disabled.
|
| - if (!profile()->GetPrefs()->GetBoolean(
|
| - prefs::kProtectedMediaIdentifierEnabled)) {
|
| + if (!IsProtectedMediaIdentifierEnabled()) {
|
| NotifyPermissionSet(id,
|
| requesting_frame_origin,
|
| web_contents->GetLastCommittedURL().GetOrigin(),
|
| callback, false, false);
|
| return;
|
| }
|
| -#endif
|
|
|
| PermissionContextBase::RequestPermission(web_contents, id,
|
| requesting_frame_origin,
|
| @@ -48,6 +49,16 @@ void ProtectedMediaIdentifierPermissionContext::RequestPermission(
|
| callback);
|
| }
|
|
|
| +ContentSetting ProtectedMediaIdentifierPermissionContext::GetPermissionStatus(
|
| + const GURL& requesting_origin,
|
| + const GURL& embedding_origin) const {
|
| + if (!IsProtectedMediaIdentifierEnabled())
|
| + return CONTENT_SETTING_BLOCK;
|
| +
|
| + return PermissionContextBase::GetPermissionStatus(requesting_origin,
|
| + embedding_origin);
|
| +}
|
| +
|
| void ProtectedMediaIdentifierPermissionContext::UpdateTabContext(
|
| const PermissionRequestID& id,
|
| const GURL& requesting_frame,
|
| @@ -64,3 +75,29 @@ void ProtectedMediaIdentifierPermissionContext::UpdateTabContext(
|
| }
|
|
|
| }
|
| +
|
| +// TODO(xhwang): We should consolidate the "protected content" related pref
|
| +// across platforms.
|
| +bool ProtectedMediaIdentifierPermissionContext::
|
| + IsProtectedMediaIdentifierEnabled() const {
|
| + bool enabled = false;
|
| +
|
| +#if defined(OS_ANDROID)
|
| + enabled = profile()->GetPrefs()->GetBoolean(
|
| + prefs::kProtectedMediaIdentifierEnabled);
|
| +#endif
|
| +
|
| +#if defined(OS_CHROMEOS)
|
| + // This could be disabled by the device policy.
|
| + bool enabled_for_device = false;
|
| + enabled = chromeos::CrosSettings::Get()->GetBoolean(
|
| + chromeos::kAttestationForContentProtectionEnabled,
|
| + &enabled_for_device) &&
|
| + enabled_for_device &&
|
| + profile()->GetPrefs()->GetBoolean(prefs::kEnableDRM);
|
| +#endif
|
| +
|
| + DVLOG_IF(1, !enabled)
|
| + << "Protected media identifier disabled by the user or by device policy.";
|
| + return enabled;
|
| +}
|
|
|