Changeset 203982 in webkit
- Timestamp:
- Aug 1, 2016 12:49:02 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r203977 r203982 1 2016-08-01 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac][iOS] Adopt MediaRemote "seek to playback position" 4 https://bugs.webkit.org/show_bug.cgi?id=160405 5 <rdar://problem/27547583> 6 7 Reviewed by Dean Jackson. 8 9 * media/remote-control-command-seek-expected.txt: Added. 10 * media/remote-control-command-seek.html: Added. 11 1 12 2016-08-01 Adrian Perez de Castro <aperez@igalia.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r203981 r203982 1 2016-08-01 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac][iOS] Adopt MediaRemote "seek to playback position" 4 https://bugs.webkit.org/show_bug.cgi?id=160405 5 <rdar://problem/27547583> 6 7 Reviewed by Dean Jackson. 8 9 Test: media/remote-control-command-seek.html 10 11 * Modules/webaudio/AudioContext.h: Update for didReceiveRemoteControlCommand argument change. 12 13 * html/HTMLMediaElement.cpp: 14 (WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Support SeekToPlaybackPositionCommand. 15 Drive by fix, support Stop command. 16 (WebCore::HTMLMediaElement::supportsSeeking): New. 17 * html/HTMLMediaElement.h: 18 19 * platform/RemoteCommandListener.h: 20 (WebCore::RemoteCommandListenerClient::didReceiveRemoteControlCommand): Add command argument. 21 (WebCore::RemoteCommandListenerClient::supportsSeeking): New. 22 (WebCore::RemoteCommandListener::updateSupportedCommands): Ditto. 23 (WebCore::RemoteCommandListener::client): Ditto. 24 25 * platform/audio/PlatformMediaSession.cpp: 26 (WebCore::PlatformMediaSession::didReceiveRemoteControlCommand): Add command argument. 27 (WebCore::PlatformMediaSession::supportsSeeking): New, pass through to client. 28 * platform/audio/PlatformMediaSession.h: 29 30 * platform/audio/PlatformMediaSessionManager.cpp: 31 (WebCore::PlatformMediaSessionManager::setCurrentSession): Tell remote command listener to 32 update supported commands. 33 (WebCore::PlatformMediaSessionManager::currentSession): Make const. 34 (WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand): Add command argument. 35 (WebCore::PlatformMediaSessionManager::supportsSeeking): New, pass through to session. 36 * platform/audio/PlatformMediaSessionManager.h: 37 38 * platform/ios/RemoteCommandListenerIOS.h: 39 (WebCore::RemoteCommandListenerIOS::createWeakPtr): 40 * platform/ios/RemoteCommandListenerIOS.mm: 41 (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Support changePlaybackPositionCommand. 42 (WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS): Remove seekToTime target. 43 (WebCore::RemoteCommandListenerIOS::updateSupportedCommands): Update changePlaybackPositionCommand. 44 45 * platform/mac/MediaRemoteSoftLink.cpp: 46 * platform/mac/MediaRemoteSoftLink.h: 47 48 * platform/mac/RemoteCommandListenerMac.h: 49 * platform/mac/RemoteCommandListenerMac.mm: 50 (WebCore::RemoteCommandListenerMac::updateSupportedCommands): New, split out of constructor. 51 (WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): Split setup logic out into 52 updateSupportedCommands. Support MRMediaRemoteCommandSeekToPlaybackPosition. Don't assert when 53 receiving an unsupported command, it happens. Return error when a command isn't supported or 54 fails. 55 56 * testing/Internals.cpp: 57 (WebCore::Internals::postRemoteControlCommand): Add command argument parameter. Support 58 seektoplaybackposition. 59 * testing/Internals.h: 60 * testing/Internals.idl: 61 1 62 2016-08-01 Anders Carlsson <andersca@apple.com> 2 63 -
trunk/Source/WebCore/Modules/webaudio/AudioContext.h
r201013 r203982 315 315 void suspendPlayback() override; 316 316 bool canReceiveRemoteControlCommands() const override { return false; } 317 void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override { } 317 void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument*) override { } 318 bool supportsSeeking() const override { return false; } 318 319 bool shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType) const override { return false; } 319 320 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r203931 r203982 6838 6838 } 6839 6839 6840 void HTMLMediaElement::didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType command )6840 void HTMLMediaElement::didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType command, const PlatformMediaSession::RemoteCommandArgument* argument) 6841 6841 { 6842 6842 LOG(Media, "HTMLMediaElement::didReceiveRemoteControlCommand(%p) - %i", this, static_cast<int>(command)); … … 6847 6847 play(); 6848 6848 break; 6849 case PlatformMediaSession::StopCommand: 6849 6850 case PlatformMediaSession::PauseCommand: 6850 6851 pause(); … … 6863 6864 endScanning(); 6864 6865 break; 6866 case PlatformMediaSession::SeekToPlaybackPositionCommand: 6867 ASSERT(argument); 6868 if (argument) 6869 fastSeek(argument->asDouble); 6870 break; 6865 6871 default: 6866 6872 { } // Do nothing 6867 6873 } 6874 } 6875 6876 bool HTMLMediaElement::supportsSeeking() const 6877 { 6878 return !isLiveStream(); 6868 6879 } 6869 6880 -
trunk/Source/WebCore/html/HTMLMediaElement.h
r203066 r203982 617 617 618 618 bool mediaPlayerShouldWaitForResponseToAuthenticationChallenge(const AuthenticationChallenge&) override; 619 void mediaPlayerHandlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType command) override { didReceiveRemoteControlCommand(command ); }619 void mediaPlayerHandlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType command) override { didReceiveRemoteControlCommand(command, nullptr); } 620 620 String mediaPlayerSourceApplicationIdentifier() const override; 621 621 Vector<String> mediaPlayerPreferredAudioCharacteristics() const override; … … 758 758 double mediaSessionCurrentTime() const override { return currentTime(); } 759 759 bool canReceiveRemoteControlCommands() const override { return true; } 760 void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override; 760 void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument*) override; 761 bool supportsSeeking() const override; 761 762 bool shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType) const override; 762 763 bool shouldOverrideBackgroundLoadingRestriction() const override; -
trunk/Source/WebCore/platform/RemoteCommandListener.h
r185006 r203982 35 35 public: 36 36 virtual ~RemoteCommandListenerClient() { } 37 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) = 0; 37 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument*) = 0; 38 virtual bool supportsSeeking() const = 0; 38 39 }; 39 40 … … 44 45 virtual ~RemoteCommandListener() { } 45 46 47 virtual void updateSupportedCommands() { } 48 49 RemoteCommandListenerClient& client() const { return m_client; } 50 46 51 protected: 47 52 RemoteCommandListenerClient& m_client; -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp
r203388 r203982 243 243 } 244 244 245 void PlatformMediaSession::didReceiveRemoteControlCommand(RemoteControlCommandType command) 246 { 247 m_client.didReceiveRemoteControlCommand(command); 245 void PlatformMediaSession::didReceiveRemoteControlCommand(RemoteControlCommandType command, const PlatformMediaSession::RemoteCommandArgument* argument) 246 { 247 m_client.didReceiveRemoteControlCommand(command, argument); 248 } 249 250 bool PlatformMediaSession::supportsSeeking() const 251 { 252 return m_client.supportsSeeking(); 248 253 } 249 254 -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.h
r202425 r203982 115 115 #endif 116 116 117 typedef union { 118 double asDouble; 119 } RemoteCommandArgument; 120 117 121 enum RemoteControlCommandType { 118 122 NoCommand, … … 125 129 BeginSeekingForwardCommand, 126 130 EndSeekingForwardCommand, 131 SeekToPlaybackPositionCommand, 127 132 }; 128 133 bool canReceiveRemoteControlCommands() const; 129 void didReceiveRemoteControlCommand(RemoteControlCommandType); 134 void didReceiveRemoteControlCommand(RemoteControlCommandType, const RemoteCommandArgument* argument = nullptr); 135 bool supportsSeeking() const; 130 136 131 137 enum DisplayType { … … 203 209 204 210 virtual bool canReceiveRemoteControlCommands() const = 0; 205 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) = 0; 211 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument*) = 0; 212 virtual bool supportsSeeking() const = 0; 206 213 207 214 virtual void setShouldBufferData(bool) { } -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
r202642 r203982 267 267 m_sessions.remove(index); 268 268 m_sessions.insert(0, &session); 269 if (m_remoteCommandListener) 270 m_remoteCommandListener->updateSupportedCommands(); 269 271 270 272 LOG(Media, "PlatformMediaSessionManager::setCurrentSession - session moved from index %zu to 0", index); 271 273 } 272 274 273 PlatformMediaSession* PlatformMediaSessionManager::currentSession() 275 PlatformMediaSession* PlatformMediaSessionManager::currentSession() const 274 276 { 275 277 if (!m_sessions.size()) … … 345 347 #endif 346 348 347 void PlatformMediaSessionManager::didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType command )349 void PlatformMediaSessionManager::didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType command, const PlatformMediaSession::RemoteCommandArgument* argument) 348 350 { 349 351 PlatformMediaSession* activeSession = currentSession(); 350 352 if (!activeSession || !activeSession->canReceiveRemoteControlCommands()) 351 353 return; 352 activeSession->didReceiveRemoteControlCommand(command); 354 activeSession->didReceiveRemoteControlCommand(command, argument); 355 } 356 357 bool PlatformMediaSessionManager::supportsSeeking() const 358 { 359 PlatformMediaSession* activeSession = currentSession(); 360 if (!activeSession) 361 return false; 362 return activeSession->supportsSeeking(); 353 363 } 354 364 -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
r202425 r203982 91 91 92 92 void setCurrentSession(PlatformMediaSession&); 93 PlatformMediaSession* currentSession() ;93 PlatformMediaSession* currentSession() const; 94 94 95 95 PlatformMediaSession* currentSessionMatching(std::function<bool(const PlatformMediaSession&)>); … … 113 113 114 114 // RemoteCommandListenerClient 115 WEBCORE_EXPORT void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override; 115 WEBCORE_EXPORT void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument*) override; 116 WEBCORE_EXPORT bool supportsSeeking() const override; 116 117 117 118 // AudioHardwareListenerClient -
trunk/Source/WebCore/platform/ios/RemoteCommandListenerIOS.h
r166101 r203982 47 47 protected: 48 48 WeakPtr<RemoteCommandListenerIOS> createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); } 49 49 void updateSupportedCommands() override; 50 50 51 WeakPtrFactory<RemoteCommandListenerIOS> m_weakPtrFactory; 51 52 RetainPtr<id> m_playTarget; … … 54 55 RetainPtr<id> m_seekForwardTarget; 55 56 RetainPtr<id> m_seekBackwardTarget; 57 RetainPtr<id> m_seekToTimeTarget; 56 58 }; 57 59 -
trunk/Source/WebCore/platform/ios/RemoteCommandListenerIOS.mm
r185006 r203982 37 37 SOFT_LINK_CLASS(MediaPlayer, MPRemoteCommandCenter) 38 38 SOFT_LINK_CLASS(MediaPlayer, MPSeekCommandEvent) 39 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90100 40 SOFT_LINK_CLASS(MediaPlayer, MPChangePlaybackPositionCommandEvent) 41 #endif 39 42 40 43 namespace WebCore { … … 56 59 if (!weakThis) 57 60 return; 58 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::PauseCommand );61 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::PauseCommand, nullptr); 59 62 }); 60 63 … … 66 69 if (!weakThis) 67 70 return; 68 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::PlayCommand );71 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::PlayCommand, nullptr); 69 72 }); 70 73 … … 76 79 if (!weakThis) 77 80 return; 78 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::TogglePlayPauseCommand );81 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::TogglePlayPauseCommand, nullptr); 79 82 }); 80 83 … … 91 94 if (!weakThis) 92 95 return; 93 weakThis->m_client.didReceiveRemoteControlCommand(command );96 weakThis->m_client.didReceiveRemoteControlCommand(command, nullptr); 94 97 }); 95 98 … … 106 109 if (!weakThis) 107 110 return; 108 weakThis->m_client.didReceiveRemoteControlCommand(command );111 weakThis->m_client.didReceiveRemoteControlCommand(command, nullptr); 109 112 }); 110 113 111 114 return MPRemoteCommandHandlerStatusSuccess; 112 115 }]; 116 117 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90100 118 m_seekToTimeTarget = [[center changePlaybackPositionCommand] addTargetWithHandler:^(MPRemoteCommandEvent *event) { 119 ASSERT([event isKindOfClass:getMPChangePlaybackPositionCommandEventClass()]); 120 121 if (!client.supportsSeeking()) 122 return MPRemoteCommandHandlerStatusCommandFailed; 123 124 MPChangePlaybackPositionCommandEvent* seekEvent = static_cast<MPChangePlaybackPositionCommandEvent *>(event); 125 PlatformMediaSession::RemoteCommandArgument argument { [seekEvent positionTime] }; 126 127 callOnMainThread([weakThis, argument] { 128 if (!weakThis) 129 return; 130 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::TogglePlayPauseCommand, &argument); 131 }); 132 133 return MPRemoteCommandHandlerStatusSuccess; 134 }]; 135 #endif 113 136 } 114 137 … … 121 144 [[center seekForwardCommand] removeTarget:m_seekForwardTarget.get()]; 122 145 [[center seekBackwardCommand] removeTarget:m_seekBackwardTarget.get()]; 146 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90100 147 [[center changePlaybackPositionCommand] removeTarget:m_seekToTimeTarget.get()]; 148 #endif 149 } 150 151 void RemoteCommandListenerIOS::updateSupportedCommands() 152 { 153 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90100 154 [[[getMPRemoteCommandCenterClass() sharedCommandCenter] changePlaybackPositionCommand] setEnabled:!!client().supportsSeeking()]; 155 #endif 123 156 } 124 157 -
trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.cpp
r202642 r203982 47 47 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, MediaRemote, kMRMediaRemoteNowPlayingInfoElapsedTime, CFStringRef); 48 48 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, MediaRemote, kMRMediaRemoteNowPlayingInfoPlaybackRate, CFStringRef); 49 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, MediaRemote, kMRMediaRemoteOptionPlaybackPosition, CFStringRef); 49 50 50 51 #endif // USE(MEDIAREMOTE) -
trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.h
r202642 r203982 62 62 SOFT_LINK_CONSTANT_FOR_HEADER(WebCore, MediaRemote, kMRMediaRemoteNowPlayingInfoPlaybackRate, CFStringRef); 63 63 #define kMRMediaRemoteNowPlayingInfoPlaybackRate get_MediaRemote_kMRMediaRemoteNowPlayingInfoPlaybackRate() 64 SOFT_LINK_CONSTANT_FOR_HEADER(WebCore, MediaRemote, kMRMediaRemoteOptionPlaybackPosition, CFStringRef); 65 #define kMRMediaRemoteOptionPlaybackPosition get_MediaRemote_kMRMediaRemoteOptionPlaybackPosition() 64 66 65 67 #endif // USE(MEDIAREMOTE) -
trunk/Source/WebCore/platform/mac/RemoteCommandListenerMac.h
r202642 r203982 43 43 WeakPtr<RemoteCommandListenerMac> createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); } 44 44 45 void updateSupportedCommands() override; 46 45 47 WeakPtrFactory<RemoteCommandListenerMac> m_weakPtrFactory { this }; 46 48 void* m_commandHandler { nullptr }; -
trunk/Source/WebCore/platform/mac/RemoteCommandListenerMac.mm
r202642 r203982 41 41 } 42 42 43 RemoteCommandListenerMac::RemoteCommandListenerMac(RemoteCommandListenerClient& client) 44 : RemoteCommandListener(client) 43 void RemoteCommandListenerMac::updateSupportedCommands() 45 44 { 46 45 #if USE(MEDIAREMOTE) … … 67 66 } 68 67 68 auto seekCommandInfo = adoptCF(MRMediaRemoteCommandInfoCreate(kCFAllocatorDefault)); 69 MRMediaRemoteCommandInfoSetCommand(seekCommandInfo.get(), MRMediaRemoteCommandSeekToPlaybackPosition); 70 MRMediaRemoteCommandInfoSetEnabled(seekCommandInfo.get(), client().supportsSeeking()); 71 CFArrayAppendValue(commandInfoArray.get(), seekCommandInfo.get()); 72 69 73 MRMediaRemoteSetSupportedCommands(commandInfoArray.get(), MRMediaRemoteGetLocalOrigin(), nullptr, nullptr); 74 #endif // USE(MEDIAREMOTE) 75 } 76 77 RemoteCommandListenerMac::RemoteCommandListenerMac(RemoteCommandListenerClient& client) 78 : RemoteCommandListener(client) 79 { 80 #if USE(MEDIAREMOTE) 81 if (!isMediaRemoteFrameworkAvailable()) 82 return; 83 84 updateSupportedCommands(); 70 85 71 86 auto weakThis = createWeakPtr(); 72 87 m_commandHandler = MRMediaRemoteAddAsyncCommandHandlerBlock(^(MRMediaRemoteCommand command, CFDictionaryRef options, void(^completion)(CFArrayRef)) { 73 UNUSED_PARAM(options); 88 89 LOG(Media, "RemoteCommandListenerMac::RemoteCommandListenerMac - received command %u", command); 74 90 75 91 PlatformMediaSession::RemoteControlCommandType platformCommand { PlatformMediaSession::NoCommand }; 92 PlatformMediaSession::RemoteCommandArgument argument { 0 }; 93 MRMediaRemoteCommandHandlerStatus status = MRMediaRemoteCommandHandlerStatusSuccess; 76 94 77 95 switch (command) { … … 81 99 case MRMediaRemoteCommandPause: 82 100 platformCommand = PlatformMediaSession::PauseCommand; 101 break; 102 case MRMediaRemoteCommandStop: 103 platformCommand = PlatformMediaSession::StopCommand; 83 104 break; 84 105 case MRMediaRemoteCommandTogglePlayPause: … … 97 118 platformCommand = PlatformMediaSession::EndSeekingBackwardCommand; 98 119 break; 120 case MRMediaRemoteCommandSeekToPlaybackPosition: { 121 if (!client.supportsSeeking()) { 122 status = MRMediaRemoteCommandHandlerStatusCommandFailed; 123 break; 124 } 125 126 CFNumberRef positionRef = static_cast<CFNumberRef>(CFDictionaryGetValue(options, kMRMediaRemoteOptionPlaybackPosition)); 127 if (!positionRef) { 128 status = MRMediaRemoteCommandHandlerStatusCommandFailed; 129 break; 130 } 131 132 CFNumberGetValue(positionRef, kCFNumberDoubleType, &argument.asDouble); 133 platformCommand = PlatformMediaSession::SeekToPlaybackPositionCommand; 134 break; 135 } 99 136 default: 100 ASSERT_NOT_REACHED(); 137 LOG(Media, "RemoteCommandListenerMac::RemoteCommandListenerMac - command %u not supported!", command); 138 status = MRMediaRemoteCommandHandlerStatusCommandFailed; 139 return; 101 140 }; 102 141 103 142 if (!weakThis) 104 143 return; 105 weakThis->m_client.didReceiveRemoteControlCommand(platformCommand );106 completion(static_cast<CFArrayRef>(@[@ 0]));144 weakThis->m_client.didReceiveRemoteControlCommand(platformCommand, &argument); 145 completion(static_cast<CFArrayRef>(@[@(status)])); 107 146 }); 108 147 #endif // USE(MEDIAREMOTE) -
trunk/Source/WebCore/testing/Internals.cpp
r203644 r203982 2881 2881 } 2882 2882 2883 void Internals::postRemoteControlCommand(const String& commandString, ExceptionCode& ec)2883 void Internals::postRemoteControlCommand(const String& commandString, float argument, ExceptionCode& ec) 2884 2884 { 2885 2885 PlatformMediaSession::RemoteControlCommandType command; 2886 2886 PlatformMediaSession::RemoteCommandArgument parameter { argument }; 2887 2887 2888 if (equalLettersIgnoringASCIICase(commandString, "play")) 2888 2889 command = PlatformMediaSession::PlayCommand; … … 2901 2902 else if (equalLettersIgnoringASCIICase(commandString, "endseekingforward")) 2902 2903 command = PlatformMediaSession::EndSeekingForwardCommand; 2904 else if (equalLettersIgnoringASCIICase(commandString, "seektoplaybackposition")) 2905 command = PlatformMediaSession::SeekToPlaybackPositionCommand; 2903 2906 else { 2904 2907 ec = INVALID_ACCESS_ERR; … … 2906 2909 } 2907 2910 2908 PlatformMediaSessionManager::sharedManager().didReceiveRemoteControlCommand(command );2911 PlatformMediaSessionManager::sharedManager().didReceiveRemoteControlCommand(command, ¶meter); 2909 2912 } 2910 2913 -
trunk/Source/WebCore/testing/Internals.h
r203623 r203982 412 412 void setMediaSessionRestrictions(const String& mediaType, const String& restrictions, ExceptionCode&); 413 413 void setMediaElementRestrictions(HTMLMediaElement&, const String& restrictions); 414 void postRemoteControlCommand(const String&, ExceptionCode&);414 void postRemoteControlCommand(const String&, float argument, ExceptionCode&); 415 415 bool elementIsBlockingDisplaySleep(HTMLMediaElement&) const; 416 416 #endif -
trunk/Source/WebCore/testing/Internals.idl
r203623 r203982 407 407 [Conditional=VIDEO] void setMediaElementRestrictions(HTMLMediaElement element, DOMString restrictions); 408 408 [Conditional=WEB_AUDIO] void setAudioContextRestrictions(AudioContext context, DOMString restrictions); 409 [Conditional=VIDEO, RaisesException] void postRemoteControlCommand(DOMString command );409 [Conditional=VIDEO, RaisesException] void postRemoteControlCommand(DOMString command, optional unrestricted float argument = 0); 410 410 [Conditional=WIRELESS_PLAYBACK_TARGET] void setMockMediaPlaybackTargetPickerEnabled(boolean enabled); 411 411 [Conditional=WIRELESS_PLAYBACK_TARGET, RaisesException] void setMockMediaPlaybackTargetPickerState(DOMString deviceName, DOMString deviceState);
Note: See TracChangeset
for help on using the changeset viewer.