Title: [148715] trunk/Source/WebKit2
Revision
148715
Author
ander...@apple.com
Date
2013-04-18 17:13:52 -0700 (Thu, 18 Apr 2013)

Log Message

Use the page group id from the UI process as the local storage namespace ID
https://bugs.webkit.org/show_bug.cgi?id=114836

Reviewed by Beth Dakin.

The WebCore PageGroup identifier is different across processes, so use the one given to us by the UI process.

* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebKit::WebPageGroupProxy::corePageGroup):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::webPageGroup):
* WebProcess/WebProcess.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (148714 => 148715)


--- trunk/Source/WebKit2/ChangeLog	2013-04-18 23:57:20 UTC (rev 148714)
+++ trunk/Source/WebKit2/ChangeLog	2013-04-19 00:13:52 UTC (rev 148715)
@@ -1,3 +1,20 @@
+2013-04-18  Anders Carlsson  <ander...@apple.com>
+
+        Use the page group id from the UI process as the local storage namespace ID
+        https://bugs.webkit.org/show_bug.cgi?id=114836
+
+        Reviewed by Beth Dakin.
+
+        The WebCore PageGroup identifier is different across processes, so use the one given to us by the UI process.
+
+        * WebProcess/Storage/StorageNamespaceImpl.cpp:
+        (WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
+        * WebProcess/WebPage/WebPageGroupProxy.h:
+        (WebKit::WebPageGroupProxy::corePageGroup):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::webPageGroup):
+        * WebProcess/WebProcess.h:
+
 2013-04-18  Tim Horton  <timothy_hor...@apple.com>
 
         Add a synchronous version of WKView endDeferringViewInWindowChanges

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp (148714 => 148715)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp	2013-04-18 23:57:20 UTC (rev 148714)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp	2013-04-19 00:13:52 UTC (rev 148715)
@@ -29,6 +29,8 @@
 #include "StorageAreaImpl.h"
 #include "StorageAreaMap.h"
 #include "WebPage.h"
+#include "WebPageGroupProxy.h"
+#include "WebProcess.h"
 #include <WebCore/GroupSettings.h>
 #include <WebCore/PageGroup.h>
 #include <WebCore/SecurityOrigin.h>
@@ -48,12 +50,14 @@
 
 PassRefPtr<StorageNamespaceImpl> StorageNamespaceImpl::createLocalStorageNamespace(PageGroup* pageGroup)
 {
-    LocalStorageNamespaceMap::AddResult result = localStorageNamespaceMap().add(pageGroup->identifier(), 0);
+    uint64_t pageGroupID = WebProcess::shared().webPageGroup(pageGroup)->pageGroupID();
+
+    LocalStorageNamespaceMap::AddResult result = localStorageNamespaceMap().add(pageGroupID, 0);
     if (!result.isNewEntry)
         return result.iterator->value;
 
     unsigned quota = pageGroup->groupSettings()->localStorageQuotaBytes();
-    RefPtr<StorageNamespaceImpl> localStorageNamespace = adoptRef(new StorageNamespaceImpl(LocalStorage, pageGroup->identifier(), quota));
+    RefPtr<StorageNamespaceImpl> localStorageNamespace = adoptRef(new StorageNamespaceImpl(LocalStorage, pageGroupID, quota));
 
     result.iterator->value = localStorageNamespace.get();
     return localStorageNamespace.release();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h (148714 => 148715)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h	2013-04-18 23:57:20 UTC (rev 148714)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h	2013-04-19 00:13:52 UTC (rev 148715)
@@ -50,7 +50,8 @@
     uint64_t pageGroupID() const { return m_data.pageGroupID; }
     bool isVisibleToInjectedBundle() const { return m_data.visibleToInjectedBundle; }
     bool isVisibleToHistoryClient() const { return m_data.visibleToHistoryClient; }
-    
+    WebCore::PageGroup* corePageGroup() const { return m_pageGroup; }
+
     void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
 
 private:

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (148714 => 148715)


--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2013-04-18 23:57:20 UTC (rev 148714)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2013-04-19 00:13:52 UTC (rev 148715)
@@ -673,6 +673,16 @@
     parentProcessConnection()->send(Messages::WebProcessProxy::DidDestroyFrame(frameID), 0);
 }
 
+WebPageGroupProxy* WebProcess::webPageGroup(PageGroup* pageGroup)
+{
+    for (HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator it = m_pageGroupMap.begin(), end = m_pageGroupMap.end(); it != end; ++it) {
+        if (it->value->corePageGroup() == pageGroup)
+            return it->value.get();
+    }
+
+    return 0;
+}
+
 WebPageGroupProxy* WebProcess::webPageGroup(uint64_t pageGroupID)
 {
     return m_pageGroupMap.get(pageGroupID).get();

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (148714 => 148715)


--- trunk/Source/WebKit2/WebProcess/WebProcess.h	2013-04-18 23:57:20 UTC (rev 148714)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h	2013-04-19 00:13:52 UTC (rev 148715)
@@ -66,8 +66,9 @@
 #endif
 
 namespace WebCore {
-    class ResourceRequest;
-    struct PluginInfo;
+class PageGroup;
+class ResourceRequest;
+struct PluginInfo;
 }
 
 namespace WebKit {
@@ -136,6 +137,7 @@
     void addWebFrame(uint64_t, WebFrame*);
     void removeWebFrame(uint64_t);
 
+    WebPageGroupProxy* webPageGroup(WebCore::PageGroup*);
     WebPageGroupProxy* webPageGroup(uint64_t pageGroupID);
     WebPageGroupProxy* webPageGroup(const WebPageGroupData&);
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to