Title: [160727] trunk/Source/WebKit2
Revision
160727
Author
[email protected]
Date
2013-12-17 13:30:06 -0800 (Tue, 17 Dec 2013)

Log Message

Back out r159982
https://bugs.webkit.org/show_bug.cgi?id=125870
<rdar://problem/15598485>

Reviewed by Dan Bernstein.

Looks like r159982 caused intermittent crashes. Back it out for now.

* UIProcess/WebContextUserMessageCoders.h:
(WebKit::WebContextUserMessageEncoder::encode):
(WebKit::WebContextUserMessageDecoder::decode):
* UIProcess/WebPageGroup.cpp:
* UIProcess/WebPageGroup.h:
(WebKit::WebPageGroup::sendToAllProcessesInGroup):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disconnect):
* UIProcess/WebProcessProxy.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (160726 => 160727)


--- trunk/Source/WebKit2/ChangeLog	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/ChangeLog	2013-12-17 21:30:06 UTC (rev 160727)
@@ -1,3 +1,25 @@
+2013-12-17  Anders Carlsson  <[email protected]>
+
+        Back out r159982
+        https://bugs.webkit.org/show_bug.cgi?id=125870
+        <rdar://problem/15598485>
+
+        Reviewed by Dan Bernstein.
+
+        Looks like r159982 caused intermittent crashes. Back it out for now.
+
+        * UIProcess/WebContextUserMessageCoders.h:
+        (WebKit::WebContextUserMessageEncoder::encode):
+        (WebKit::WebContextUserMessageDecoder::decode):
+        * UIProcess/WebPageGroup.cpp:
+        * UIProcess/WebPageGroup.h:
+        (WebKit::WebPageGroup::sendToAllProcessesInGroup):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::initializeWebPage):
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::disconnect):
+        * UIProcess/WebProcessProxy.h:
+
 2013-12-17  Dan Bernstein  <[email protected]>
 
         Fixed an assertion failure seen running some mixed-content tests.

Modified: trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h (160726 => 160727)


--- trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h	2013-12-17 21:30:06 UTC (rev 160727)
@@ -76,8 +76,6 @@
         }
         case API::Object::Type::PageGroup: {
             WebPageGroup* pageGroup = static_cast<WebPageGroup*>(m_root);
-            if (pageGroup->addProcess(m_process))
-                m_process.addWebPageGroup(*pageGroup);
             encoder << pageGroup->data();
             break;
         }
@@ -147,7 +145,7 @@
             uint64_t pageGroupID;
             if (!decoder.decode(pageGroupID))
                 return false;
-            coder.m_root = coder.m_process.webPageGroup(pageGroupID);
+            coder.m_root = WebPageGroup::get(pageGroupID);
             break;
         }
 #if PLATFORM(MAC)

Modified: trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp (160726 => 160727)


--- trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp	2013-12-17 21:30:06 UTC (rev 160727)
@@ -194,14 +194,4 @@
     sendToAllProcessesInGroup(Messages::WebPageGroupProxy::RemoveAllUserContent(), m_data.pageGroupID);
 }
 
-bool WebPageGroup::addProcess(WebProcessProxy& process)
-{
-    return m_processes.add(&process).isNewEntry;
-}
-
-void WebPageGroup::disconnectProcess(WebProcessProxy& process)
-{
-    m_processes.remove(&process);
-}
-
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebPageGroup.h (160726 => 160727)


--- trunk/Source/WebKit2/UIProcess/WebPageGroup.h	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/UIProcess/WebPageGroup.h	2013-12-17 21:30:06 UTC (rev 160727)
@@ -65,24 +65,26 @@
     void removeAllUserScripts();
     void removeAllUserContent();
 
-    bool addProcess(WebProcessProxy&);
-    void disconnectProcess(WebProcessProxy&);
-
 private:
     template<typename T> void sendToAllProcessesInGroup(const T&, uint64_t destinationID);
 
     WebPageGroupData m_data;
     mutable RefPtr<WebPreferences> m_preferences;
     HashSet<WebPageProxy*> m_pages;
