OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 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 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 initializer.message = Uint8Array::create(message, messageLength); | 1703 initializer.message = Uint8Array::create(message, messageLength); |
1704 initializer.defaultURL = defaultURL; | 1704 initializer.defaultURL = defaultURL; |
1705 initializer.bubbles = false; | 1705 initializer.bubbles = false; |
1706 initializer.cancelable = false; | 1706 initializer.cancelable = false; |
1707 | 1707 |
1708 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeymessage
, initializer); | 1708 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeymessage
, initializer); |
1709 event->setTarget(this); | 1709 event->setTarget(this); |
1710 m_asyncEventQueue->enqueueEvent(event.release()); | 1710 m_asyncEventQueue->enqueueEvent(event.release()); |
1711 } | 1711 } |
1712 | 1712 |
1713 bool HTMLMediaElement::mediaPlayerKeyNeeded(const String& keySystem, const Strin
g& sessionId, const unsigned char* initData, unsigned initDataLength) | 1713 bool HTMLMediaElement::mediaPlayerKeyNeeded(const String& contentType, const uns
igned char* initData, unsigned initDataLength) |
1714 { | 1714 { |
1715 if (!hasEventListeners(EventTypeNames::webkitneedkey)) { | 1715 // Send event for WD EME. |
1716 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); | 1716 MediaKeyNeededEventInit initializer; |
1717 scheduleEvent(EventTypeNames::error); | 1717 initializer.contentType = contentType; |
1718 return false; | |
1719 } | |
1720 | |
1721 MediaKeyEventInit initializer; | |
1722 initializer.keySystem = keySystem; | |
1723 initializer.sessionId = sessionId; | |
1724 initializer.initData = Uint8Array::create(initData, initDataLength); | 1718 initializer.initData = Uint8Array::create(initData, initDataLength); |
1725 initializer.bubbles = false; | 1719 initializer.bubbles = false; |
1726 initializer.cancelable = false; | 1720 initializer.cancelable = false; |
1727 | 1721 |
1728 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedkey, i
nitializer); | 1722 RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::needkey, i
nitializer); |
1729 event->setTarget(this); | 1723 event->setTarget(this); |
1730 m_asyncEventQueue->enqueueEvent(event.release()); | 1724 m_asyncEventQueue->enqueueEvent(event.release()); |
1731 return true; | |
1732 } | |
1733 | 1725 |
1734 bool HTMLMediaElement::mediaPlayerKeyNeeded(Uint8Array* initData) | 1726 // Send event for v0.1b EME. |
1735 { | 1727 if (hasEventListeners(EventTypeNames::webkitneedkey)) { |
1736 // FIXME: This should be using the unprefixed event name ("needkey"). | 1728 MediaKeyEventInit webkitInitializer; |
1737 if (!hasEventListeners("webkitneedkey")) { | 1729 webkitInitializer.keySystem = String(); |
1738 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); | 1730 webkitInitializer.sessionId = String(); |
1739 scheduleEvent(EventTypeNames::error); | 1731 webkitInitializer.initData = Uint8Array::create(initData, initDataLength
); |
1740 return false; | 1732 webkitInitializer.bubbles = false; |
| 1733 webkitInitializer.cancelable = false; |
| 1734 |
| 1735 event = MediaKeyEvent::create(EventTypeNames::webkitneedkey, webkitIniti
alizer); |
| 1736 event->setTarget(this); |
| 1737 m_asyncEventQueue->enqueueEvent(event.release()); |
1741 } | 1738 } |
1742 | 1739 |
1743 MediaKeyNeededEventInit initializer; | |
1744 initializer.initData = initData; | |
1745 initializer.bubbles = false; | |
1746 initializer.cancelable = false; | |
1747 | |
1748 RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::webkitneed
key, initializer); | |
1749 event->setTarget(this); | |
1750 m_asyncEventQueue->enqueueEvent(event.release()); | |
1751 | |
1752 return true; | 1740 return true; |
1753 } | 1741 } |
1754 | 1742 |
1755 blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() | 1743 blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() |
1756 { | 1744 { |
1757 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; | 1745 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; |
1758 } | 1746 } |
1759 | 1747 |
1760 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys) | 1748 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys) |
1761 { | 1749 { |
(...skipping 2175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3937 { | 3925 { |
3938 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); | 3926 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); |
3939 } | 3927 } |
3940 | 3928 |
3941 bool HTMLMediaElement::isInteractiveContent() const | 3929 bool HTMLMediaElement::isInteractiveContent() const |
3942 { | 3930 { |
3943 return fastHasAttribute(controlsAttr); | 3931 return fastHasAttribute(controlsAttr); |
3944 } | 3932 } |
3945 | 3933 |
3946 } | 3934 } |
OLD | NEW |