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