| OLD | NEW |
| 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 23 matching lines...) Expand all Loading... |
| 34 #include "modules/encryptedmedia/MediaKeySession.h" | 34 #include "modules/encryptedmedia/MediaKeySession.h" |
| 35 #include "wtf/HashSet.h" | 35 #include "wtf/HashSet.h" |
| 36 | 36 |
| 37 namespace WebCore { | 37 namespace WebCore { |
| 38 | 38 |
| 39 PassRefPtr<MediaKeys> MediaKeys::create(const String& keySystem, ExceptionCode&
ec) | 39 PassRefPtr<MediaKeys> MediaKeys::create(const String& keySystem, ExceptionCode&
ec) |
| 40 { | 40 { |
| 41 // From <http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/e
ncrypted-media.html#dom-media-keys-constructor>: | 41 // From <http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/e
ncrypted-media.html#dom-media-keys-constructor>: |
| 42 // The MediaKeys(keySystem) constructor must run the following steps: | 42 // The MediaKeys(keySystem) constructor must run the following steps: |
| 43 | 43 |
| 44 // 1. If keySystem is null or an empty string, throw an INVALID_ACCESS_ERR e
xception and abort these steps. | 44 // 1. If keySystem is null or an empty string, throw an InvalidAccessError e
xception and abort these steps. |
| 45 if (keySystem.isEmpty()) { | 45 if (keySystem.isEmpty()) { |
| 46 ec = INVALID_ACCESS_ERR; | 46 ec = InvalidAccessError; |
| 47 return 0; | 47 return 0; |
| 48 } | 48 } |
| 49 | 49 |
| 50 // 2. If keySystem is not one of the user agent's supported Key Systems, thr
ow a NotSupportedError and abort these steps. | 50 // 2. If keySystem is not one of the user agent's supported Key Systems, thr
ow a NotSupportedError and abort these steps. |
| 51 if (!ContentDecryptionModule::supportsKeySystem(keySystem)) { | 51 if (!ContentDecryptionModule::supportsKeySystem(keySystem)) { |
| 52 ec = NotSupportedError; | 52 ec = NotSupportedError; |
| 53 return 0; | 53 return 0; |
| 54 } | 54 } |
| 55 | 55 |
| 56 // 3. Let cdm be the content decryption module corresponding to keySystem. | 56 // 3. Let cdm be the content decryption module corresponding to keySystem. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 83 m_sessions[i]->close(); | 83 m_sessions[i]->close(); |
| 84 } | 84 } |
| 85 | 85 |
| 86 PassRefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext* con
text, const String& type, Uint8Array* initData, ExceptionCode& ec) | 86 PassRefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext* con
text, const String& type, Uint8Array* initData, ExceptionCode& ec) |
| 87 { | 87 { |
| 88 // From <http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/e
ncrypted-media.html#dom-createsession>: | 88 // From <http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/e
ncrypted-media.html#dom-createsession>: |
| 89 // The createSession(type, initData) method must run the following steps: | 89 // The createSession(type, initData) method must run the following steps: |
| 90 // Note: The contents of initData are container-specific Initialization Data
. | 90 // Note: The contents of initData are container-specific Initialization Data
. |
| 91 | 91 |
| 92 // 1. If type is null or an empty string and initData is not null or an empt
y string, throw an | 92 // 1. If type is null or an empty string and initData is not null or an empt
y string, throw an |
| 93 // INVALID_ACCESS_ERR exception and abort these steps. | 93 // InvalidAccessError exception and abort these steps. |
| 94 if ((type.isEmpty()) && (!initData || initData->length())) { | 94 if ((type.isEmpty()) && (!initData || initData->length())) { |
| 95 ec = INVALID_ACCESS_ERR; | 95 ec = InvalidAccessError; |
| 96 return 0; | 96 return 0; |
| 97 } | 97 } |
| 98 | 98 |
| 99 // 2. If type contains a MIME type that is not supported or is not supported
by the keySystem, throw | 99 // 2. If type contains a MIME type that is not supported or is not supported
by the keySystem, throw |
| 100 // a NotSupportedError exception and abort these steps. | 100 // a NotSupportedError exception and abort these steps. |
| 101 ASSERT(!type.isEmpty()); | 101 ASSERT(!type.isEmpty()); |
| 102 if (type.isEmpty() || !m_cdm->supportsMIMEType(type)) { | 102 if (type.isEmpty() || !m_cdm->supportsMIMEType(type)) { |
| 103 ec = NotSupportedError; | 103 ec = NotSupportedError; |
| 104 return 0; | 104 return 0; |
| 105 } | 105 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 123 | 123 |
| 124 void MediaKeys::setMediaElement(HTMLMediaElement* element) | 124 void MediaKeys::setMediaElement(HTMLMediaElement* element) |
| 125 { | 125 { |
| 126 // FIXME: Cause HTMLMediaElement::setMediaKeys() to throw an exception if m_
mediaElement is not 0. | 126 // FIXME: Cause HTMLMediaElement::setMediaKeys() to throw an exception if m_
mediaElement is not 0. |
| 127 // FIXME: Hook up the CDM to the WebMediaPlayer in Chromium. | 127 // FIXME: Hook up the CDM to the WebMediaPlayer in Chromium. |
| 128 ASSERT(!m_mediaElement); | 128 ASSERT(!m_mediaElement); |
| 129 m_mediaElement = element; | 129 m_mediaElement = element; |
| 130 } | 130 } |
| 131 | 131 |
| 132 } | 132 } |
| OLD | NEW |