-    HashSet<WebProcessProxy*> m_processes;
 };
 
 template<typename T>
 void WebPageGroup::sendToAllProcessesInGroup(const T& message, uint64_t destinationID)
 {
-    for (auto webProcessProxy : m_processes) {
-        if (webProcessProxy->canSendMessage())
-            webProcessProxy->send(T(message), destinationID);
+    HashSet<WebProcessProxy*> processesSeen;
+
+    for (WebPageProxy* webPageProxy : m_pages) {
+        WebProcessProxy& webProcessProxy = webPageProxy->process();
+        if (!processesSeen.add(&webProcessProxy).isNewEntry)
+            continue;
+
+        if (webProcessProxy.canSendMessage())
+            webProcessProxy.send(T(message), destinationID);
     }
 }
 

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (160726 => 160727)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-12-17 21:30:06 UTC (rev 160727)
@@ -517,9 +517,6 @@
         inspector()->enableRemoteInspection();
 #endif
 
-    if (pageGroup().addProcess(process()))
-        process().addWebPageGroup(pageGroup());
-
     initializeCreationParameters();
     process().send(Messages::WebProcess::CreateWebPage(m_pageID, m_creationParameters), 0);
 

Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (160726 => 160727)


--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2013-12-17 21:30:06 UTC (rev 160727)
@@ -39,7 +39,6 @@
 #include "WebContext.h"
 #include "WebNavigationDataStore.h"
 #include "WebNotificationManagerProxy.h"
-#include "WebPageGroup.h"
 #include "WebPageProxy.h"
 #include "WebPluginSiteDataManager.h"
 #include "WebProcessMessages.h"
@@ -147,16 +146,11 @@
 
     Vector<RefPtr<WebFrameProxy>> frames;
     copyValuesToVector(m_frameMap, frames);
-    for (auto frame : frames)
-        frame->disconnect();
+
+    for (size_t i = 0, size = frames.size(); i < size; ++i)
+        frames[i]->disconnect();
     m_frameMap.clear();
 
-    Vector<WebPageGroup*> pageGroups;
-    copyValuesToVector(m_pageGroups, pageGroups);
-    for (auto pageGroup : pageGroups)
-        pageGroup->disconnectProcess(*this);
-    m_pageGroups.clear();
-
     if (m_downloadProxyMap)
         m_downloadProxyMap->processDidClose();
 
@@ -217,19 +211,6 @@
     return result;
 }
 
-WebPageGroup* WebProcessProxy::webPageGroup(uint64_t pageGroupID)
-{
-    if (!HashMap<uint64_t, WebPageGroup*>::isValidKey(pageGroupID))
-        return nullptr;
-
-    return m_pageGroups.get(pageGroupID);
-}
-
-void WebProcessProxy::addWebPageGroup(WebPageGroup& pageGroup)
-{
-    m_pageGroups.add(pageGroup.pageGroupID(), &pageGroup);
-}
-
 WebBackForwardListItem* WebProcessProxy::webBackForwardItem(uint64_t itemID) const
 {
     return m_backForwardListItemMap.get(itemID);

Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (160726 => 160727)


--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h	2013-12-17 21:20:44 UTC (rev 160726)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h	2013-12-17 21:30:06 UTC (rev 160727)
@@ -82,9 +82,6 @@
     void removeWebPage(uint64_t pageID);
     Vector<WebPageProxy*> pages() const;
 
-    WebPageGroup* webPageGroup(uint64_t pageGroupID);
-    void addWebPageGroup(WebPageGroup&);
-
     WebBackForwardListItem* webBackForwardItem(uint64_t itemID) const;
 
     ResponsivenessTimer* responsivenessTimer() { return &m_responsivenessTimer; }
@@ -199,7 +196,6 @@
     WebPageProxyMap m_pageMap;
     WebFrameProxyMap m_frameMap;
     WebBackForwardListItemMap m_backForwardListItemMap;
-    HashMap<uint64_t, WebPageGroup*> m_pageGroups;
 
     OwnPtr<DownloadProxyMap> m_downloadProxyMap;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to