Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(384)

Side by Side Diff: third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp

Issue 2001173002: encryptedmedia: Replace wtf/Assertions.h macros in favor of base/logging.h macros (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 21 matching lines...) Expand all
32 #include "core/dom/ExecutionContext.h" 32 #include "core/dom/ExecutionContext.h"
33 #include "core/html/HTMLMediaElement.h" 33 #include "core/html/HTMLMediaElement.h"
34 #include "modules/encryptedmedia/EncryptedMediaUtils.h" 34 #include "modules/encryptedmedia/EncryptedMediaUtils.h"
35 #include "modules/encryptedmedia/MediaKeySession.h" 35 #include "modules/encryptedmedia/MediaKeySession.h"
36 #include "modules/encryptedmedia/SimpleContentDecryptionModuleResultPromise.h" 36 #include "modules/encryptedmedia/SimpleContentDecryptionModuleResultPromise.h"
37 #include "platform/Logging.h" 37 #include "platform/Logging.h"
38 #include "platform/Timer.h" 38 #include "platform/Timer.h"
39 #include "public/platform/WebContentDecryptionModule.h" 39 #include "public/platform/WebContentDecryptionModule.h"
40 #include "wtf/RefPtr.h" 40 #include "wtf/RefPtr.h"
41 41
42 #define MEDIA_KEYS_LOG_LEVEL 3
43
42 namespace blink { 44 namespace blink {
43 45
44 // A class holding a pending action. 46 // A class holding a pending action.
45 class MediaKeys::PendingAction final : public GarbageCollected<MediaKeys::Pendin gAction> { 47 class MediaKeys::PendingAction final : public GarbageCollected<MediaKeys::Pendin gAction> {
46 public: 48 public:
47 const Persistent<ContentDecryptionModuleResult> result() const 49 const Persistent<ContentDecryptionModuleResult> result() const
48 { 50 {
49 return m_result; 51 return m_result;
50 } 52 }
51 53
52 DOMArrayBuffer* data() const 54 DOMArrayBuffer* data() const
53 { 55 {
54 return m_data; 56 return m_data;
55 } 57 }
56 58
57 static PendingAction* CreatePendingSetServerCertificate(ContentDecryptionMod uleResult* result, DOMArrayBuffer* serverCertificate) 59 static PendingAction* CreatePendingSetServerCertificate(ContentDecryptionMod uleResult* result, DOMArrayBuffer* serverCertificate)
58 { 60 {
59 ASSERT(result); 61 DCHECK(result);
60 ASSERT(serverCertificate); 62 DCHECK(serverCertificate);
61 return new PendingAction(result, serverCertificate); 63 return new PendingAction(result, serverCertificate);
62 } 64 }
63 65
64 DEFINE_INLINE_TRACE() 66 DEFINE_INLINE_TRACE()
65 { 67 {
66 visitor->trace(m_result); 68 visitor->trace(m_result);
67 visitor->trace(m_data); 69 visitor->trace(m_data);
68 } 70 }
69 71
70 private: 72 private:
(...skipping 16 matching lines...) Expand all
87 89
88 MediaKeys::MediaKeys(ExecutionContext* context, const WebVector<WebEncryptedMedi aSessionType>& supportedSessionTypes, PassOwnPtr<WebContentDecryptionModule> cdm ) 90 MediaKeys::MediaKeys(ExecutionContext* context, const WebVector<WebEncryptedMedi aSessionType>& supportedSessionTypes, PassOwnPtr<WebContentDecryptionModule> cdm )
89 : ActiveScriptWrappable(this) 91 : ActiveScriptWrappable(this)
90 , ActiveDOMObject(context) 92 , ActiveDOMObject(context)
91 , m_supportedSessionTypes(supportedSessionTypes) 93 , m_supportedSessionTypes(supportedSessionTypes)
92 , m_cdm(std::move(cdm)) 94 , m_cdm(std::move(cdm))
93 , m_mediaElement(nullptr) 95 , m_mediaElement(nullptr)
94 , m_reservedForMediaElement(false) 96 , m_reservedForMediaElement(false)
95 , m_timer(this, &MediaKeys::timerFired) 97 , m_timer(this, &MediaKeys::timerFired)
96 { 98 {
97 WTF_LOG(Media, "MediaKeys(%p)::MediaKeys", this); 99 DVLOG(MEDIA_KEYS_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")";
98 } 100 }
99 101
100 MediaKeys::~MediaKeys() 102 MediaKeys::~MediaKeys()
101 { 103 {
102 WTF_LOG(Media, "MediaKeys(%p)::~MediaKeys", this); 104 DVLOG(MEDIA_KEYS_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")";
103 } 105 }
104 106
105 MediaKeySession* MediaKeys::createSession(ScriptState* scriptState, const String & sessionTypeString, ExceptionState& exceptionState) 107 MediaKeySession* MediaKeys::createSession(ScriptState* scriptState, const String & sessionTypeString, ExceptionState& exceptionState)
106 { 108 {
107 WTF_LOG(Media, "MediaKeys(%p)::createSession %s", this, sessionTypeString.ut f8().data()); 109 DVLOG(MEDIA_KEYS_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") " << sessio nTypeString;
108 110
109 // From http://w3c.github.io/encrypted-media/#createSession 111 // From http://w3c.github.io/encrypted-media/#createSession
110 112
111 // When this method is invoked, the user agent must run the following steps: 113 // When this method is invoked, the user agent must run the following steps:
112 // 1. If this object's persistent state allowed value is false and 114 // 1. If this object's persistent state allowed value is false and
113 // sessionType is not "temporary", throw a new DOMException whose name is 115 // sessionType is not "temporary", throw a new DOMException whose name is
114 // NotSupportedError. 116 // NotSupportedError.
115 // (Chromium ensures that only session types supported by the 117 // (Chromium ensures that only session types supported by the
116 // configuration are listed in supportedSessionTypes.) 118 // configuration are listed in supportedSessionTypes.)
117 // 2. If the Key System implementation represented by this object's cdm 119 // 2. If the Key System implementation represented by this object's cdm
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 184 }
183 185
184 void MediaKeys::cancelReservation() 186 void MediaKeys::cancelReservation()
185 { 187 {
186 m_reservedForMediaElement = false; 188 m_reservedForMediaElement = false;
187 m_mediaElement.clear(); 189 m_mediaElement.clear();
188 } 190 }
189 191
190 void MediaKeys::clearMediaElement() 192 void MediaKeys::clearMediaElement()
191 { 193 {
192 ASSERT(m_mediaElement); 194 DCHECK(m_mediaElement);
193 m_mediaElement.clear(); 195 m_mediaElement.clear();
194 } 196 }
195 197
196 bool MediaKeys::sessionTypeSupported(WebEncryptedMediaSessionType sessionType) 198 bool MediaKeys::sessionTypeSupported(WebEncryptedMediaSessionType sessionType)
197 { 199 {
198 for (size_t i = 0; i < m_supportedSessionTypes.size(); i++) { 200 for (size_t i = 0; i < m_supportedSessionTypes.size(); i++) {
199 if (m_supportedSessionTypes[i] == sessionType) 201 if (m_supportedSessionTypes[i] == sessionType)
200 return true; 202 return true;
201 } 203 }
202 204
203 return false; 205 return false;
204 } 206 }
205 207
206 void MediaKeys::timerFired(Timer<MediaKeys>*) 208 void MediaKeys::timerFired(Timer<MediaKeys>*)
207 { 209 {
208 ASSERT(m_pendingActions.size()); 210 DCHECK(m_pendingActions.size());
209 211
210 // Swap the queue to a local copy to avoid problems if resolving promises 212 // Swap the queue to a local copy to avoid problems if resolving promises
211 // run synchronously. 213 // run synchronously.
212 HeapDeque<Member<PendingAction>> pendingActions; 214 HeapDeque<Member<PendingAction>> pendingActions;
213 pendingActions.swap(m_pendingActions); 215 pendingActions.swap(m_pendingActions);
214 216
215 while (!pendingActions.isEmpty()) { 217 while (!pendingActions.isEmpty()) {
216 PendingAction* action = pendingActions.takeFirst(); 218 PendingAction* action = pendingActions.takeFirst();
217 WTF_LOG(Media, "MediaKeys(%p)::timerFired: Certificate", this); 219 DVLOG(MEDIA_KEYS_LOG_LEVEL) << __FUNCTION__ << "(" << this << ") Certifi cate";
218 220
219 // 5.1 Let cdm be the cdm during the initialization of this object. 221 // 5.1 Let cdm be the cdm during the initialization of this object.
220 WebContentDecryptionModule* cdm = contentDecryptionModule(); 222 WebContentDecryptionModule* cdm = contentDecryptionModule();
221 223
222 // 5.2 Use the cdm to process certificate. 224 // 5.2 Use the cdm to process certificate.
223 cdm->setServerCertificate(static_cast<unsigned char*>(action->data()->da ta()), action->data()->byteLength(), action->result()->result()); 225 cdm->setServerCertificate(static_cast<unsigned char*>(action->data()->da ta()), action->data()->byteLength(), action->result()->result());
224 // 5.3 If any of the preceding steps failed, reject promise with a 226 // 5.3 If any of the preceding steps failed, reject promise with a
225 // new DOMException whose name is the appropriate error name. 227 // new DOMException whose name is the appropriate error name.
226 // 5.4 Resolve promise. 228 // 5.4 Resolve promise.
227 // (These are handled by Chromium and the CDM.) 229 // (These are handled by Chromium and the CDM.)
(...skipping 17 matching lines...) Expand all
245 ActiveDOMObject::contextDestroyed(); 247 ActiveDOMObject::contextDestroyed();
246 248
247 // We don't need the CDM anymore. Only destroyed after all related 249 // We don't need the CDM anymore. Only destroyed after all related
248 // ActiveDOMObjects have been stopped. 250 // ActiveDOMObjects have been stopped.
249 m_cdm.clear(); 251 m_cdm.clear();
250 } 252 }
251 253
252 bool MediaKeys::hasPendingActivity() const 254 bool MediaKeys::hasPendingActivity() const
253 { 255 {
254 // Remain around if there are pending events. 256 // Remain around if there are pending events.
255 WTF_LOG(Media, "MediaKeys(%p)::hasPendingActivity %s%s", this, 257 DVLOG(MEDIA_KEYS_LOG_LEVEL) << __FUNCTION__ << "(" << this << ")"
256 !m_pendingActions.isEmpty() ? " !m_pendingActions.isEmpty()" : "", 258 << (!m_pendingActions.isEmpty() ? " !m_pendingActions.isEmpty()" : "")
257 m_reservedForMediaElement ? " m_reservedForMediaElement" : ""); 259 << (m_reservedForMediaElement ? " m_reservedForMediaElement" : "");
258 260
259 return !m_pendingActions.isEmpty() || m_reservedForMediaElement; 261 return !m_pendingActions.isEmpty() || m_reservedForMediaElement;
260 } 262 }
261 263
262 void MediaKeys::stop() 264 void MediaKeys::stop()
263 { 265 {
264 ActiveDOMObject::stop(); 266 ActiveDOMObject::stop();
265 267
266 if (m_timer.isActive()) 268 if (m_timer.isActive())
267 m_timer.stop(); 269 m_timer.stop();
268 m_pendingActions.clear(); 270 m_pendingActions.clear();
269 } 271 }
270 272
271 } // namespace blink 273 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698