Chromium Code Reviews| 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& mimeType, const unsign ed char* initData, unsigned initDataLength) |
|
acolwell GONE FROM CHROMIUM
2014/01/11 01:11:25
nit: s/mimeType/contentType/
jrummell
2014/01/11 01:56:56
Done.
| |
| 1714 { | 1714 { |
| 1715 if (!hasEventListeners(EventTypeNames::webkitneedkey)) { | 1715 bool result = false; |
| 1716 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); | 1716 |
| 1717 scheduleEvent(EventTypeNames::error); | 1717 // Send event for prefixed EME. |
| 1718 return false; | 1718 // FIXME: Remove once prefixed EME is removed. |
| 1719 if (hasEventListeners(EventTypeNames::webkitneedkey)) { | |
| 1720 MediaKeyEventInit initializer; | |
| 1721 initializer.keySystem = String(); | |
| 1722 initializer.sessionId = String(); | |
| 1723 initializer.initData = Uint8Array::create(initData, initDataLength); | |
| 1724 initializer.bubbles = false; | |
| 1725 initializer.cancelable = false; | |
| 1726 | |
| 1727 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedke y, initializer); | |
| 1728 event->setTarget(this); | |
| 1729 m_asyncEventQueue->enqueueEvent(event.release()); | |
| 1730 result = true; | |
| 1719 } | 1731 } |
| 1720 | 1732 |
| 1721 MediaKeyEventInit initializer; | 1733 // Send event for non-prefixed EME. |
| 1722 initializer.keySystem = keySystem; | 1734 if (hasEventListeners(EventTypeNames::needkey)) { |
|
acolwell GONE FROM CHROMIUM
2014/01/11 01:11:25
Do we really want to dispatch to both events? ISTM
jrummell
2014/01/11 01:56:56
Good idea. Reordered so unprefixed event is prefer
| |
| 1723 initializer.sessionId = sessionId; | 1735 MediaKeyNeededEventInit initializer; |
| 1724 initializer.initData = Uint8Array::create(initData, initDataLength); | 1736 initializer.contentType = mimeType; |
| 1725 initializer.bubbles = false; | 1737 initializer.initData = Uint8Array::create(initData, initDataLength); |
| 1726 initializer.cancelable = false; | 1738 initializer.bubbles = false; |
| 1739 initializer.cancelable = false; | |
| 1727 | 1740 |
| 1728 RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedkey, i nitializer); | 1741 RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::needke y, initializer); |
| 1729 event->setTarget(this); | 1742 event->setTarget(this); |
| 1730 m_asyncEventQueue->enqueueEvent(event.release()); | 1743 m_asyncEventQueue->enqueueEvent(event.release()); |
| 1731 return true; | 1744 result = true; |
|
acolwell GONE FROM CHROMIUM
2014/01/11 01:11:25
If you take my suggestion above then you should be
jrummell
2014/01/11 01:56:56
Done.
| |
| 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 } | 1745 } |
| 1742 | 1746 |
| 1743 MediaKeyNeededEventInit initializer; | 1747 if (result) |
| 1744 initializer.initData = initData; | 1748 return true; |
| 1745 initializer.bubbles = false; | |
| 1746 initializer.cancelable = false; | |
| 1747 | 1749 |
| 1748 RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::webkitneed key, initializer); | 1750 // Unable to send an event, so send an error. |
| 1749 event->setTarget(this); | 1751 m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); |
| 1750 m_asyncEventQueue->enqueueEvent(event.release()); | 1752 scheduleEvent(EventTypeNames::error); |
| 1751 | 1753 return false; |
| 1752 return true; | |
| 1753 } | 1754 } |
| 1754 | 1755 |
| 1755 blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() | 1756 blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() |
| 1756 { | 1757 { |
| 1757 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; | 1758 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; |
| 1758 } | 1759 } |
| 1759 | 1760 |
| 1760 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys) | 1761 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys) |
| 1761 { | 1762 { |
| 1762 if (m_mediaKeys == mediaKeys) | 1763 if (m_mediaKeys == mediaKeys) |
| (...skipping 2174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3937 { | 3938 { |
| 3938 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); | 3939 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); |
| 3939 } | 3940 } |
| 3940 | 3941 |
| 3941 bool HTMLMediaElement::isInteractiveContent() const | 3942 bool HTMLMediaElement::isInteractiveContent() const |
| 3942 { | 3943 { |
| 3943 return fastHasAttribute(controlsAttr); | 3944 return fastHasAttribute(controlsAttr); |
| 3944 } | 3945 } |
| 3945 | 3946 |
| 3946 } | 3947 } |
| OLD | NEW |