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, if available. |
1716 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); | 1716 if (hasEventListeners(EventTypeNames::needkey)) { |
1717 scheduleEvent(EventTypeNames::error); | 1717 MediaKeyNeededEventInit initializer; |
1718 return false; | 1718 initializer.contentType = contentType; |
1719 initializer.initData = Uint8Array::create(initData, initDataLength); | |
1720 initializer.bubbles = false; | |
1721 initializer.cancelable = false; | |
1722 | |
1723 RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::needke y, initializer); | |
1724 event->setTarget(this); | |
1725 m_asyncEventQueue->enqueueEvent(event.release()); | |
1726 return true; | |
ddorwin
2014/01/13 19:17:49
We shouldn't return. We may need to fire both even
jrummell
2014/01/13 22:43:44
Done.
| |
1719 } | 1727 } |
1720 | 1728 |
1721 MediaKeyEventInit initializer; | 1729 // Send event for v0.1b EME, if available. |
1722 initializer.keySystem = keySystem; | 1730 // FIXME: Remove once v0.1b EME is removed. |
1723 initializer.sessionId = sessionId; | 1731 if (hasEventListeners(EventTypeNames::webkitneedkey)) { |
1724 initializer.initData = Uint8Array::create(initData, initDataLength); | 1732 MediaKeyEventInit initializer; |
1725 initializer.bubbles = false; | 1733 initializer.keySystem = String(); |
1726 initializer.cancelable = false; | 1734 initializer.sessionId = String(); |
1735 initializer.initData = Uint8Array::create(initData, initDataLength); | |
1736 initializer.bubbles = false; | |
1737 initializer.cancelable = false; | |
1727 | 1738 |
1728 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedkey, i nitializer); | 1739 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedke y, initializer); |
1729 event->setTarget(this); | 1740 event->setTarget(this); |
1730 m_asyncEventQueue->enqueueEvent(event.release()); | 1741 m_asyncEventQueue->enqueueEvent(event.release()); |
1731 return true; | 1742 return true; |
1732 } | |
1733 | |
1734 bool HTMLMediaElement::mediaPlayerKeyNeeded(Uint8Array* initData) | |
1735 { | |
1736 // FIXME: This should be using the unprefixed event name ("needkey"). | |
1737 if (!hasEventListeners("webkitneedkey")) { | |
1738 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); | |
1739 scheduleEvent(EventTypeNames::error); | |
1740 return false; | |
1741 } | 1743 } |
1742 | 1744 |
1743 MediaKeyNeededEventInit initializer; | 1745 // Unable to send an event, so send an error. |
1744 initializer.initData = initData; | 1746 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); |
1745 initializer.bubbles = false; | 1747 scheduleEvent(EventTypeNames::error); |
1746 initializer.cancelable = false; | 1748 return 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; | |
1753 } | 1749 } |
1754 | 1750 |
1755 blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() | 1751 blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() |
1756 { | 1752 { |
1757 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; | 1753 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; |
1758 } | 1754 } |
1759 | 1755 |
1760 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys) | 1756 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys) |
1761 { | 1757 { |
1762 if (m_mediaKeys == mediaKeys) | 1758 if (m_mediaKeys == mediaKeys) |
(...skipping 2174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3937 { | 3933 { |
3938 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); | 3934 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); |
3939 } | 3935 } |
3940 | 3936 |
3941 bool HTMLMediaElement::isInteractiveContent() const | 3937 bool HTMLMediaElement::isInteractiveContent() const |
3942 { | 3938 { |
3943 return fastHasAttribute(controlsAttr); | 3939 return fastHasAttribute(controlsAttr); |
3944 } | 3940 } |
3945 | 3941 |
3946 } | 3942 } |
OLD | NEW |