Changeset 207175 in webkit
- Timestamp:
- Oct 11, 2016 4:11:49 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r207173 r207175 1 2016-10-11 Chris Dumez <cdumez@apple.com> 2 3 Update MediaStream events to stop using legacy [ConstructorTemplate=Event] 4 https://bugs.webkit.org/show_bug.cgi?id=163289 5 6 Reviewed by Sam Weinig. 7 8 Update existing test cases now that we throw more exceptions on bad input. 9 10 * fast/events/constructors/overconstrained-error-event-constructor-expected.txt: 11 * fast/events/constructors/overconstrained-error-event-constructor.html: 12 * fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt: 13 * fast/mediastream/MediaStreamTrackEvent-constructor.html: 14 1 15 2016-10-11 Dean Jackson <dino@apple.com> 2 16 -
trunk/LayoutTests/fast/events/constructors/overconstrained-error-event-constructor-expected.txt
r205024 r207175 16 16 PASS new OverconstrainedErrorEvent('eventType', { error: new OverconstrainedError('fred', 'unsupported constraint') }).error.message is "unsupported constraint" 17 17 PASS new OverconstrainedErrorEvent('eventType', { error: null }).reason is undefined. 18 PASS new OverconstrainedErrorEvent('eventType', { error: 'fake error' }) .error is null19 PASS new OverconstrainedErrorEvent('eventType', { error: [] }) .error is null18 PASS new OverconstrainedErrorEvent('eventType', { error: 'fake error' }) threw exception TypeError: Type error. 19 PASS new OverconstrainedErrorEvent('eventType', { error: [] }) threw exception TypeError: Type error. 20 20 PASS new OverconstrainedErrorEvent('eventType', { bubbles: true, cancelable: true, error: new OverconstrainedError() }).bubbles is true 21 21 PASS new OverconstrainedErrorEvent('eventType', { bubbles: true, cancelable: true, error: new OverconstrainedError() }).cancelable is true -
trunk/LayoutTests/fast/events/constructors/overconstrained-error-event-constructor.html
r205024 r207175 36 36 37 37 shouldBeUndefined("new OverconstrainedErrorEvent('eventType', { error: null }).reason"); 38 should BeNull("new OverconstrainedErrorEvent('eventType', { error: 'fake error' }).error", null);39 should BeNull("new OverconstrainedErrorEvent('eventType', { error: [] }).error", null);38 shouldThrowErrorName("new OverconstrainedErrorEvent('eventType', { error: 'fake error' })", "TypeError"); 39 shouldThrowErrorName("new OverconstrainedErrorEvent('eventType', { error: [] })", "TypeError"); 40 40 41 41 // All initializers are passed. -
trunk/LayoutTests/fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt
r186081 r207175 20 20 21 21 *** Bubbles and cancelable true, invalid track *** 22 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }).bubbles is true 23 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }).cancelable is true 24 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }).track is null 22 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }) threw exception TypeError: Type error. 25 23 26 24 *** Initialize 'track' with a invalid values *** 27 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 10 }) .track is null28 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 'string' }) .track is null29 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: emptyObject }) .track is null30 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: document }) .track is null25 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 10 }) threw exception TypeError: Type error. 26 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 'string' }) threw exception TypeError: Type error. 27 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: emptyObject }) threw exception TypeError: Type error. 28 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: document }) threw exception TypeError: Type error. 31 29 32 30 *** Bubbles and cancelable true, valid track *** -
trunk/LayoutTests/fast/mediastream/MediaStreamTrackEvent-constructor.html
r186081 r207175 34 34 35 35 debug("<br>*** Bubbles and cancelable true, invalid track ***"); 36 shouldBe("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }).bubbles", "true"); 37 shouldBe("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }).cancelable", "true"); 38 shouldBeNull("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack }).track"); 36 shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack })", "TypeError"); 39 37 40 38 debug("<br>*** Initialize 'track' with a invalid values ***"); 41 should BeNull("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 10 }).track");42 should BeNull("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: \'string\' }).track");39 shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 10 })", "TypeError"); 40 shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: \'string\' })", "TypeError"); 43 41 emptyObject = { }; 44 should BeNull("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: emptyObject }).track");45 should BeNull("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: document }).track");42 shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: emptyObject })", "TypeError"); 43 shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: document })", "TypeError"); 46 44 47 45 debug("<br>*** Bubbles and cancelable true, valid track ***"); -
trunk/Source/WebCore/ChangeLog
r207174 r207175 1 2016-10-11 Chris Dumez <cdumez@apple.com> 2 3 Update MediaStream events to stop using legacy [ConstructorTemplate=Event] 4 https://bugs.webkit.org/show_bug.cgi?id=163289 5 6 Reviewed by Sam Weinig. 7 8 Update MediaStream events to stop using legacy [ConstructorTemplate=Event] 9 and use regular constructors instead. 10 11 * Modules/mediastream/MediaStreamEvent.cpp: 12 (WebCore::MediaStreamEvent::create): 13 (WebCore::MediaStreamEvent::MediaStreamEvent): 14 * Modules/mediastream/MediaStreamEvent.h: 15 * Modules/mediastream/MediaStreamEvent.idl: 16 * Modules/mediastream/MediaStreamTrackEvent.cpp: 17 (WebCore::MediaStreamTrackEvent::create): 18 (WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent): 19 * Modules/mediastream/MediaStreamTrackEvent.h: 20 * Modules/mediastream/MediaStreamTrackEvent.idl: 21 * Modules/mediastream/OverconstrainedErrorEvent.h: 22 (WebCore::OverconstrainedErrorEvent::create): 23 (WebCore::OverconstrainedErrorEvent::OverconstrainedErrorEvent): 24 (WebCore::OverconstrainedErrorEvent::~OverconstrainedErrorEvent): Deleted. 25 * Modules/mediastream/OverconstrainedErrorEvent.idl: 26 * Modules/mediastream/RTCDTMFToneChangeEvent.cpp: 27 (WebCore::RTCDTMFToneChangeEvent::create): 28 (WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent): 29 * Modules/mediastream/RTCDTMFToneChangeEvent.h: 30 * Modules/mediastream/RTCDTMFToneChangeEvent.idl: 31 * Modules/mediastream/RTCTrackEvent.cpp: 32 (WebCore::RTCTrackEvent::create): 33 (WebCore::RTCTrackEvent::RTCTrackEvent): 34 * Modules/mediastream/RTCTrackEvent.h: 35 * Modules/mediastream/RTCTrackEvent.idl: 36 1 37 2016-10-11 Chris Dumez <cdumez@apple.com> 2 38 -
trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.cpp
r202625 r207175 38 38 } 39 39 40 Ref<MediaStreamEvent> MediaStreamEvent::create ForBindings(const AtomicString& type, const MediaStreamEventInit& initializer)40 Ref<MediaStreamEvent> MediaStreamEvent::create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 41 41 { 42 return adoptRef(*new MediaStreamEvent(type, initializer ));42 return adoptRef(*new MediaStreamEvent(type, initializer, isTrusted)); 43 43 } 44 44 … … 49 49 } 50 50 51 MediaStreamEvent::MediaStreamEvent(const AtomicString& type, const MediaStreamEventInit& initializer)52 : Event(type, initializer )51 MediaStreamEvent::MediaStreamEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 52 : Event(type, initializer, isTrusted) 53 53 , m_stream(initializer.stream) 54 54 { -
trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.h
r202625 r207175 34 34 namespace WebCore { 35 35 36 struct MediaStreamEventInit : public EventInit {37 RefPtr<MediaStream> stream;38 };39 40 36 class MediaStreamEvent : public Event { 41 37 public: … … 43 39 44 40 static Ref<MediaStreamEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<MediaStream>&&); 45 static Ref<MediaStreamEvent> createForBindings(const AtomicString& type, const MediaStreamEventInit& initializer); 41 42 struct Init : EventInit { 43 RefPtr<MediaStream> stream; 44 }; 45 static Ref<MediaStreamEvent> create(const AtomicString& type, const Init& initializer, IsTrusted = IsTrusted::No); 46 46 47 47 MediaStream* stream() const; … … 51 51 private: 52 52 MediaStreamEvent(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<MediaStream>&&); 53 MediaStreamEvent(const AtomicString& type, const MediaStreamEventInit&);53 MediaStreamEvent(const AtomicString& type, const Init&, IsTrusted); 54 54 55 55 RefPtr<MediaStream> m_stream; -
trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.idl
r202625 r207175 25 25 [ 26 26 Conditional=WEB_RTC, 27 Constructor Template=Event27 Constructor(DOMString type, MediaStreamEventInit eventInitDict), 28 28 ] interface MediaStreamEvent : Event { 29 [InitializedByEventConstructor] readonly attribute MediaStreamstream;29 readonly attribute MediaStream? stream; 30 30 }; 31 31 32 dictionary MediaStreamEventInit : EventInit { 33 MediaStream? stream = null; 34 }; -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.cpp
r204239 r207175 38 38 } 39 39 40 Ref<MediaStreamTrackEvent> MediaStreamTrackEvent::create ForBindings(const AtomicString& type, const MediaStreamTrackEventInit& initializer)40 Ref<MediaStreamTrackEvent> MediaStreamTrackEvent::create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 41 41 { 42 return adoptRef(*new MediaStreamTrackEvent(type, initializer ));42 return adoptRef(*new MediaStreamTrackEvent(type, initializer, isTrusted)); 43 43 } 44 44 … … 49 49 } 50 50 51 MediaStreamTrackEvent::MediaStreamTrackEvent(const AtomicString& type, const MediaStreamTrackEventInit& initializer)52 : Event(type, initializer )51 MediaStreamTrackEvent::MediaStreamTrackEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 52 : Event(type, initializer, isTrusted) 53 53 , m_track(initializer.track) 54 54 { -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.h
r204239 r207175 35 35 class MediaStreamTrack; 36 36 37 struct MediaStreamTrackEventInit : public EventInit {38 RefPtr<MediaStreamTrack> track;39 };40 41 37 class MediaStreamTrackEvent : public Event { 42 38 public: … … 44 40 45 41 static Ref<MediaStreamTrackEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<MediaStreamTrack>&&); 46 static Ref<MediaStreamTrackEvent> createForBindings(const AtomicString& type, const MediaStreamTrackEventInit& initializer); 42 43 struct Init : EventInit { 44 RefPtr<MediaStreamTrack> track; 45 }; 46 static Ref<MediaStreamTrackEvent> create(const AtomicString& type, const Init&, IsTrusted = IsTrusted::No); 47 47 48 48 MediaStreamTrack* track() const; … … 53 53 private: 54 54 MediaStreamTrackEvent(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<MediaStreamTrack>&&); 55 MediaStreamTrackEvent(const AtomicString& type, const MediaStreamTrackEventInit&);55 MediaStreamTrackEvent(const AtomicString& type, const Init&, IsTrusted); 56 56 57 57 RefPtr<MediaStreamTrack> m_track; -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl
r156135 r207175 25 25 [ 26 26 Conditional=MEDIA_STREAM, 27 Constructor Template=Event27 Constructor(DOMString type, optional MediaStreamTrackEventInit eventInitDict), 28 28 ] interface MediaStreamTrackEvent : Event { 29 [InitializedByEventConstructor] readonly attribute MediaStreamTracktrack;29 readonly attribute MediaStreamTrack? track; 30 30 }; 31 31 32 dictionary MediaStreamTrackEventInit : EventInit { 33 // FIXME: The specification says that this member should be required and non-nullable. 34 MediaStreamTrack? track = null; 35 }; -
trunk/Source/WebCore/Modules/mediastream/OverconstrainedErrorEvent.h
r205024 r207175 37 37 namespace WebCore { 38 38 39 struct OverconstrainedErrorEventInit : public EventInit {40 RefPtr<OverconstrainedError> error;41 };42 43 39 class OverconstrainedErrorEvent : public Event { 44 40 public: … … 50 46 } 51 47 52 static Ref<OverconstrainedErrorEvent> createForBindings(const AtomicString& type, const OverconstrainedErrorEventInit& initializer) 48 struct Init : EventInit { 49 RefPtr<OverconstrainedError> error; 50 }; 51 52 static Ref<OverconstrainedErrorEvent> create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted = IsTrusted::No) 53 53 { 54 return adoptRef(*new OverconstrainedErrorEvent(type, initializer ));54 return adoptRef(*new OverconstrainedErrorEvent(type, initializer, isTrusted)); 55 55 } 56 56 … … 64 64 { 65 65 } 66 OverconstrainedErrorEvent(const AtomicString& type, const OverconstrainedErrorEventInit& initializer)67 : Event(type, initializer )66 OverconstrainedErrorEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 67 : Event(type, initializer, isTrusted) 68 68 , m_error(initializer.error) 69 69 { -
trunk/Source/WebCore/Modules/mediastream/OverconstrainedErrorEvent.idl
r205024 r207175 29 29 [ 30 30 Conditional=MEDIA_STREAM, 31 Constructor Template=Event,31 Constructor(DOMString type, optional OverconstrainedErrorEventInit eventInitDict), 32 32 ] interface OverconstrainedErrorEvent : Event { 33 [InitializedByEventConstructor]readonly attribute OverconstrainedError? error;33 readonly attribute OverconstrainedError? error; 34 34 }; 35 35 36 dictionary OverconstrainedErrorEventInit : EventInit { 37 OverconstrainedError? error = null; 38 }; -
trunk/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.cpp
r198492 r207175 38 38 } 39 39 40 Ref<RTCDTMFToneChangeEvent> RTCDTMFToneChangeEvent::create ForBindings(const AtomicString& type, const RTCDTMFToneChangeEventInit& initializer)40 Ref<RTCDTMFToneChangeEvent> RTCDTMFToneChangeEvent::create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 41 41 { 42 ASSERT_UNUSED(type, type == eventNames().tonechangeEvent); 43 return adoptRef(*new RTCDTMFToneChangeEvent(initializer)); 42 return adoptRef(*new RTCDTMFToneChangeEvent(type, initializer, isTrusted)); 44 43 } 45 44 … … 50 49 } 51 50 52 RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent(const RTCDTMFToneChangeEventInit& initializer)53 : Event( eventNames().tonechangeEvent, initializer)51 RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 52 : Event(type, initializer, isTrusted) 54 53 , m_tone(initializer.tone) 55 54 { -
trunk/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.h
r198492 r207175 34 34 namespace WebCore { 35 35 36 struct RTCDTMFToneChangeEventInit : public EventInit {37 String tone;38 };39 40 36 class RTCDTMFToneChangeEvent : public Event { 41 37 public: … … 43 39 44 40 static Ref<RTCDTMFToneChangeEvent> create(const String& tone); 45 static Ref<RTCDTMFToneChangeEvent> createForBindings(const AtomicString& type, const RTCDTMFToneChangeEventInit& initializer); 41 42 struct Init : EventInit { 43 String tone; 44 }; 45 46 static Ref<RTCDTMFToneChangeEvent> create(const AtomicString& type, const Init&, IsTrusted = IsTrusted::No); 46 47 47 48 const String& tone() const; … … 51 52 private: 52 53 explicit RTCDTMFToneChangeEvent(const String& tone); 53 explicit RTCDTMFToneChangeEvent(const RTCDTMFToneChangeEventInit&);54 RTCDTMFToneChangeEvent(const AtomicString& type, const Init&, IsTrusted); 54 55 55 56 String m_tone; -
trunk/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl
r198492 r207175 25 25 26 26 [ 27 NoInterfaceObject,28 27 Conditional=WEB_RTC, 29 Constructor Template=Event28 Constructor(DOMString type, optional RTCDTMFToneChangeEventInit eventInitDict), 30 29 ] interface RTCDTMFToneChangeEvent : Event { 31 [InitializedByEventConstructor]readonly attribute DOMString tone;30 readonly attribute DOMString tone; 32 31 }; 32 33 dictionary RTCDTMFToneChangeEventInit : EventInit { 34 DOMString tone = ""; 35 }; -
trunk/Source/WebCore/Modules/mediastream/RTCTrackEvent.cpp
r201851 r207175 46 46 } 47 47 48 Ref<RTCTrackEvent> RTCTrackEvent::create ForBindings(const AtomicString& type, const RTCTrackEventInit& initializer)48 Ref<RTCTrackEvent> RTCTrackEvent::create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 49 49 { 50 return adoptRef(*new RTCTrackEvent(type, initializer ));50 return adoptRef(*new RTCTrackEvent(type, initializer, isTrusted)); 51 51 } 52 52 … … 60 60 } 61 61 62 RTCTrackEvent::RTCTrackEvent(const AtomicString& type, const RTCTrackEventInit& initializer)63 : Event(type, initializer )62 RTCTrackEvent::RTCTrackEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted) 63 : Event(type, initializer, isTrusted) 64 64 , m_receiver(initializer.receiver) 65 65 , m_track(initializer.track) -
trunk/Source/WebCore/Modules/mediastream/RTCTrackEvent.h
r201851 r207175 46 46 typedef Vector<RefPtr<MediaStream>> MediaStreamArray; 47 47 48 struct RTCTrackEventInit : public EventInit {49 RefPtr<RTCRtpReceiver> receiver;50 RefPtr<MediaStreamTrack> track;51 MediaStreamArray streams;52 RefPtr<RTCRtpTransceiver> transceiver;53 };54 55 48 class RTCTrackEvent : public Event { 56 49 public: 57 50 static Ref<RTCTrackEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<RTCRtpReceiver>&&, RefPtr<MediaStreamTrack>&&, MediaStreamArray&&, RefPtr<RTCRtpTransceiver>&&); 58 static Ref<RTCTrackEvent> createForBindings(const AtomicString& type, const RTCTrackEventInit&); 51 52 struct Init : EventInit { 53 RefPtr<RTCRtpReceiver> receiver; 54 RefPtr<MediaStreamTrack> track; 55 MediaStreamArray streams; 56 RefPtr<RTCRtpTransceiver> transceiver; 57 }; 58 static Ref<RTCTrackEvent> create(const AtomicString& type, const Init&, IsTrusted = IsTrusted::No); 59 59 60 60 RTCRtpReceiver* receiver() const { return m_receiver.get(); } … … 67 67 private: 68 68 RTCTrackEvent(const AtomicString& type, bool canBubble, bool cancelable, RefPtr<RTCRtpReceiver>&&, RefPtr<MediaStreamTrack>&&, MediaStreamArray&&, RefPtr<RTCRtpTransceiver>&&); 69 RTCTrackEvent(const AtomicString& type, const RTCTrackEventInit&);69 RTCTrackEvent(const AtomicString& type, const Init&, IsTrusted); 70 70 71 71 RefPtr<RTCRtpReceiver> m_receiver; -
trunk/Source/WebCore/Modules/mediastream/RTCTrackEvent.idl
r204336 r207175 31 31 [ 32 32 Conditional=WEB_RTC, 33 Constructor Template=Event33 Constructor(DOMString type, optional RTCTrackEventInit eventInitDict), 34 34 ] interface RTCTrackEvent : Event { 35 [InitializedByEventConstructor] readonly attribute RTCRtpReceiver receiver;36 [InitializedByEventConstructor] readonly attribute MediaStreamTrack track;35 [InitializedByEventConstructor] readonly attribute RTCRtpReceiver? receiver; 36 [InitializedByEventConstructor] readonly attribute MediaStreamTrack? track; 37 37 [InitializedByEventConstructor] readonly attribute sequence<MediaStream> streams; 38 [InitializedByEventConstructor] readonly attribute RTCRtpTransceiver transceiver;38 [InitializedByEventConstructor] readonly attribute RTCRtpTransceiver? transceiver; 39 39 }; 40 41 dictionary RTCTrackEventInit : EventInit { 42 sequence<MediaStream> streams = []; 43 44 // FIXME: The specification says that these members should be required and non-nullable. 45 RTCRtpReceiver? receiver = null; 46 MediaStreamTrack? track = null; 47 RTCRtpTransceiver? transceiver = null; 48 };
Note: See TracChangeset
for help on using the changeset viewer.