summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/mojo/services/mojo_cdm_promise.cc2
-rw-r--r--media/mojo/services/mojo_cdm_promise.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/media/mojo/services/mojo_cdm_promise.cc b/media/mojo/services/mojo_cdm_promise.cc
index 3257bd8..4f17f11 100644
--- a/media/mojo/services/mojo_cdm_promise.cc
+++ b/media/mojo/services/mojo_cdm_promise.cc
@@ -40,6 +40,7 @@ MojoCdmPromise<T...>::~MojoCdmPromise() {
template <typename... T>
void MojoCdmPromise<T...>::resolve(const T&... result) {
+ MarkPromiseSettled();
mojo::CdmPromiseResultPtr cdm_promise_result(mojo::CdmPromiseResult::New());
cdm_promise_result->success = true;
callback_.Run(cdm_promise_result.Pass(),
@@ -51,6 +52,7 @@ template <typename... T>
void MojoCdmPromise<T...>::reject(MediaKeys::Exception exception,
uint32_t system_code,
const std::string& error_message) {
+ MarkPromiseSettled();
callback_.Run(GetRejectResult(exception, system_code, error_message),
MojoTypeTrait<T>::DefaultValue()...);
callback_.reset();
diff --git a/media/mojo/services/mojo_cdm_promise.h b/media/mojo/services/mojo_cdm_promise.h
index ea78fef..233d5b1 100644
--- a/media/mojo/services/mojo_cdm_promise.h
+++ b/media/mojo/services/mojo_cdm_promise.h
@@ -31,6 +31,8 @@ class MojoCdmPromise : public CdmPromiseTemplate<T...> {
const std::string& error_message) final;
private:
+ using media::CdmPromiseTemplate<T...>::MarkPromiseSettled;
+
CallbackType callback_;
};