Title: [141830] trunk/Source/WebKit2
Revision
141830
Author
[email protected]
Date
2013-02-04 16:34:00 -0800 (Mon, 04 Feb 2013)

Log Message

Send message when creating and destroying StorageAreaProxy objects
https://bugs.webkit.org/show_bug.cgi?id=108874

Reviewed by Sam Weinig.

* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::fromSecurityOrigin):
* Shared/SecurityOriginData.h:
(SecurityOriginData):
Add helper function for creating a SecurityOriginData object given a WebCore::SecurityOrigin object.

* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::generateStorageAreaID):
New function to create a unique storage area ID.

(WebKit::StorageAreaProxy::StorageAreaProxy):
Send a CreateStorageArea message.

(WebKit::StorageAreaProxy::~StorageAreaProxy):
Send a DestroyStorageArea message.

(WebKit::StorageAreaProxy::contains):
Remove this assertion for now, it fires too often.

* WebProcess/Storage/StorageNamespaceProxy.h:
(WebKit::StorageNamespaceProxy::storageNamespaceID):
Add getter.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (141829 => 141830)


--- trunk/Source/WebKit2/ChangeLog	2013-02-05 00:30:22 UTC (rev 141829)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-05 00:34:00 UTC (rev 141830)
@@ -1,3 +1,33 @@
+2013-02-04  Anders Carlsson  <[email protected]>
+
+        Send message when creating and destroying StorageAreaProxy objects
+        https://bugs.webkit.org/show_bug.cgi?id=108874
+
+        Reviewed by Sam Weinig.
+
+        * Shared/SecurityOriginData.cpp:
+        (WebKit::SecurityOriginData::fromSecurityOrigin):
+        * Shared/SecurityOriginData.h:
+        (SecurityOriginData):
+        Add helper function for creating a SecurityOriginData object given a WebCore::SecurityOrigin object.
+
+        * WebProcess/Storage/StorageAreaProxy.cpp:
+        (WebKit::generateStorageAreaID):
+        New function to create a unique storage area ID.
+
+        (WebKit::StorageAreaProxy::StorageAreaProxy):
+        Send a CreateStorageArea message.
+        
+        (WebKit::StorageAreaProxy::~StorageAreaProxy):
+        Send a DestroyStorageArea message.
+
+        (WebKit::StorageAreaProxy::contains):
+        Remove this assertion for now, it fires too often.
+        
+        * WebProcess/Storage/StorageNamespaceProxy.h:
+        (WebKit::StorageNamespaceProxy::storageNamespaceID):
+        Add getter.
+
 2013-02-04  Kenneth Rohde Christiansen  <[email protected]>
 
         [EFL][WK2] Use C API inside EwkView

Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.cpp (141829 => 141830)


--- trunk/Source/WebKit2/Shared/SecurityOriginData.cpp	2013-02-05 00:30:22 UTC (rev 141829)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.cpp	2013-02-05 00:34:00 UTC (rev 141830)
@@ -35,6 +35,17 @@
 
 namespace WebKit {
 
+SecurityOriginData SecurityOriginData::fromSecurityOrigin(SecurityOrigin* securityOrigin)
+{
+    SecurityOriginData securityOriginData;
+
+    securityOriginData.protocol = securityOrigin->protocol();
+    securityOriginData.host = securityOrigin->host();
+    securityOriginData.port = securityOrigin->port();
+
+    return securityOriginData;
+}
+
 void SecurityOriginData::encode(CoreIPC::ArgumentEncoder& encoder) const
 {
     encoder << protocol;

Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.h (141829 => 141830)


--- trunk/Source/WebKit2/Shared/SecurityOriginData.h	2013-02-05 00:30:22 UTC (rev 141829)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.h	2013-02-05 00:34:00 UTC (rev 141830)
@@ -40,6 +40,8 @@
 typedef GenericCallback<WKArrayRef> ArrayCallback;
 
 struct SecurityOriginData {
+    static SecurityOriginData fromSecurityOrigin(WebCore::SecurityOrigin*);
+
     void encode(CoreIPC::ArgumentEncoder&) const;
     static bool decode(CoreIPC::ArgumentDecoder&, SecurityOriginData&);
 

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp (141829 => 141830)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp	2013-02-05 00:30:22 UTC (rev 141829)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp	2013-02-05 00:34:00 UTC (rev 141830)
@@ -26,6 +26,10 @@
 #include "config.h"
 #include "StorageAreaProxy.h"
 
+#include "SecurityOriginData.h"
+#include "StorageManagerMessages.h"
+#include "StorageNamespaceProxy.h"
+#include "WebProcess.h"
 #include <WebCore/Frame.h>
 #include <WebCore/SecurityOrigin.h>
 
@@ -33,19 +37,26 @@
 
 namespace WebKit {
 
+static uint64_t generateStorageAreaID()
+{
+    static uint64_t storageAreaID;
+    return ++storageAreaID;
+}
+
 PassRefPtr<StorageAreaProxy> StorageAreaProxy::create(StorageNamespaceProxy* storageNamespaceProxy, PassRefPtr<SecurityOrigin> securityOrigin)
 {
     return adoptRef(new StorageAreaProxy(storageNamespaceProxy, securityOrigin));
 }
 
-StorageAreaProxy::StorageAreaProxy(StorageNamespaceProxy*, PassRefPtr<SecurityOrigin>)
+StorageAreaProxy::StorageAreaProxy(StorageNamespaceProxy* storageNamespaceProxy, PassRefPtr<SecurityOrigin> securityOrigin)
+    : m_storageAreaID(generateStorageAreaID())
 {
-    // FIXME: Implement.
+    WebProcess::shared().connection()->send(Messages::StorageManager::CreateStorageArea(m_storageAreaID, storageNamespaceProxy->storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(securityOrigin.get())), 0);
 }
 
 StorageAreaProxy::~StorageAreaProxy()
 {
-    // FIXME: Implement.
+    WebProcess::shared().connection()->send(Messages::StorageManager::DestroyStorageArea(m_storageAreaID), 0);
 }
 
 unsigned StorageAreaProxy::length(ExceptionCode&, Frame* sourceFrame) const
@@ -90,7 +101,6 @@
 bool StorageAreaProxy::contains(const String& key, ExceptionCode&, Frame* sourceFrame) const
 {
     // FIXME: Implement this.
-    ASSERT_NOT_REACHED();
     return false;
 }
 

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h (141829 => 141830)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h	2013-02-05 00:30:22 UTC (rev 141829)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h	2013-02-05 00:34:00 UTC (rev 141830)
@@ -53,6 +53,8 @@
     virtual void incrementAccessCount() OVERRIDE;
     virtual void decrementAccessCount() OVERRIDE;
     virtual void closeDatabaseIfIdle() OVERRIDE;
+
+    uint64_t m_storageAreaID;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h (141829 => 141830)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h	2013-02-05 00:30:22 UTC (rev 141829)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h	2013-02-05 00:34:00 UTC (rev 141830)
@@ -38,6 +38,8 @@
     static PassRefPtr<StorageNamespaceProxy> createSessionStorageNamespace(WebPage*);
     virtual ~StorageNamespaceProxy();
 
+    uint64_t storageNamespaceID() const { return m_storageNamespaceID; }
+
 private:
     explicit StorageNamespaceProxy(WebPage*);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to