haikuwebkit/LayoutTests/media/airplay-target-availability...

70 lines
2.6 KiB
HTML
Raw Permalink Normal View History

AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
<html>
<head>
<script src='media-file.js'></script>
<script src='video-test.js'></script>
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
<script>
var video1;
var video2;
function start()
{
video1 = document.getElementsByTagName('video')[0];
video2 = document.getElementsByTagName('video')[1];
if (window.internals)
internals.setMockMediaPlaybackTargetPickerEnabled(true);
video1.addEventListener('webkitplaybacktargetavailabilitychanged', noSource, true);
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
}
function noSource(event)
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
{
video1.removeEventListener('webkitplaybacktargetavailabilitychanged', noSource, true);
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
consoleWrite(`EVENT( ${event.type} )`);
testExpected('event.availability', 'not-available');
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
video1.addEventListener('webkitplaybacktargetavailabilitychanged', haveTarget, true);
consoleWrite('<br>** simulate device becoming available');
if (window.internals)
internals.setMockMediaPlaybackTargetPickerState('Sleepy TV', 'DeviceAvailable');
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
}
function haveTarget(event)
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
{
// setMockMediaPlaybackTargetPickerState happens asynchronously in WK2 and a
// 'webkitplaybacktargetavailabilitychanged' is always sent when an event listener
// is added, so we may get a "not available" event first.
if (event.availability == 'not-available')
return;
video1.removeEventListener('webkitplaybacktargetavailabilitychanged', haveTarget, true);
consoleWrite(`EVENT( ${event.type} )`);
consoleWrite('<br>** set src on video that does not have event listener');
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
video2.src = findMediaFile('video', 'content/test');
video1.addEventListener('webkitplaybacktargetavailabilitychanged', withSource, true);
}
function withSource(event)
{
consoleWrite(`EVENT( ${event.type} )`);
testExpected('event.availability', 'available');
consoleWrite('');
endTest();
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
}
</script>
</head>
<body onload='start()'>
AirPlay route availability event not always sent https://bugs.webkit.org/show_bug.cgi?id=152802 Reviewed by Jer Noble. Source/WebCore: Test: media/airplay-target-availability.html * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): Log the new flags. (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed. (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if at least one client has a listener and at least one has audio/video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState): Set new flags. * html/HTMLMediaElement.h: * page/MediaProducer.h: Define new flags. Add new state enum. * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown". * platform/mock/MediaPlaybackTargetMock.h: * platform/mock/MediaPlaybackTargetPickerMock.cpp: (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields. (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make device change callback if the device state is "Unknown". (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto. * platform/mock/MediaPlaybackTargetPickerMock.h: * testing/Internals.cpp: (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state. LayoutTests: * media/airplay-target-availability-expected.txt: Added. * media/airplay-target-availability.html: Added. * platform/mac/TestExpectations: Skip new test on Yosemite. * platform/efl/TestExpectations: Skip new test. * platform/gtk/TestExpectations: Ditto. * platform/win/TestExpectations: Ditto. Canonical link: https://commits.webkit.org/170900@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-06 23:37:08 +00:00
<video controls></video>
<br>
<video controls></video>
<p>Test that 'webkitplaybacktargetavailabilitychanged' event is sent when at least one
video element has playable media.</p>
</body>
</html>