Commit ca9edf06 authored by mdempsky's avatar mdempsky Committed by Commit bot

Revert of Restrict use of hardware-secure codecs based on the...

Revert of Restrict use of hardware-secure codecs based on the RendererPreference. (patchset #11 id:210001 of https://codereview.chromium.org/1124863005/)

Reason for revert:
Compile failure in KeySystemConfigSelectorTest::SelectConfig().

../../media/blink/key_system_config_selector_unittest.cc:177:57: error: too few arguments to function call, expected 6, have 5

http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20Clobber/builds/113

Original issue's description:
> Restrict use of hardware-secure codecs based on the RendererPreference.
>
> This passes the value of |use_video_overlay_for_embedded_encrypted_video| from RendererPreferences to requestMediaKeySystemAccess() so that it can correctly block either non-hardware-secure codecs or hardware-secure codecs.
>
> BUG=467779
>
> Committed: https://crrev.com/491fea8c41977b1557a79cf2f53d4b60ecd159d9
> Cr-Commit-Position: refs/heads/master@{#329296}

TBR=xhwang@chromium.org,ddorwin@chromium.org,nasko@chromium.org,sky@chromium.org,sandersd@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=467779

Review URL: https://codereview.chromium.org/1137993004

Cr-Commit-Position: refs/heads/master@{#329307}
parent 405ed7a8
...@@ -109,12 +109,6 @@ bool CanNavigateLocally(blink::WebFrame* frame, ...@@ -109,12 +109,6 @@ bool CanNavigateLocally(blink::WebFrame* frame,
return false; return false;
} }
bool AreSecureCodecsSupported() {
// Hardware-secure codecs are not currently supported by HTML Viewer on any
// platform.
return false;
}
} // namespace } // namespace
HTMLDocument::HTMLDocument( HTMLDocument::HTMLDocument(
...@@ -334,8 +328,7 @@ void HTMLDocument::didNavigateWithinPage( ...@@ -334,8 +328,7 @@ void HTMLDocument::didNavigateWithinPage(
blink::WebEncryptedMediaClient* HTMLDocument::encryptedMediaClient() { blink::WebEncryptedMediaClient* HTMLDocument::encryptedMediaClient() {
if (!web_encrypted_media_client_) { if (!web_encrypted_media_client_) {
web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl( web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl(
base::Bind(&AreSecureCodecsSupported), GetCdmFactory(), GetCdmFactory(), GetMediaPermission()));
GetMediaPermission()));
} }
return web_encrypted_media_client_.get(); return web_encrypted_media_client_.get();
} }
......
...@@ -3587,11 +3587,6 @@ blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() { ...@@ -3587,11 +3587,6 @@ blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() {
blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() { blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() {
if (!web_encrypted_media_client_) { if (!web_encrypted_media_client_) {
web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl( web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl(
// base::Unretained(this) is safe because WebEncryptedMediaClientImpl
// is destructed before |this|, and does not give away ownership of the
// callback.
base::Bind(&RenderFrameImpl::AreSecureCodecsSupported,
base::Unretained(this)),
GetCdmFactory(), GetMediaPermission())); GetCdmFactory(), GetMediaPermission()));
} }
return web_encrypted_media_client_.get(); return web_encrypted_media_client_.get();
...@@ -4932,16 +4927,6 @@ media::MediaPermission* RenderFrameImpl::GetMediaPermission() { ...@@ -4932,16 +4927,6 @@ media::MediaPermission* RenderFrameImpl::GetMediaPermission() {
return media_permission_dispatcher_; return media_permission_dispatcher_;
} }
bool RenderFrameImpl::AreSecureCodecsSupported() {
#if defined(OS_ANDROID)
// Hardware-secure codecs are only supported if secure surfaces are enabled.
return render_view_->renderer_preferences_
.use_video_overlay_for_embedded_encrypted_video;
#else
return false;
#endif // defined(OS_ANDROID)
}
media::CdmFactory* RenderFrameImpl::GetCdmFactory() { media::CdmFactory* RenderFrameImpl::GetCdmFactory() {
#if defined(ENABLE_BROWSER_CDMS) #if defined(ENABLE_BROWSER_CDMS)
if (!cdm_manager_) if (!cdm_manager_)
......
...@@ -813,7 +813,6 @@ class CONTENT_EXPORT RenderFrameImpl ...@@ -813,7 +813,6 @@ class CONTENT_EXPORT RenderFrameImpl
RendererMediaPlayerManager* GetMediaPlayerManager(); RendererMediaPlayerManager* GetMediaPlayerManager();
#endif #endif
bool AreSecureCodecsSupported();
media::MediaPermission* GetMediaPermission(); media::MediaPermission* GetMediaPermission();
media::CdmFactory* GetCdmFactory(); media::CdmFactory* GetCdmFactory();
......
...@@ -129,14 +129,15 @@ enum class EmeConfigRule { ...@@ -129,14 +129,15 @@ enum class EmeConfigRule {
// The configuration option is supported if both a distinctive identifier and // The configuration option is supported if both a distinctive identifier and
// persistent state are available. // persistent state are available.
IDENTIFIER_AND_PERSISTENCE_REQUIRED, IDENTIFIER_AND_PERSISTENCE_REQUIRED,
// The configuration option prevents use of hardware-secure codecs. #if defined(OS_ANDROID)
// This rule only has meaning on platforms that distinguish hardware-secure // The configuration option is supported if no hardware-secure codecs are used
// codecs (ie. Android). // (as they would be for video if secure surfaces are enabled).
SECURE_CODECS_NOT_ALLOWED, SECURE_CODECS_NOT_ALLOWED,
// The configuration option is supported if hardware-secure codecs are used. // The configuration option is supported if only hardware-secure codecs are
// This rule only has meaning on platforms that distinguish hardware-secure // used. This implies that secure surfaces (hole-punching) are required for
// codecs (ie. Android). // video.
SECURE_CODECS_REQUIRED, SECURE_CODECS_REQUIRED,
#endif // defined(OS_ANDROID)
// The configuration option is supported without conditions. // The configuration option is supported without conditions.
SUPPORTED, SUPPORTED,
}; };
......
...@@ -716,10 +716,8 @@ EmeConfigRule KeySystemsImpl::GetContentTypeConfigRule( ...@@ -716,10 +716,8 @@ EmeConfigRule KeySystemsImpl::GetContentTypeConfigRule(
if ((codec & key_system_codec_mask & container_codec_mask) == 0) if ((codec & key_system_codec_mask & container_codec_mask) == 0)
return EmeConfigRule::NOT_SUPPORTED; return EmeConfigRule::NOT_SUPPORTED;
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
// Check whether the codec supports a hardware-secure mode. The goal is to // Check whether the codec supports a hardware-secure mode; if not, indicate
// prevent mixing of non-hardware-secure codecs with hardware-secure codecs, // that hardware-secure codecs are not available for all listed codecs.
// since the mode is fixed at CDM creation.
//
// Because the check for regular codec support is early-exit, we don't have // Because the check for regular codec support is early-exit, we don't have
// to consider codecs that are only supported in hardware-secure mode. We // to consider codecs that are only supported in hardware-secure mode. We
// could do so, and make use of SECURE_CODECS_REQUIRED, if it turns out that // could do so, and make use of SECURE_CODECS_REQUIRED, if it turns out that
...@@ -727,6 +725,7 @@ EmeConfigRule KeySystemsImpl::GetContentTypeConfigRule( ...@@ -727,6 +725,7 @@ EmeConfigRule KeySystemsImpl::GetContentTypeConfigRule(
if ((codec & key_system_secure_codec_mask) == 0) if ((codec & key_system_secure_codec_mask) == 0)
support = EmeConfigRule::SECURE_CODECS_NOT_ALLOWED; support = EmeConfigRule::SECURE_CODECS_NOT_ALLOWED;
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
} }
return support; return support;
......
...@@ -131,12 +131,11 @@ struct KeySystemConfigSelector::SelectionRequest { ...@@ -131,12 +131,11 @@ struct KeySystemConfigSelector::SelectionRequest {
blink::WebVector<blink::WebMediaKeySystemConfiguration> blink::WebVector<blink::WebMediaKeySystemConfiguration>
candidate_configurations; candidate_configurations;
blink::WebSecurityOrigin security_origin; blink::WebSecurityOrigin security_origin;
base::Callback<void(const blink::WebMediaKeySystemConfiguration&, bool)> base::Callback<void(const blink::WebMediaKeySystemConfiguration&)>
succeeded_cb; succeeded_cb;
base::Callback<void(const blink::WebString&)> not_supported_cb; base::Callback<void(const blink::WebString&)> not_supported_cb;
bool was_permission_requested = false; bool was_permission_requested = false;
bool is_permission_granted = false; bool is_permission_granted = false;
bool are_secure_codecs_supported = false;
}; };
// Accumulates configuration rules to determine if a feature (additional // Accumulates configuration rules to determine if a feature (additional
...@@ -158,10 +157,6 @@ class KeySystemConfigSelector::ConfigState { ...@@ -158,10 +157,6 @@ class KeySystemConfigSelector::ConfigState {
bool IsIdentifierRecommended() const { return is_identifier_recommended_; } bool IsIdentifierRecommended() const { return is_identifier_recommended_; }
bool AreSecureCodecsRequired() const {
return are_secure_codecs_required_;
}
// Checks whether a rule is compatible with all previously added rules. // Checks whether a rule is compatible with all previously added rules.
bool IsRuleSupported(EmeConfigRule rule) const { bool IsRuleSupported(EmeConfigRule rule) const {
switch (rule) { switch (rule) {
...@@ -182,10 +177,12 @@ class KeySystemConfigSelector::ConfigState { ...@@ -182,10 +177,12 @@ class KeySystemConfigSelector::ConfigState {
case EmeConfigRule::IDENTIFIER_AND_PERSISTENCE_REQUIRED: case EmeConfigRule::IDENTIFIER_AND_PERSISTENCE_REQUIRED:
return (!is_identifier_not_allowed_ && IsPermissionPossible() && return (!is_identifier_not_allowed_ && IsPermissionPossible() &&
!is_persistence_not_allowed_); !is_persistence_not_allowed_);
#if defined(OS_ANDROID)
case EmeConfigRule::SECURE_CODECS_NOT_ALLOWED: case EmeConfigRule::SECURE_CODECS_NOT_ALLOWED:
return !are_secure_codecs_required_; return !are_secure_codecs_required_;
case EmeConfigRule::SECURE_CODECS_REQUIRED: case EmeConfigRule::SECURE_CODECS_REQUIRED:
return !are_secure_codecs_not_allowed_; return !are_secure_codecs_not_allowed_;
#endif // defined(OS_ANDROID)
case EmeConfigRule::SUPPORTED: case EmeConfigRule::SUPPORTED:
return true; return true;
} }
...@@ -219,12 +216,14 @@ class KeySystemConfigSelector::ConfigState { ...@@ -219,12 +216,14 @@ class KeySystemConfigSelector::ConfigState {
is_identifier_required_ = true; is_identifier_required_ = true;
is_persistence_required_ = true; is_persistence_required_ = true;
return; return;
#if defined(OS_ANDROID)
case EmeConfigRule::SECURE_CODECS_NOT_ALLOWED: case EmeConfigRule::SECURE_CODECS_NOT_ALLOWED:
are_secure_codecs_not_allowed_ = true; are_secure_codecs_not_allowed_ = true;
return; return;
case EmeConfigRule::SECURE_CODECS_REQUIRED: case EmeConfigRule::SECURE_CODECS_REQUIRED:
are_secure_codecs_required_ = true; are_secure_codecs_required_ = true;
return; return;
#endif // defined(OS_ANDROID)
case EmeConfigRule::SUPPORTED: case EmeConfigRule::SUPPORTED:
return; return;
} }
...@@ -253,10 +252,11 @@ class KeySystemConfigSelector::ConfigState { ...@@ -253,10 +252,11 @@ class KeySystemConfigSelector::ConfigState {
bool is_persistence_required_ = false; bool is_persistence_required_ = false;
bool is_persistence_not_allowed_ = false; bool is_persistence_not_allowed_ = false;
// Whether a rule has been added that requires or blocks hardware-secure #if defined(OS_ANDROID)
// codecs. // Whether a rule has been added that requires or blocks secure codecs.
bool are_secure_codecs_required_ = false; bool are_secure_codecs_required_ = false;
bool are_secure_codecs_not_allowed_ = false; bool are_secure_codecs_not_allowed_ = false;
#endif // defined(OS_ANDROID)
}; };
KeySystemConfigSelector::KeySystemConfigSelector( KeySystemConfigSelector::KeySystemConfigSelector(
...@@ -392,6 +392,7 @@ KeySystemConfigSelector::GetSupportedConfiguration( ...@@ -392,6 +392,7 @@ KeySystemConfigSelector::GetSupportedConfiguration(
const blink::WebMediaKeySystemConfiguration& candidate, const blink::WebMediaKeySystemConfiguration& candidate,
ConfigState* config_state, ConfigState* config_state,
blink::WebMediaKeySystemConfiguration* accumulated_configuration) { blink::WebMediaKeySystemConfiguration* accumulated_configuration) {
// TODO(sandersd): Set state of SECURE_CODECS from renderer pref.
// From https://w3c.github.io/encrypted-media/#get-supported-configuration // From https://w3c.github.io/encrypted-media/#get-supported-configuration
// 1. Let accumulated configuration be empty. (Done by caller.) // 1. Let accumulated configuration be empty. (Done by caller.)
// 2. If the initDataTypes member is present in candidate configuration, run // 2. If the initDataTypes member is present in candidate configuration, run
...@@ -672,8 +673,7 @@ void KeySystemConfigSelector::SelectConfig( ...@@ -672,8 +673,7 @@ void KeySystemConfigSelector::SelectConfig(
const blink::WebVector<blink::WebMediaKeySystemConfiguration>& const blink::WebVector<blink::WebMediaKeySystemConfiguration>&
candidate_configurations, candidate_configurations,
const blink::WebSecurityOrigin& security_origin, const blink::WebSecurityOrigin& security_origin,
bool are_secure_codecs_supported, base::Callback<void(const blink::WebMediaKeySystemConfiguration&)>
base::Callback<void(const blink::WebMediaKeySystemConfiguration&, bool)>
succeeded_cb, succeeded_cb,
base::Callback<void(const blink::WebString&)> not_supported_cb) { base::Callback<void(const blink::WebString&)> not_supported_cb) {
// Continued from requestMediaKeySystemAccess(), step 7, from // Continued from requestMediaKeySystemAccess(), step 7, from
...@@ -699,7 +699,6 @@ void KeySystemConfigSelector::SelectConfig( ...@@ -699,7 +699,6 @@ void KeySystemConfigSelector::SelectConfig(
request->key_system = key_system_ascii; request->key_system = key_system_ascii;
request->candidate_configurations = candidate_configurations; request->candidate_configurations = candidate_configurations;
request->security_origin = security_origin; request->security_origin = security_origin;
request->are_secure_codecs_supported = are_secure_codecs_supported;
request->succeeded_cb = succeeded_cb; request->succeeded_cb = succeeded_cb;
request->not_supported_cb = not_supported_cb; request->not_supported_cb = not_supported_cb;
SelectConfigInternal(request.Pass()); SelectConfigInternal(request.Pass());
...@@ -722,10 +721,6 @@ void KeySystemConfigSelector::SelectConfigInternal( ...@@ -722,10 +721,6 @@ void KeySystemConfigSelector::SelectConfigInternal(
// new MediaKeySystemAccess object.] // new MediaKeySystemAccess object.]
ConfigState config_state(request->was_permission_requested, ConfigState config_state(request->was_permission_requested,
request->is_permission_granted); request->is_permission_granted);
DCHECK(config_state.IsRuleSupported(
EmeConfigRule::SECURE_CODECS_NOT_ALLOWED));
if (!request->are_secure_codecs_supported)
config_state.AddRule(EmeConfigRule::SECURE_CODECS_NOT_ALLOWED);
blink::WebMediaKeySystemConfiguration accumulated_configuration; blink::WebMediaKeySystemConfiguration accumulated_configuration;
ConfigurationSupport support = GetSupportedConfiguration( ConfigurationSupport support = GetSupportedConfiguration(
request->key_system, request->candidate_configurations[i], request->key_system, request->candidate_configurations[i],
...@@ -746,8 +741,7 @@ void KeySystemConfigSelector::SelectConfigInternal( ...@@ -746,8 +741,7 @@ void KeySystemConfigSelector::SelectConfigInternal(
weak_factory_.GetWeakPtr(), base::Passed(&request))); weak_factory_.GetWeakPtr(), base::Passed(&request)));
return; return;
case CONFIGURATION_SUPPORTED: case CONFIGURATION_SUPPORTED:
request->succeeded_cb.Run(accumulated_configuration, request->succeeded_cb.Run(accumulated_configuration);
config_state.AreSecureCodecsRequired());
return; return;
} }
} }
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include <vector> #include <vector>
#include "base/bind.h" #include "base/bind.h"
#include "base/callback.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "media/base/eme_constants.h" #include "media/base/eme_constants.h"
...@@ -32,9 +31,8 @@ class MediaPermission; ...@@ -32,9 +31,8 @@ class MediaPermission;
class MEDIA_EXPORT KeySystemConfigSelector { class MEDIA_EXPORT KeySystemConfigSelector {
public: public:
KeySystemConfigSelector( KeySystemConfigSelector(const KeySystems* key_systems,
const KeySystems* key_systems, MediaPermission* media_permission);
MediaPermission* media_permission);
~KeySystemConfigSelector(); ~KeySystemConfigSelector();
...@@ -43,10 +41,8 @@ class MEDIA_EXPORT KeySystemConfigSelector { ...@@ -43,10 +41,8 @@ class MEDIA_EXPORT KeySystemConfigSelector {
const blink::WebVector<blink::WebMediaKeySystemConfiguration>& const blink::WebVector<blink::WebMediaKeySystemConfiguration>&
candidate_configurations, candidate_configurations,
const blink::WebSecurityOrigin& security_origin, const blink::WebSecurityOrigin& security_origin,
bool are_secure_codecs_supported, base::Callback<void(const blink::WebMediaKeySystemConfiguration&)>
// The second argument is |are_secure_codecs_required|. succeeded_cb,
base::Callback<void(const blink::WebMediaKeySystemConfiguration&,
bool)> succeeded_cb,
base::Callback<void(const blink::WebString&)> not_supported_cb); base::Callback<void(const blink::WebString&)> not_supported_cb);
private: private:
......
...@@ -78,11 +78,9 @@ class WebEncryptedMediaClientImpl::Reporter { ...@@ -78,11 +78,9 @@ class WebEncryptedMediaClientImpl::Reporter {
}; };
WebEncryptedMediaClientImpl::WebEncryptedMediaClientImpl( WebEncryptedMediaClientImpl::WebEncryptedMediaClientImpl(
base::Callback<bool(void)> are_secure_codecs_supported_cb,
CdmFactory* cdm_factory, CdmFactory* cdm_factory,
MediaPermission* media_permission) MediaPermission* media_permission)
: are_secure_codecs_supported_cb_(are_secure_codecs_supported_cb), : cdm_factory_(cdm_factory),
cdm_factory_(cdm_factory),
key_system_config_selector_(KeySystems::GetInstance(), media_permission), key_system_config_selector_(KeySystems::GetInstance(), media_permission),
weak_factory_(this) { weak_factory_(this) {
DCHECK(cdm_factory_); DCHECK(cdm_factory_);
...@@ -96,7 +94,7 @@ void WebEncryptedMediaClientImpl::requestMediaKeySystemAccess( ...@@ -96,7 +94,7 @@ void WebEncryptedMediaClientImpl::requestMediaKeySystemAccess(
GetReporter(request.keySystem())->ReportRequested(); GetReporter(request.keySystem())->ReportRequested();
key_system_config_selector_.SelectConfig( key_system_config_selector_.SelectConfig(
request.keySystem(), request.supportedConfigurations(), request.keySystem(), request.supportedConfigurations(),
request.securityOrigin(), are_secure_codecs_supported_cb_.Run(), request.securityOrigin(),
base::Bind(&WebEncryptedMediaClientImpl::OnRequestSucceeded, base::Bind(&WebEncryptedMediaClientImpl::OnRequestSucceeded,
weak_factory_.GetWeakPtr(), request), weak_factory_.GetWeakPtr(), request),
base::Bind(&WebEncryptedMediaClientImpl::OnRequestNotSupported, base::Bind(&WebEncryptedMediaClientImpl::OnRequestNotSupported,
...@@ -116,11 +114,8 @@ void WebEncryptedMediaClientImpl::CreateCdm( ...@@ -116,11 +114,8 @@ void WebEncryptedMediaClientImpl::CreateCdm(
void WebEncryptedMediaClientImpl::OnRequestSucceeded( void WebEncryptedMediaClientImpl::OnRequestSucceeded(
blink::WebEncryptedMediaRequest request, blink::WebEncryptedMediaRequest request,
const blink::WebMediaKeySystemConfiguration& accumulated_configuration, const blink::WebMediaKeySystemConfiguration& accumulated_configuration) {
bool are_secure_codecs_required) {
GetReporter(request.keySystem())->ReportSupported(); GetReporter(request.keySystem())->ReportSupported();
// TODO(sandersd): Pass |are_secure_codecs_required| along and use it to
// configure the CDM security level and use of secure surfaces on Android.
request.requestSucceeded(WebContentDecryptionModuleAccessImpl::Create( request.requestSucceeded(WebContentDecryptionModuleAccessImpl::Create(
request.keySystem(), accumulated_configuration, request.securityOrigin(), request.keySystem(), accumulated_configuration, request.securityOrigin(),
weak_factory_.GetWeakPtr())); weak_factory_.GetWeakPtr()));
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <string> #include <string>
#include "base/callback.h"
#include "base/containers/scoped_ptr_hash_map.h" #include "base/containers/scoped_ptr_hash_map.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
...@@ -32,10 +31,8 @@ class MediaPermission; ...@@ -32,10 +31,8 @@ class MediaPermission;
class MEDIA_EXPORT WebEncryptedMediaClientImpl class MEDIA_EXPORT WebEncryptedMediaClientImpl
: public blink::WebEncryptedMediaClient { : public blink::WebEncryptedMediaClient {
public: public:
WebEncryptedMediaClientImpl( WebEncryptedMediaClientImpl(CdmFactory* cdm_factory,
base::Callback<bool(void)> are_secure_codecs_supported_cb, MediaPermission* media_permission);
CdmFactory* cdm_factory,
MediaPermission* media_permission);
virtual ~WebEncryptedMediaClientImpl(); virtual ~WebEncryptedMediaClientImpl();
// WebEncryptedMediaClient implementation. // WebEncryptedMediaClient implementation.
...@@ -61,8 +58,7 @@ class MEDIA_EXPORT WebEncryptedMediaClientImpl ...@@ -61,8 +58,7 @@ class MEDIA_EXPORT WebEncryptedMediaClientImpl
// accumulated configuration. // accumulated configuration.
void OnRequestSucceeded( void OnRequestSucceeded(
blink::WebEncryptedMediaRequest request, blink::WebEncryptedMediaRequest request,
const blink::WebMediaKeySystemConfiguration& accumulated_configuration, const blink::WebMediaKeySystemConfiguration& accumulated_configuration);
bool are_secure_codecs_required);
// Complete a requestMediaKeySystemAccess() request with an error message. // Complete a requestMediaKeySystemAccess() request with an error message.
void OnRequestNotSupported(blink::WebEncryptedMediaRequest request, void OnRequestNotSupported(blink::WebEncryptedMediaRequest request,
...@@ -75,7 +71,6 @@ class MEDIA_EXPORT WebEncryptedMediaClientImpl ...@@ -75,7 +71,6 @@ class MEDIA_EXPORT WebEncryptedMediaClientImpl
// Reporter singletons. // Reporter singletons.
base::ScopedPtrHashMap<std::string, scoped_ptr<Reporter>> reporters_; base::ScopedPtrHashMap<std::string, scoped_ptr<Reporter>> reporters_;
base::Callback<bool(void)> are_secure_codecs_supported_cb_;
CdmFactory* cdm_factory_; CdmFactory* cdm_factory_;
KeySystemConfigSelector key_system_config_selector_; KeySystemConfigSelector key_system_config_selector_;
base::WeakPtrFactory<WebEncryptedMediaClientImpl> weak_factory_; base::WeakPtrFactory<WebEncryptedMediaClientImpl> weak_factory_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment