RESOLVED FIXED 166765
ASSERTION FAILED: !m_isPointerLocked in WebKit::WebPageProxy::requestPointerLock()
https://bugs.webkit.org/show_bug.cgi?id=166765
Summary ASSERTION FAILED: !m_isPointerLocked in WebKit::WebPageProxy::requestPointerL...
Ryan Haddad
Reported 2017-01-06 09:02:39 PST
ASSERTION FAILED: !m_isPointerLocked /Volumes/Data/slave/elcapitan-debug/build/Source/WebKit2/UIProcess/WebPageProxy.cpp(6763) : void WebKit::WebPageProxy::requestPointerLock() 1 0x105176e10 WTFCrash 2 0x1082a3368 WebKit::WebPageProxy::requestPointerLock() 3 0x108339a23 void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(), std::__1::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::__1::tuple<>&&, std::__1::integer_sequence<unsigned long>) 4 0x108339998 void IPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(), std::__1::tuple<>, std::__1::integer_sequence<unsigned long> >(std::__1::tuple<>&&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)()) 5 0x108333be9 void IPC::handleMessage<Messages::WebPageProxy::RequestPointerLock, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)()>(IPC::Decoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)()) 6 0x108325394 WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 7 0x1083258b7 non-virtual thunk to WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 8 0x107c43d14 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 9 0x107b157c7 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&, IPC::Decoder&) 10 0x10843303a WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 11 0x108433137 non-virtual thunk to WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 12 0x107b246e3 IPC::Connection::dispatchMessage(IPC::Decoder&) 13 0x107b1b9c1 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) 14 0x107b1b4ae IPC::Connection::SyncMessageState::dispatchMessages(IPC::Connection*) 15 0x107b24009 IPC::Connection::dispatchSyncMessage(IPC::Decoder&) 16 0x107b1b982 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) 17 0x107b1b4ae IPC::Connection::SyncMessageState::dispatchMessages(IPC::Connection*) 18 0x107b2047c IPC::Connection::waitForSyncReply(unsigned long long, WTF::Seconds, WTF::OptionSet<IPC::SendSyncOption>) 19 0x107b1ebab IPC::Connection::sendSyncMessage(unsigned long long, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::Seconds, WTF::OptionSet<IPC::SendSyncOption>) 20 0x107b1e0ac IPC::Connection::sendMessage(std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::OptionSet<IPC::SendOption>) 21 0x107b154c0 WebKit::ChildProcessProxy::sendMessage(std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::OptionSet<IPC::SendOption>) 22 0x1082bc9c2 bool WebKit::ChildProcessProxy::send<Messages::WebPage::KeyEvent>(Messages::WebPage::KeyEvent&&, unsigned long long, WTF::OptionSet<IPC::SendOption>) 23 0x108289ce1 WebKit::WebPageProxy::handleKeyboardEvent(WebKit::NativeWebKeyboardEvent const&) 24 0x10850a909 invocation function for block in WebKit::WebViewImpl::keyDown(NSEvent*) 25 0x108507d44 WebKit::WebViewImpl::interpretKeyEvent(NSEvent*, void (signed char, WTF::Vector<WebCore::KeypressCommand, 0ul, WTF::CrashOnOverflow, 16ul> const&) block_pointer) 26 0x10850a813 WebKit::WebViewImpl::keyDown(NSEvent*) 27 0x108603346 -[WKWebView keyDown:] 28 0x103be7d97 WTR::EventSenderProxy::keyDown(OpaqueWKString const*, unsigned int, unsigned int) 29 0x103c09ac6 WTR::TestController::didReceiveKeyDownMessageFromInjectedBundle(OpaqueWKDictionary const*, bool) 30 0x103c08fa7 WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle(OpaqueWKString const*, void const*) 31 0x103bffe9f WTR::TestController::didReceiveSynchronousPageMessageFromInjectedBundle(OpaqueWKPage const*, OpaqueWKString const*, void const*, void const**, void const*) LEAK: 1 WebPage LEAK: 1 WebFrame LEAK: 2 XMLHttpRequest LEAK: 70 RenderObject LEAK: 7 Page LEAK: 1398 WebCoreNode LEAK: 7 Frame LEAK: 271 CachedResource LEAK: 23363 BidiRun https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r210436%20(10248)/results.html
Attachments
Patch (2.89 KB, patch)
2017-01-26 11:07 PST, Jeremy Jones
no flags
Patch (2.96 KB, patch)
2017-01-26 13:23 PST, Jeremy Jones
no flags
Ryan Haddad
Comment 1 2017-01-06 09:03:23 PST
Seen with these LayoutTests: http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html http/tests/pointer-lock/pointerlockelement-same-origin.html pointer-lock/lock-lost-on-alert.html
Ryan Haddad
Comment 2 2017-01-06 09:03:35 PST
Ryan Haddad
Comment 3 2017-01-06 09:15:18 PST
Marked the affected tests as crashing on mac-wk2 debug in http://trac.webkit.org/projects/webkit/changeset/210441
Ryan Haddad
Comment 4 2017-01-19 13:37:18 PST
(In reply to comment #3) > Marked the affected tests as crashing on mac-wk2 debug in > http://trac.webkit.org/projects/webkit/changeset/210441 Switched the expectation to skip in https://trac.webkit.org/changeset/210937 since they show up in every run.
Ryan Haddad
Comment 5 2017-01-19 16:42:36 PST
Skipping those tests seems to have caused two more to assert: http/tests/pointer-lock/pointerlockelement-different-origin.html pointer-lock/lock-lost-on-esc-in-fullscreen.html https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r210939%20(10480)/results.html
Ryan Haddad
Comment 6 2017-01-20 12:48:58 PST
After much trying, I was unable to find a single test that seemed to be causing the crashes. When I skipped all but two, the second one would frequently crash. It seems like this could be due to some state not being reset between tests. I skipped all pointer-lock tests on mac-wk2 in https://trac.webkit.org/changeset/210975
Jeremy Jones
Comment 7 2017-01-26 11:06:09 PST
*** Bug 167445 has been marked as a duplicate of this bug. ***
Jeremy Jones
Comment 8 2017-01-26 11:07:17 PST
Jon Lee
Comment 9 2017-01-26 11:10:49 PST
Rebase please.
Jeremy Jones
Comment 10 2017-01-26 13:23:14 PST
Jeremy Jones
Comment 11 2017-01-26 13:23:35 PST
(In reply to comment #9) > Rebase please. Done.
Tim Horton
Comment 12 2017-01-26 13:54:41 PST
Comment on attachment 299839 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=299839&action=review > Source/WebKit2/ChangeLog:9 > + When the main frame is load is committed, pointer lock should end. > + This resets pointer lock state between tests and allows tests to succeed. What about process crash?
Jeremy Jones
Comment 13 2017-01-26 15:24:09 PST
(In reply to comment #12) > Comment on attachment 299839 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=299839&action=review > > > Source/WebKit2/ChangeLog:9 > > + When the main frame is load is committed, pointer lock should end. > > + This resets pointer lock state between tests and allows tests to succeed. > > What about process crash? Process crash and going into page cache are fixed here: https://bugs.webkit.org/show_bug.cgi?id=165425
WebKit Commit Bot
Comment 14 2017-01-26 15:48:25 PST
Comment on attachment 299839 [details] Patch Clearing flags on attachment: 299839 Committed r211234: <http://trac.webkit.org/changeset/211234>
WebKit Commit Bot
Comment 15 2017-01-26 15:48:30 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.