Index: third_party/WebKit/Source/modules/encryptedmedia/MediaKeySession.cpp |
diff --git a/third_party/WebKit/Source/modules/encryptedmedia/MediaKeySession.cpp b/third_party/WebKit/Source/modules/encryptedmedia/MediaKeySession.cpp |
index 54b7d8c9ee460fd0d08a5fa332bd7e580f9171e3..fb3d232d2a982c70b3cf828e12c90000d614a91e 100644 |
--- a/third_party/WebKit/Source/modules/encryptedmedia/MediaKeySession.cpp |
+++ b/third_party/WebKit/Source/modules/encryptedmedia/MediaKeySession.cpp |
@@ -53,6 +53,8 @@ |
#include <cmath> |
#include <limits> |
+#define MEDIA_KEY_SESSION_LOG_LEVEL 3 |
+ |
namespace { |
// Minimum and maximum length for session ids. |
@@ -102,7 +104,7 @@ static String ConvertKeyStatusToString(const WebEncryptedMediaKeyInformation::Ke |
return "internal-error"; |
} |
- ASSERT_NOT_REACHED(); |
+ NOTREACHED(); |
return "internal-error"; |
} |
@@ -138,51 +140,51 @@ public: |
DOMArrayBuffer* data() const |
{ |
- ASSERT(m_type == GenerateRequest || m_type == Update); |
+ DCHECK(m_type == GenerateRequest || m_type == Update); |
return m_data; |
} |
WebEncryptedMediaInitDataType initDataType() const |
{ |
- ASSERT(m_type == GenerateRequest); |
+ DCHECK_EQ(GenerateRequest, m_type); |
return m_initDataType; |
} |
const String& sessionId() const |
{ |
- ASSERT(m_type == Load); |
+ DCHECK_EQ(Load, m_type); |
return m_stringData; |
} |
static PendingAction* CreatePendingGenerateRequest(ContentDecryptionModuleResult* result, WebEncryptedMediaInitDataType initDataType, DOMArrayBuffer* initData) |
{ |
- ASSERT(result); |
- ASSERT(initData); |
+ DCHECK(result); |
+ DCHECK(initData); |
return new PendingAction(GenerateRequest, result, initDataType, initData, String()); |
} |
static PendingAction* CreatePendingLoadRequest(ContentDecryptionModuleResult* result, const String& sessionId) |
{ |
- ASSERT(result); |
+ DCHECK(result); |
return new PendingAction(Load, result, WebEncryptedMediaInitDataType::Unknown, nullptr, sessionId); |
} |
static PendingAction* CreatePendingUpdate(ContentDecryptionModuleResult* result, DOMArrayBuffer* data) |
{ |
- ASSERT(result); |
- ASSERT(data); |
+ DCHECK(result); |
+ DCHECK(data); |
return new PendingAction(Update, result, WebEncryptedMediaInitDataType::Unknown, data, String()); |
} |
static PendingAction* CreatePendingClose(ContentDecryptionModuleResult* result) |
{ |
- ASSERT(result); |
+ DCHECK(result); |
return new PendingAction(Close, result, WebEncryptedMediaInitDataType::Unknown, nullptr, String()); |
} |
static PendingAction* CreatePendingRemove(ContentDecryptionModuleResult* result) |
{ |
- ASSERT(result); |
+ DCHECK(result); |
return new PendingAction(Remove, result, WebEncryptedMediaInitDataType::Unknown, nullptr, String()); |
} |
@@ -234,7 +236,7 @@ public: |
void completeWithSession(WebContentDecryptionModuleResult::SessionStatus status) override |
{ |
if (status != WebContentDecryptionModuleResult::NewSession) { |
- ASSERT_NOT_REACHED(); |
+ NOTREACHED(); |
reject(InvalidStateError, "Unexpected completion."); |
} |
@@ -283,12 +285,12 @@ public: |
return; |
case WebContentDecryptionModuleResult::SessionAlreadyExists: |
- ASSERT_NOT_REACHED(); |
+ NOTREACHED(); |
reject(InvalidStateError, "Unexpected completion."); |
return; |
} |
- ASSERT_NOT_REACHED(); |
+ NOTREACHED(); |
} |
DEFINE_INLINE_TRACE() |
@@ -322,7 +324,7 @@ MediaKeySession::MediaKeySession(ScriptState* scriptState, MediaKeys* mediaKeys, |
, m_closedPromise(new ClosedPromise(scriptState->getExecutionContext(), this, ClosedPromise::Closed)) |
, m_actionTimer(this, &MediaKeySession::actionTimerFired) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::MediaKeySession", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
ThreadState::current()->registerPreFinalizer(this); |
// Create the matching Chromium object. It will not be usable until |
@@ -335,25 +337,25 @@ MediaKeySession::MediaKeySession(ScriptState* scriptState, MediaKeys* mediaKeys, |
// From https://w3c.github.io/encrypted-media/#createSession: |
// MediaKeys::createSession(), step 3. |
// 3.1 Let the sessionId attribute be the empty string. |
- ASSERT(sessionId().isEmpty()); |
+ DCHECK(sessionId().isEmpty()); |
// 3.2 Let the expiration attribute be NaN. |
- ASSERT(std::isnan(m_expiration)); |
+ DCHECK(std::isnan(m_expiration)); |
// 3.3 Let the closed attribute be a new promise. |
- ASSERT(!closed(scriptState).isUndefinedOrNull()); |
+ DCHECK(!closed(scriptState).isUndefinedOrNull()); |
// 3.4 Let the keyStatuses attribute be empty. |
- ASSERT(m_keyStatusesMap->size() == 0); |
+ DCHECK_EQ(0u, m_keyStatusesMap->size()); |
// 3.5 Let the session type be sessionType. |
- ASSERT(m_sessionType != WebEncryptedMediaSessionType::Unknown); |
+ DCHECK(m_sessionType != WebEncryptedMediaSessionType::Unknown); |
// 3.6 Let uninitialized be true. |
- ASSERT(m_isUninitialized); |
+ DCHECK(m_isUninitialized); |
// 3.7 Let callable be false. |
- ASSERT(!m_isCallable); |
+ DCHECK(!m_isCallable); |
// 3.8 Let the use distinctive identifier value be this object's |
// use distinctive identifier. |
@@ -365,7 +367,7 @@ MediaKeySession::MediaKeySession(ScriptState* scriptState, MediaKeys* mediaKeys, |
MediaKeySession::~MediaKeySession() |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::~MediaKeySession", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
} |
void MediaKeySession::dispose() |
@@ -392,7 +394,7 @@ MediaKeyStatusMap* MediaKeySession::keyStatuses() |
ScriptPromise MediaKeySession::generateRequest(ScriptState* scriptState, const String& initDataTypeString, const DOMArrayPiece& initData) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::generateRequest %s", this, initDataTypeString.ascii().data()); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") " << initDataTypeString; |
// From https://w3c.github.io/encrypted-media/#generateRequest: |
// Generates a request based on the initData. When this method is invoked, |
@@ -447,7 +449,7 @@ ScriptPromise MediaKeySession::generateRequest(ScriptState* scriptState, const S |
// 9. Run the following steps asynchronously (documented in |
// actionTimerFired()) |
m_pendingActions.append(PendingAction::CreatePendingGenerateRequest(result, initDataType, initDataBuffer)); |
- ASSERT(!m_actionTimer.isActive()); |
+ DCHECK(!m_actionTimer.isActive()); |
m_actionTimer.startOneShot(0, BLINK_FROM_HERE); |
// 10. Return promise. |
@@ -456,7 +458,7 @@ ScriptPromise MediaKeySession::generateRequest(ScriptState* scriptState, const S |
ScriptPromise MediaKeySession::load(ScriptState* scriptState, const String& sessionId) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::load %s", this, sessionId.ascii().data()); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") " << sessionId; |
// From https://w3c.github.io/encrypted-media/#load: |
// Loads the data stored for the specified session into this object. When |
@@ -501,7 +503,7 @@ ScriptPromise MediaKeySession::load(ScriptState* scriptState, const String& sess |
// 8. Run the following steps asynchronously (documented in |
// actionTimerFired()) |
m_pendingActions.append(PendingAction::CreatePendingLoadRequest(result, sessionId)); |
- ASSERT(!m_actionTimer.isActive()); |
+ DCHECK(!m_actionTimer.isActive()); |
m_actionTimer.startOneShot(0, BLINK_FROM_HERE); |
// 9. Return promise. |
@@ -510,8 +512,8 @@ ScriptPromise MediaKeySession::load(ScriptState* scriptState, const String& sess |
ScriptPromise MediaKeySession::update(ScriptState* scriptState, const DOMArrayPiece& response) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::update", this); |
- ASSERT(!m_isClosed); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
+ DCHECK(!m_isClosed); |
// From https://w3c.github.io/encrypted-media/#update: |
// Provides messages, including licenses, to the CDM. When this method is |
@@ -548,7 +550,7 @@ ScriptPromise MediaKeySession::update(ScriptState* scriptState, const DOMArrayPi |
ScriptPromise MediaKeySession::close(ScriptState* scriptState) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::close", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
// From https://w3c.github.io/encrypted-media/#close: |
// Indicates that the application no longer needs the session and the CDM |
@@ -581,7 +583,7 @@ ScriptPromise MediaKeySession::close(ScriptState* scriptState) |
ScriptPromise MediaKeySession::remove(ScriptState* scriptState) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::remove", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
// From https://w3c.github.io/encrypted-media/#remove: |
// Removes stored session data associated with this object. When this |
@@ -624,7 +626,7 @@ ScriptPromise MediaKeySession::remove(ScriptState* scriptState) |
void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
{ |
- ASSERT(m_pendingActions.size()); |
+ DCHECK(m_pendingActions.size()); |
// Resolving promises now run synchronously and may result in additional |
// actions getting added to the queue. As a result, swap the queue to |
@@ -638,7 +640,7 @@ void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
switch (action->getType()) { |
case PendingAction::GenerateRequest: |
// NOTE: Continue step 9 of MediaKeySession::generateRequest(). |
- WTF_LOG(Media, "MediaKeySession(%p)::actionTimerFired: GenerateRequest", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") GenerateRequest"; |
// initializeNewSession() in Chromium will execute steps 9.1 to 9.7. |
m_session->initializeNewSession(action->initDataType(), static_cast<unsigned char*>(action->data()->data()), action->data()->byteLength(), m_sessionType, action->result()->result()); |
@@ -649,7 +651,7 @@ void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
case PendingAction::Load: |
// NOTE: Continue step 8 of MediaKeySession::load(). |
- WTF_LOG(Media, "MediaKeySession(%p)::actionTimerFired: Load", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") Load"; |
// 8.1 Let sanitized session ID be a validated and/or sanitized |
// version of sessionId. The user agent should thoroughly |
@@ -673,7 +675,7 @@ void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
// 8.4 Let expiration time be NaN. |
// (Done in the constructor.) |
- ASSERT(std::isnan(m_expiration)); |
+ DCHECK(std::isnan(m_expiration)); |
// load() in Chromium will execute steps 8.5 through 8.8. |
m_session->load(action->sessionId(), action->result()->result()); |
@@ -684,7 +686,7 @@ void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
case PendingAction::Update: |
// NOTE: Continue step 5 of MediaKeySession::update(). |
- WTF_LOG(Media, "MediaKeySession(%p)::actionTimerFired: Update", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") Update"; |
// update() in Chromium will execute steps 5.1 through 5.8. |
m_session->update(static_cast<unsigned char*>(action->data()->data()), action->data()->byteLength(), action->result()->result()); |
@@ -695,7 +697,7 @@ void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
case PendingAction::Close: |
// NOTE: Continue step 4 of MediaKeySession::close(). |
- WTF_LOG(Media, "MediaKeySession(%p)::actionTimerFired: Close", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") Close"; |
// close() in Chromium will execute steps 4.1 through 4.2. |
m_session->close(action->result()->result()); |
@@ -706,7 +708,7 @@ void MediaKeySession::actionTimerFired(Timer<MediaKeySession>*) |
case PendingAction::Remove: |
// NOTE: Continue step 5 of MediaKeySession::remove(). |
- WTF_LOG(Media, "MediaKeySession(%p)::actionTimerFired: Remove", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") Remove"; |
// remove() in Chromium will execute steps 5.1 through 5.3. |
m_session->remove(action->result()->result()); |
@@ -725,7 +727,7 @@ void MediaKeySession::finishGenerateRequest() |
// (Done by CDM calling result.completeWithError() as appropriate.) |
// 9.9 Set the sessionId attribute to session id. |
- ASSERT(!sessionId().isEmpty()); |
+ DCHECK(!sessionId().isEmpty()); |
// 9.10 Let this object's callable be true. |
m_isCallable = true; |
@@ -745,7 +747,7 @@ void MediaKeySession::finishLoad() |
// (Done by CDM calling result.completeWithError() as appropriate.) |
// 8.10 Set the sessionId attribute to sanitized session ID. |
- ASSERT(!sessionId().isEmpty()); |
+ DCHECK(!sessionId().isEmpty()); |
// 8.11 Let this object's callable be true. |
m_isCallable = true; |
@@ -776,10 +778,10 @@ void MediaKeySession::finishLoad() |
// Queue a task to fire a simple event named keymessage at the new object. |
void MediaKeySession::message(MessageType messageType, const unsigned char* message, size_t messageLength) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::message", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
// Verify that 'message' not fired before session initialization is complete. |
- ASSERT(m_isCallable); |
+ DCHECK(m_isCallable); |
// From https://w3c.github.io/encrypted-media/#queue-message: |
// The following steps are run: |
@@ -810,7 +812,7 @@ void MediaKeySession::message(MessageType messageType, const unsigned char* mess |
void MediaKeySession::close() |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::close", this); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"; |
// From https://w3c.github.io/encrypted-media/#session-close: |
// The following steps are run: |
@@ -826,7 +828,7 @@ void MediaKeySession::close() |
void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::expirationChanged %f", this, updatedExpiryTimeInMS); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") " << updatedExpiryTimeInMS; |
// From https://w3c.github.io/encrypted-media/#update-expiration: |
// The following steps are run: |
@@ -847,7 +849,7 @@ void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS) |
void MediaKeySession::keysStatusesChange(const WebVector<WebEncryptedMediaKeyInformation>& keys, bool hasAdditionalUsableKey) |
{ |
- WTF_LOG(Media, "MediaKeySession(%p)::keysStatusesChange with %zu keys and hasAdditionalUsableKey is %s", this, keys.size(), hasAdditionalUsableKey ? "true" : "false"); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") with " << keys.size() << " keys and hasAdditionalUsableKey is " << (hasAdditionalUsableKey ? "true" : "false"); |
// From https://w3c.github.io/encrypted-media/#update-key-statuses: |
// The following steps are run: |
@@ -897,10 +899,10 @@ bool MediaKeySession::hasPendingActivity() const |
{ |
// Remain around if there are pending events or MediaKeys is still around |
// and we're not closed. |
- WTF_LOG(Media, "MediaKeySession(%p)::hasPendingActivity %s%s%s", this, |
- !m_pendingActions.isEmpty() ? " !m_pendingActions.isEmpty()" : "", |
- m_asyncEventQueue->hasPendingEvents() ? " m_asyncEventQueue->hasPendingEvents()" : "", |
- (m_mediaKeys && !m_isClosed) ? " m_mediaKeys && !m_isClosed" : ""); |
+ DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")" |
+ << (!m_pendingActions.isEmpty() ? " !m_pendingActions.isEmpty()" : "") |
+ << (m_asyncEventQueue->hasPendingEvents() ? " m_asyncEventQueue->hasPendingEvents()" : "") |
+ << ((m_mediaKeys && !m_isClosed) ? " m_mediaKeys && !m_isClosed" : ""); |
return !m_pendingActions.isEmpty() |
|| m_asyncEventQueue->hasPendingEvents() |