Index: content/renderer/media/webcontentdecryptionmodulesession_impl.h |
diff --git a/content/renderer/media/webcontentdecryptionmodulesession_impl.h b/content/renderer/media/webcontentdecryptionmodulesession_impl.h |
index 05a358b0ac471eff1d787d410362d49a535ac889..2b8353f8c0cbf722723986047591ec7b5271c29e 100644 |
--- a/content/renderer/media/webcontentdecryptionmodulesession_impl.h |
+++ b/content/renderer/media/webcontentdecryptionmodulesession_impl.h |
@@ -13,6 +13,7 @@ |
#include "base/callback.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
+#include "content/renderer/media/webcontentdecryptionmoduleresult_helper.h" |
#include "media/base/media_keys.h" |
#include "third_party/WebKit/public/platform/WebContentDecryptionModuleSession.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
@@ -49,11 +50,18 @@ class WebContentDecryptionModuleSessionImpl |
virtual void update(const uint8* response, |
size_t response_length, |
blink::WebContentDecryptionModuleResult result); |
+ virtual void close(blink::WebContentDecryptionModuleResult result); |
+ virtual void remove(blink::WebContentDecryptionModuleResult result); |
+ virtual void getUsableKeyIds(blink::WebContentDecryptionModuleResult result); |
+ |
+ // TODO(jrummell): Remove the next method once blink updated. |
virtual void release(blink::WebContentDecryptionModuleResult result); |
// Callbacks. |
void OnSessionMessage(const std::vector<uint8>& message, |
const GURL& destination_url); |
+ void OnSessionKeysChange(bool has_additional_usable_key); |
+ void OnSessionExpirationChange(double new_expiry_time); |
void OnSessionReady(); |
void OnSessionClosed(); |
void OnSessionError(media::MediaKeys::Exception exception_code, |
@@ -61,24 +69,15 @@ class WebContentDecryptionModuleSessionImpl |
const std::string& error_message); |
private: |
- typedef std::map<uint32, blink::WebContentDecryptionModuleResult> ResultMap; |
- |
// These function are used as callbacks when CdmPromise resolves/rejects. |
// |result_index| = kReservedIndex means that there is no |
// WebContentDecryptionModuleResult. |
- void SessionCreated(uint32 result_index, const std::string& web_session_id); |
- void SessionUpdatedOrReleased(uint32 result_index); |
- void SessionError(uint32 result_index, |
- media::MediaKeys::Exception exception_code, |
- uint32 system_code, |
- const std::string& error_message); |
- |
- // As initializeNewSession(), update(), and release() get passed a |
- // WebContentDecryptionModuleResult, keep track of them since this class owns |
- // it and needs to keep them around until completed. Returns the index used |
- // to locate the WebContentDecryptionModuleResult when the operation is |
- // complete. |
- uint32 AddResult(blink::WebContentDecryptionModuleResult result); |
+ void OnSessionInitialized(uint32 result_index, |
+ const std::string& web_session_id); |
+ void OnPromiseRejected(uint32 result_index, |
+ media::MediaKeys::Exception exception_code, |
+ uint32 system_code, |
+ const std::string& error_message); |
scoped_refptr<CdmSessionAdapter> adapter_; |
@@ -96,8 +95,7 @@ class WebContentDecryptionModuleSessionImpl |
bool is_closed_; |
// Keep track of all the outstanding WebContentDecryptionModuleResult objects. |
- uint32 next_available_result_index_; |
- ResultMap outstanding_results_; |
+ WebContentDecryptionModuleResultHelper outstanding_results_; |
// Since promises will live until they are fired, use a weak reference when |
// creating a promise in case this class disappears before the promise |