Title: [150648] trunk/Source/WebKit2
Revision
150648
Author
[email protected]
Date
2013-05-24 11:09:09 -0700 (Fri, 24 May 2013)

Log Message

Intermittent crash when typing in Address Bar
https://bugs.webkit.org/show_bug.cgi?id=116728
<rdar://problem/13976781>

Reviewed by Sam Weinig.

If a web process connection has been removed from the storage manager because we disconnected it
since there were no more active pages associated with the web process, we'll fail to find it here
so just return early instead of crashing.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::destroyStorageMap):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (150647 => 150648)


--- trunk/Source/WebKit2/ChangeLog	2013-05-24 18:01:28 UTC (rev 150647)
+++ trunk/Source/WebKit2/ChangeLog	2013-05-24 18:09:09 UTC (rev 150648)
@@ -1,3 +1,18 @@
+2013-05-24  Anders Carlsson  <[email protected]>
+
+        Intermittent crash when typing in Address Bar
+        https://bugs.webkit.org/show_bug.cgi?id=116728
+        <rdar://problem/13976781>
+
+        Reviewed by Sam Weinig.
+
+        If a web process connection has been removed from the storage manager because we disconnected it
+        since there were no more active pages associated with the web process, we'll fail to find it here
+        so just return early instead of crashing.
+
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::destroyStorageMap):
+
 2013-05-24  Andreas Kling  <[email protected]>
 
         Typing in Safari's unified field causes unnecessary web content repaints.

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (150647 => 150648)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-05-24 18:01:28 UTC (rev 150647)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-05-24 18:09:09 UTC (rev 150648)
@@ -496,10 +496,11 @@
     ASSERT((HashMap<std::pair<RefPtr<CoreIPC::Connection>, uint64_t>, RefPtr<StorageArea>>::isValidKey(connectionAndStorageMapIDPair)));
 
     HashMap<std::pair<RefPtr<CoreIPC::Connection>, uint64_t>, RefPtr<StorageArea>>::iterator it = m_storageAreasByConnection.find(connectionAndStorageMapIDPair);
+    if (it == m_storageAreasByConnection.end()) {
+        // The connection has been removed because the last page was closed.
+        return;
+    }
 
-    // FIXME: This should be a message check.
-    ASSERT(it != m_storageAreasByConnection.end());
-
     it->value->removeListener(connection, storageMapID);
     m_storageAreasByConnection.remove(connectionAndStorageMapIDPair);
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to