Changeset 195592 in webkit
- Timestamp:
- Jan 26, 2016 9:17:49 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r195590 r195592 1 2016-01-26 Eric Carlson <eric.carlson@apple.com> 2 3 LayoutTest media/airplay-target-availability.html is flaky 4 https://bugs.webkit.org/show_bug.cgi?id=153100 5 <rdar://problem/24346796> 6 7 Reviewed by Daniel Bates. 8 9 * media/airplay-target-availability-expected.txt: 10 * media/airplay-target-availability.html: 11 1 12 2016-01-26 Daniel Bates <dabates@apple.com> 2 13 -
trunk/LayoutTests/media/airplay-target-availability-expected.txt
r194681 r195592 3 3 Test that 'webkitplaybacktargetavailabilitychanged' event is sent when at least one video element has playable media. 4 4 5 EVENT( webkitplaybacktargetavailabilitychanged ) 6 EXPECTED (event.availability == 'not-available') OK 5 7 6 EVENT: 'webkitplaybacktargetavailabilitychanged', event.availability = 'not-available' 8 ** simulate device becoming available 9 EVENT( webkitplaybacktargetavailabilitychanged ) 7 10 8 9 EVENT: 'webkitplaybacktargetavailabilitychanged', event.availability = 'not-available' 10 11 ** setting src on video that does not have event listener 12 13 EVENT: 'webkitplaybacktargetavailabilitychanged', event.availability = 'available' 11 ** set src on video that does not have event listener 12 EVENT( webkitplaybacktargetavailabilitychanged ) 13 EXPECTED (event.availability == 'available') OK 14 14 15 15 END OF TEST -
trunk/LayoutTests/media/airplay-target-availability.html
r194672 r195592 1 1 <html> 2 2 <head> 3 <script src= "media-file.js"></script>4 <script src= "video-test.js"></script>3 <script src='media-file.js'></script> 4 <script src='video-test.js'></script> 5 5 <script> 6 6 var video1; … … 14 14 if (window.internals) 15 15 internals.setMockMediaPlaybackTargetPickerEnabled(true); 16 17 video1.addEventListener('webkitplaybacktargetavailabilitychanged', targetAvailabilityChanged); 18 setTimeout(setSource, 200); 16 17 video1.addEventListener('webkitplaybacktargetavailabilitychanged', noSource, true); 19 18 } 20 19 21 function targetAvailabilityChanged(event)20 function noSource(event) 22 21 { 23 consoleWrite(`<br>EVENT: '${event.type}', event.availability = '${event.availability}'<br>`);22 video1.removeEventListener('webkitplaybacktargetavailabilitychanged', noSource, true); 24 23 25 if (event.availability != "available") 24 consoleWrite(`EVENT( ${event.type} )`); 25 testExpected('event.availability', 'not-available'); 26 27 video1.addEventListener('webkitplaybacktargetavailabilitychanged', haveTarget, true); 28 29 consoleWrite('<br>** simulate device becoming available'); 30 if (window.internals) 31 internals.setMockMediaPlaybackTargetPickerState('Sleepy TV', 'DeviceAvailable'); 32 } 33 34 function haveTarget(event) 35 { 36 // setMockMediaPlaybackTargetPickerState happens asynchronously in WK2 and a 37 // 'webkitplaybacktargetavailabilitychanged' is always sent when an event listener 38 // is added, so we may get a "not available" event first. 39 if (event.availability == 'not-available') 26 40 return; 27 41 28 if (event.availability == "available" && video2.src == "") { 29 failTest("Event sent before any video is a candidate for airplay"); 30 return; 31 } 32 42 video1.removeEventListener('webkitplaybacktargetavailabilitychanged', haveTarget, true); 43 consoleWrite(`EVENT( ${event.type} )`); 44 45 consoleWrite('<br>** set src on video that does not have event listener'); 46 47 video2.src = findMediaFile('video', 'content/test'); 48 video1.addEventListener('webkitplaybacktargetavailabilitychanged', withSource, true); 49 } 50 51 function withSource(event) 52 { 53 consoleWrite(`EVENT( ${event.type} )`); 54 testExpected('event.availability', 'available'); 55 consoleWrite(''); 33 56 endTest(); 34 }35 36 function setSource()37 {38 consoleWrite('** setting src on video that does not have event listener');39 if (window.internals)40 internals.setMockMediaPlaybackTargetPickerState("Sleepy TV", "DeviceAvailable");41 video2.src = findMediaFile('video', 'content/test');42 57 } 43 58 … … 45 60 </head> 46 61 47 <body onload= "start()">62 <body onload='start()'> 48 63 <video controls></video> 49 64 <br> -
trunk/Source/WebCore/ChangeLog
r195591 r195592 1 2016-01-26 Eric Carlson <eric.carlson@apple.com> 2 3 LayoutTest media/airplay-target-availability.html is flaky 4 https://bugs.webkit.org/show_bug.cgi?id=153100 5 <rdar://problem/24346796> 6 7 Reviewed by Daniel Bates. 8 9 No new tests, media/airplay-target-availability.html was updated 10 11 * Modules/mediasession/WebMediaSessionManager.cpp: 12 (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a configuration scan if 13 any of the config flags have changed. 14 (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Update logging. 15 1 16 2016-01-25 Carlos Garcia Campos <cgarcia@igalia.com> 2 17 -
trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp
r194672 r195592 216 216 217 217 MediaProducer::MediaStateFlags updateConfigurationFlags = MediaProducer::RequiresPlaybackTargetMonitoring | MediaProducer::HasPlaybackTargetAvailabilityListener | MediaProducer::HasAudioOrVideo; 218 if ( !flagsAreSet(oldFlags, updateConfigurationFlags) && flagsAreSet(newFlags,updateConfigurationFlags))218 if ((oldFlags & updateConfigurationFlags) != (newFlags & updateConfigurationFlags)) 219 219 scheduleDelayedTask(TargetMonitoringConfigurationTask); 220 220 … … 359 359 } 360 360 361 LOG(Media, "WebMediaSessionManager::configurePlaybackTargetMonitoring - monitoringRequired = %i", (int)monitoringRequired);361 LOG(Media, "WebMediaSessionManager::configurePlaybackTargetMonitoring - monitoringRequired = %i", static_cast<int>(monitoringRequired || (hasAvailabilityListener && haveClientWithMedia))); 362 362 363 363 if (monitoringRequired || (hasAvailabilityListener && haveClientWithMedia))
Note: See TracChangeset
for help on using the changeset viewer.