Chromium Code Reviews| Index: Source/modules/encryptedmedia/MediaKeySession.h |
| diff --git a/Source/modules/encryptedmedia/MediaKeySession.h b/Source/modules/encryptedmedia/MediaKeySession.h |
| index 26237a2fd6897032a31ba14b24de281803d623bb..80c374d6c059a8ba202a2f8514241d8378ffcbdc 100644 |
| --- a/Source/modules/encryptedmedia/MediaKeySession.h |
| +++ b/Source/modules/encryptedmedia/MediaKeySession.h |
| @@ -65,13 +65,17 @@ class MediaKeySession FINAL |
| DEFINE_WRAPPERTYPEINFO(); |
| WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MediaKeySession); |
| public: |
| - static ScriptPromise create(ScriptState*, MediaKeys*, const String& initDataType, PassRefPtr<ArrayBuffer> initData, const String& sessionType); |
| + static MediaKeySession* create(ScriptState*, MediaKeys*, const String& sessionType); |
| virtual ~MediaKeySession(); |
| const String& keySystem() const { return m_keySystem; } |
| - String sessionId() const; |
| + const String& sessionId() const { return m_sessionId; } |
| + double expiration() const { return m_expiration; } |
|
ddorwin
2014/09/09 00:44:36
Ideally, expiration should have been added in a se
jrummell
2014/09/09 19:55:59
Removed since it's not used. Adding expiration wil
|
| ScriptPromise closed(ScriptState*); |
| + ScriptPromise generateRequest(ScriptState*, const String& initDataType, ArrayBuffer* initData); |
| + ScriptPromise generateRequest(ScriptState*, const String& initDataType, ArrayBufferView* initData); |
| + |
| void setError(MediaKeyError*); |
| MediaKeyError* error() { return m_error.get(); } |
| @@ -93,9 +97,10 @@ public: |
| private: |
| class PendingAction; |
| - friend class MediaKeySessionInitializer; |
| + friend class NewSessionResult; |
| + |
| + MediaKeySession(ScriptState*, MediaKeys*, const String& sessionType); |
| - MediaKeySession(ExecutionContext*, MediaKeys*, PassOwnPtr<WebContentDecryptionModuleSession>); |
| void actionTimerFired(Timer<MediaKeySession>*); |
| // WebContentDecryptionModuleSession::Client |
| @@ -105,16 +110,30 @@ private: |
| virtual void error(MediaKeyErrorCode, unsigned long systemCode) OVERRIDE; |
| virtual void error(WebContentDecryptionModuleException, unsigned long systemCode, const WebString& errorMessage) OVERRIDE; |
| + ScriptPromise generateRequestInternal(ScriptState*, const String& initDataType, PassRefPtr<ArrayBuffer> initData); |
| ScriptPromise updateInternal(ScriptState*, PassRefPtr<ArrayBuffer> response); |
| + // Called by NewSessionResult when the new sesison has been created. |
| + void finishGenerateRequest(); |
| + |
| String m_keySystem; |
|
ddorwin
2014/09/09 00:44:36
This should be removed in a separate CL. It's no l
jrummell
2014/09/09 19:55:59
Acknowledged.
|
| RefPtrWillBeMember<MediaKeyError> m_error; |
| OwnPtrWillBeMember<GenericEventQueue> m_asyncEventQueue; |
| OwnPtr<WebContentDecryptionModuleSession> m_session; |
| - // Used to determine if MediaKeys is still active. |
| + // Used to determine if MediaKeys is still active. Until the session is |
| + // initialized, keep a hard reference to MediaKeys (as it is needed during |
| + // initialization). Afterwards, a weak reference is all that is needed. |
|
ddorwin
2014/09/09 00:44:36
We discussed a different solution that didn't requ
jrummell
2014/09/09 19:55:59
Done.
|
| + Member<MediaKeys> m_mediaKeys; |
| WeakMember<MediaKeys> m_keys; |
|
ddorwin
2014/09/09 00:44:36
Eventually, this should be m_mediaKeys - I think t
jrummell
2014/09/09 19:55:59
Done.
|
| + // Session properties. |
| + String m_sessionId; |
|
ddorwin
2014/09/09 00:44:36
Why is this being tracked here now?
jrummell
2014/09/09 19:55:59
m_session wasn't being created until the generateR
|
| + double m_expiration; |
| + String m_sessionType; |
| + bool m_uninitialized; |
|
ddorwin
2014/09/09 00:44:36
m_isUn...
ditto below.
jrummell
2014/09/09 19:56:00
Done.
|
| + bool m_callable; |
| + |
|
ddorwin
2014/09/09 00:44:36
nit: Keep the states together, separate from the p
jrummell
2014/09/09 19:55:59
Done.
|
| // Is the CDM finished with this session? |
| bool m_isClosed; |