| Index: content/browser/media/cdm/browser_cdm_manager.cc
|
| diff --git a/content/browser/media/cdm/browser_cdm_manager.cc b/content/browser/media/cdm/browser_cdm_manager.cc
|
| index c83bdd213149ab4b97240dc79543f21629afbd28..db94775d626ff91874e1646bd675b03c546d4766 100644
|
| --- a/content/browser/media/cdm/browser_cdm_manager.cc
|
| +++ b/content/browser/media/cdm/browser_cdm_manager.cc
|
| @@ -72,7 +72,10 @@ class CdmPromiseInternal : public media::CdmPromiseTemplate<T...> {
|
| DCHECK(manager_);
|
| }
|
|
|
| - ~CdmPromiseInternal() final {}
|
| + ~CdmPromiseInternal() final {
|
| + if (!IsPromiseSettled())
|
| + RejectPromiseOnDestruction();
|
| + }
|
|
|
| // CdmPromiseTemplate<> implementation.
|
| void resolve(const T&... result) final;
|
| @@ -88,7 +91,9 @@ class CdmPromiseInternal : public media::CdmPromiseTemplate<T...> {
|
| }
|
|
|
| private:
|
| + using media::CdmPromiseTemplate<T...>::IsPromiseSettled;
|
| using media::CdmPromiseTemplate<T...>::MarkPromiseSettled;
|
| + using media::CdmPromiseTemplate<T...>::RejectPromiseOnDestruction;
|
|
|
| base::WeakPtr<BrowserCdmManager> const manager_;
|
| const int render_frame_id_;
|
|
|