WebProcessProxy::frameDestroyed asserts that the frameID it was called with was registered in WebProcessProxy::frameCreated (which is called when the WebPageProxy is created). However, in the case where we close the page before it's had the chance to send the DidCreateMainFrame message back to the UI process, the UI Process will get the DidDestroyFrame message because it's sent directly to the WebProcessProxy and doesn't go through WebPageProxy. Therefore, the assert is invalid for that case and should be removed. <rdar://problem/8600977>
Created attachment 72366 [details] Remove the invalid assertion
Comment on attachment 72366 [details] Remove the invalid assertion View in context: https://bugs.webkit.org/attachment.cgi?id=72366&action=review > WebKit2/UIProcess/WebProcessProxy.cpp:492 > + return; You can remove the call to m_frameMap.contains here, m_frameMap.remove will work just fine even if the frame doesn't exist in the map and it will avoid an extra hash lookup.
(In reply to comment #2) > (From update of attachment 72366 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=72366&action=review > > > WebKit2/UIProcess/WebProcessProxy.cpp:492 > > + return; > > You can remove the call to m_frameMap.contains here, m_frameMap.remove will work just fine even if the frame doesn't exist in the map and it will avoid an extra hash lookup. Done.
Comment on attachment 72366 [details] Remove the invalid assertion Commited in r70915 http://trac.webkit.org/changeset/70915