Bug 155365

Summary: [ios-sim debug] API tests RequiresUserActionForPlaybackTest.DoesNotRequireUserActionForMediaPlayback and RequiresUserActionForAudioButNotVideoPlayback asserting
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: MediaAssignee: Jer Noble <jer.noble>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, commit-queue, jer.noble
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Ryan Haddad 2016-03-11 09:33:00 PST
[ios-sim debug] API tests RequiresUserActionForPlaybackTest.DoesNotRequireUserActionForMediaPlayback and RequiresUserActionForAudioButNotVideoPlayback asserting

<https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Debug%20WK2%20(Tests)/builds/167/steps/run-api-tests/logs/stdio>

ASSERTION FAILED: videoLayerID
/Volumes/Data/slave/ios-simulator-9-debug/build/Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm(371) : void WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t, uint32_t, const WebCore::IntRect &, float, HTMLMediaElementEnums::VideoFullscreenMode, bool)
1   0x10f787050 WTFCrash
2   0x11198ca52 WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool)
3   0x1119a63bf void IPC::callMemberFunctionImpl<WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool), std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(WebKit::WebVideoFullscreenManagerProxy*, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool), std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>&&, std::index_sequence<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>)
4   0x1119a5ef8 void IPC::callMemberFunction<WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool), std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>, std::make_index_sequence<6ul> >(std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>&&, WebKit::WebVideoFullscreenManagerProxy*, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool))
5   0x1119a3753 void IPC::handleMessage<Messages::WebVideoFullscreenManagerProxy::SetupFullscreenWithID, WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool)>(IPC::MessageDecoder&, WebKit::WebVideoFullscreenManagerProxy*, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool))
6   0x1119a249c WebKit::WebVideoFullscreenManagerProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
7   0x1112cd7a4 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&)
8   0x1111cd037 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&)
9   0x1118a006a WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
10  0x1118a0167 non-virtual thunk to WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
11  0x1111dbc93 IPC::Connection::dispatchMessage(IPC::MessageDecoder&)
12  0x1111d2f71 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)
13  0x1111dc28f IPC::Connection::dispatchOneMessage()
14  0x1111ebb5d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10::operator()() const
15  0x1111ebb2d void std::__1::__invoke_void_return_wrapper<void>::__call<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10&>(IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10&&&)
16  0x1111eb97c std::__1::__function::__func<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10, std::__1::allocator<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10>, void ()>::operator()()
17  0x10f1be60a std::__1::function<void ()>::operator()() const
18  0x10f7d427d WTF::RunLoop::performWork()
19  0x10f7d4964 WTF::RunLoop::performWork(void*)
20  0x11c5ac0a1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
21  0x11c5a1fcc __CFRunLoopDoSources0
22  0x11c5a1483 __CFRunLoopRun
23  0x11c5a0e98 CFRunLoopRunSpecific
24  0x11bc40891 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
25  0x10e2fb793 TestWebKitAPI::Util::run(bool*)
26  0x10e4b647c RequiresUserActionForPlaybackTest::testVideoWithAudio()
27  0x10e4b490a RequiresUserActionForPlaybackTest_DoesNotRequireUserActionForMediaPlayback_Test::TestBody()
28  0x10e4d199a testing::Test::Run()
29  0x10e4d227d testing::internal::TestInfoImpl::Run()
30  0x10e4d2e1d testing::TestCase::Run()
31  0x10e4d8da2 testing::internal::UnitTestImpl::RunAllTests()

ASSERTION FAILED: videoLayerID
/Volumes/Data/slave/ios-simulator-9-debug/build/Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm(371) : void WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t, uint32_t, const WebCore::IntRect &, float, HTMLMediaElementEnums::VideoFullscreenMode, bool)
1   0x1096d4050 WTFCrash
2   0x10b8d9a52 WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool)
3   0x10b8f33bf void IPC::callMemberFunctionImpl<WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool), std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(WebKit::WebVideoFullscreenManagerProxy*, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool), std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>&&, std::index_sequence<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>)
4   0x10b8f2ef8 void IPC::callMemberFunction<WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool), std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>, std::make_index_sequence<6ul> >(std::__1::tuple<unsigned long long, unsigned int, WebCore::IntRect, float, unsigned int, bool>&&, WebKit::WebVideoFullscreenManagerProxy*, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool))
5   0x10b8f0753 void IPC::handleMessage<Messages::WebVideoFullscreenManagerProxy::SetupFullscreenWithID, WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool)>(IPC::MessageDecoder&, WebKit::WebVideoFullscreenManagerProxy*, void (WebKit::WebVideoFullscreenManagerProxy::*)(unsigned long long, unsigned int, WebCore::IntRect const&, float, unsigned int, bool))
6   0x10b8ef49c WebKit::WebVideoFullscreenManagerProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
7   0x10b21a7a4 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&)
8   0x10b11a037 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&)
9   0x10b7ed06a WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
10  0x10b7ed167 non-virtual thunk to WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
11  0x10b128c93 IPC::Connection::dispatchMessage(IPC::MessageDecoder&)
12  0x10b11ff71 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)
13  0x10b12928f IPC::Connection::dispatchOneMessage()
14  0x10b138b5d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10::operator()() const
15  0x10b138b2d void std::__1::__invoke_void_return_wrapper<void>::__call<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10&>(IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10&&&)
16  0x10b13897c std::__1::__function::__func<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10, std::__1::allocator<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10>, void ()>::operator()()
17  0x10910b60a std::__1::function<void ()>::operator()() const
18  0x10972127d WTF::RunLoop::performWork()
19  0x109721964 WTF::RunLoop::performWork(void*)
20  0x1164f90a1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
21  0x1164eefcc __CFRunLoopDoSources0
22  0x1164ee483 __CFRunLoopRun
23  0x1164ede98 CFRunLoopRunSpecific
24  0x115b8d891 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
25  0x108248793 TestWebKitAPI::Util::run(bool*)
26  0x10840354c RequiresUserActionForPlaybackTest::testVideoWithoutAudio()
27  0x10840234e RequiresUserActionForPlaybackTest_RequiresUserActionForAudioButNotVideoPlayback_Test::TestBody()
28  0x10841e99a testing::Test::Run()
29  0x10841f27d testing::internal::TestInfoImpl::Run()
30  0x10841fe1d testing::TestCase::Run()
31  0x108425da2 testing::internal::UnitTestImpl::RunAllTests()
Comment 1 Ryan Haddad 2016-03-11 09:59:14 PST
The tests were added with <https://trac.webkit.org/changeset/197953>
Comment 2 Jer Noble 2016-03-11 10:23:01 PST
(In reply to comment #1)
> The tests were added with <https://trac.webkit.org/changeset/197953>

I bet that, on the iOS simulator, we are requiring that they enter fullscreen mode to begin playback.  We should (for the purposes of this test) allow them to play inline.
Comment 3 Jer Noble 2016-03-11 12:28:42 PST
Created attachment 273751 [details]
Patch
Comment 4 WebKit Commit Bot 2016-03-11 14:48:48 PST
Comment on attachment 273751 [details]
Patch

Clearing flags on attachment: 273751

Committed r198048: <http://trac.webkit.org/changeset/198048>
Comment 5 WebKit Commit Bot 2016-03-11 14:48:51 PST
All reviewed patches have been landed.  Closing bug.