summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chromium/media/mojo/services/mojo_cdm_service.cc5
-rw-r--r--chromium/media/mojo/services/mojo_cdm_service.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/chromium/media/mojo/services/mojo_cdm_service.cc b/chromium/media/mojo/services/mojo_cdm_service.cc
index 1ccfd2f05a7..a3f8332768b 100644
--- a/chromium/media/mojo/services/mojo_cdm_service.cc
+++ b/chromium/media/mojo/services/mojo_cdm_service.cc
@@ -63,7 +63,9 @@ void MojoCdmService::Initialize(const std::string& key_system,
const CdmConfig& cdm_config,
InitializeCallback callback) {
DVLOG(1) << __func__ << ": " << key_system;
- DCHECK(!cdm_);
+
+ CHECK(!has_initialize_been_called_) << "Initialize should only happen once";
+ has_initialize_been_called_ = true;
auto weak_this = weak_factory_.GetWeakPtr();
cdm_factory_->Create(
@@ -157,6 +159,7 @@ void MojoCdmService::OnCdmCreated(
return;
}
+ CHECK(!cdm_) << "CDM should only be created once.";
cdm_ = cdm;
if (context_) {
diff --git a/chromium/media/mojo/services/mojo_cdm_service.h b/chromium/media/mojo/services/mojo_cdm_service.h
index fd265467859..1e575474f5b 100644
--- a/chromium/media/mojo/services/mojo_cdm_service.h
+++ b/chromium/media/mojo/services/mojo_cdm_service.h
@@ -101,6 +101,8 @@ class MEDIA_MOJO_EXPORT MojoCdmService : public mojom::ContentDecryptionModule {
// Callback for when |decryptor_| loses connectivity.
void OnDecryptorConnectionError();
+ bool has_initialize_been_called_ = false;
+
CdmFactory* cdm_factory_;
MojoCdmServiceContext* const context_ = nullptr;
scoped_refptr<::media::ContentDecryptionModule> cdm_;