Changeset 207690 in webkit
- Timestamp:
- Oct 21, 2016 11:53:05 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r207689 r207690 1 2016-10-21 Chris Dumez <cdumez@apple.com> 2 3 [Web IDL] MediaControlsHost has invalid operation overloads 4 https://bugs.webkit.org/show_bug.cgi?id=163793 5 6 Reviewed by Darin Adler. 7 8 MediaControlsHost has invalid operation overloads: 9 - sortedTrackListForMenu() 10 - displayNameForTrack() 11 12 The parameter is nullable for both overloads which is not valid IDL. 13 14 - sortedTrackListForMenu(): The parameter is no longer nullable. This is a minor 15 behavior change and it should be safe since this is Apple-specific and only 16 called from mediaControlsApple.js which uses HTMLMediaElement.videoTracks and 17 HTMLMediaElement.audioTracks as input, both of which are not nullable. 18 Note that we could have also kept one of the parameters as nullable to not 19 change behavior but allowing null does not seem useful here. 20 - displayNameForTrack(): Use a union instead of overloading, no behavior change. 21 22 * Modules/mediacontrols/MediaControlsHost.cpp: 23 (WebCore::MediaControlsHost::sortedTrackListForMenu): 24 (WebCore::MediaControlsHost::displayNameForTrack): 25 * Modules/mediacontrols/MediaControlsHost.h: 26 * Modules/mediacontrols/MediaControlsHost.idl: 27 1 28 2016-10-21 Jeremy Jones <jeremyj@apple.com> 2 29 -
trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp
r207423 r207690 85 85 } 86 86 87 Vector<RefPtr<TextTrack>> MediaControlsHost::sortedTrackListForMenu(TextTrackList* trackList) 88 { 89 if (!trackList) 90 return Vector<RefPtr<TextTrack>>(); 91 92 Page* page = m_mediaElement->document().page(); 93 if (!page) 94 return Vector<RefPtr<TextTrack>>(); 95 96 return page->group().captionPreferences().sortedTrackListForMenu(trackList); 97 } 98 99 Vector<RefPtr<AudioTrack>> MediaControlsHost::sortedTrackListForMenu(AudioTrackList* trackList) 100 { 101 if (!trackList) 102 return Vector<RefPtr<AudioTrack>>(); 103 104 Page* page = m_mediaElement->document().page(); 105 if (!page) 106 return Vector<RefPtr<AudioTrack>>(); 107 108 return page->group().captionPreferences().sortedTrackListForMenu(trackList); 109 } 110 111 String MediaControlsHost::displayNameForTrack(TextTrack* track) 87 Vector<RefPtr<TextTrack>> MediaControlsHost::sortedTrackListForMenu(TextTrackList& trackList) 88 { 89 Page* page = m_mediaElement->document().page(); 90 if (!page) 91 return { }; 92 93 return page->group().captionPreferences().sortedTrackListForMenu(&trackList); 94 } 95 96 Vector<RefPtr<AudioTrack>> MediaControlsHost::sortedTrackListForMenu(AudioTrackList& trackList) 97 { 98 Page* page = m_mediaElement->document().page(); 99 if (!page) 100 return { }; 101 102 return page->group().captionPreferences().sortedTrackListForMenu(&trackList); 103 } 104 105 String MediaControlsHost::displayNameForTrack(const Optional<TextOrAudioTrack>& track) 112 106 { 113 107 if (!track) … … 118 112 return emptyString(); 119 113 120 return page->group().captionPreferences().displayNameForTrack(track); 121 } 122 123 String MediaControlsHost::displayNameForTrack(AudioTrack* track) 124 { 125 if (!track) 126 return emptyString(); 127 128 Page* page = m_mediaElement->document().page(); 129 if (!page) 130 return emptyString(); 131 132 return page->group().captionPreferences().displayNameForTrack(track); 114 return WTF::visit([&page](auto& track) { 115 return page->group().captionPreferences().displayNameForTrack(track.get()); 116 }, track.value()); 133 117 } 134 118 -
trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h
r207423 r207690 30 30 #include <bindings/ScriptObject.h> 31 31 #include <wtf/RefCounted.h> 32 #include <wtf/Variant.h> 32 33 #include <wtf/Vector.h> 33 34 #include <wtf/text/WTFString.h> … … 53 54 static const AtomicString& manualKeyword(); 54 55 55 Vector<RefPtr<TextTrack>> sortedTrackListForMenu(TextTrackList*); 56 Vector<RefPtr<AudioTrack>> sortedTrackListForMenu(AudioTrackList*); 57 String displayNameForTrack(TextTrack*); 58 String displayNameForTrack(AudioTrack*); 56 Vector<RefPtr<TextTrack>> sortedTrackListForMenu(TextTrackList&); 57 Vector<RefPtr<AudioTrack>> sortedTrackListForMenu(AudioTrackList&); 58 59 using TextOrAudioTrack = WTF::Variant<RefPtr<TextTrack>, RefPtr<AudioTrack>>; 60 String displayNameForTrack(const Optional<TextOrAudioTrack>&); 61 59 62 TextTrack* captionMenuOffItem(); 60 63 TextTrack* captionMenuAutomaticItem(); -
trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl
r207423 r207690 35 35 NoInterfaceObject, 36 36 ] interface MediaControlsHost { 37 sequence<TextTrack> sortedTrackListForMenu(TextTrackList? trackList); 38 sequence<AudioTrack> sortedTrackListForMenu(AudioTrackList? trackList); 39 DOMString displayNameForTrack(TextTrack? track); 40 DOMString displayNameForTrack(AudioTrack? track); 37 sequence<TextTrack> sortedTrackListForMenu(TextTrackList trackList); 38 sequence<AudioTrack> sortedTrackListForMenu(AudioTrackList trackList); 39 DOMString displayNameForTrack((TextTrack or AudioTrack)? track); 41 40 readonly attribute TextTrack captionMenuOffItem; 42 41 readonly attribute TextTrack captionMenuAutomaticItem;
Note: See TracChangeset
for help on using the changeset viewer.