Title: [143038] trunk/Source/WebKit2
Revision
143038
Author
ander...@apple.com
Date
2013-02-15 13:03:03 -0800 (Fri, 15 Feb 2013)

Log Message

A storage area should know its storage type
https://bugs.webkit.org/show_bug.cgi?id=109964

Reviewed by Andreas Kling.

* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
(WebKit::StorageAreaProxy::disabledByPrivateBrowsingInFrame):
* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::storageType):
(WebKit):
* WebProcess/Storage/StorageNamespaceProxy.h:
(StorageNamespaceProxy):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143037 => 143038)


--- trunk/Source/WebKit2/ChangeLog	2013-02-15 21:01:49 UTC (rev 143037)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-15 21:03:03 UTC (rev 143038)
@@ -1,5 +1,23 @@
 2013-02-15  Anders Carlsson  <ander...@apple.com>
 
+        A storage area should know its storage type
+        https://bugs.webkit.org/show_bug.cgi?id=109964
+
+        Reviewed by Andreas Kling.
+
+        * WebProcess/Storage/StorageAreaProxy.cpp:
+        (WebKit::StorageAreaProxy::StorageAreaProxy):
+        (WebKit::StorageAreaProxy::disabledByPrivateBrowsingInFrame):
+        * WebProcess/Storage/StorageAreaProxy.h:
+        (StorageAreaProxy):
+        * WebProcess/Storage/StorageNamespaceProxy.cpp:
+        (WebKit::StorageNamespaceProxy::storageType):
+        (WebKit):
+        * WebProcess/Storage/StorageNamespaceProxy.h:
+        (StorageNamespaceProxy):
+
+2013-02-15  Anders Carlsson  <ander...@apple.com>
+
         Implement StorageAreaProxy::length
         https://bugs.webkit.org/show_bug.cgi?id=109962
 

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp (143037 => 143038)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp	2013-02-15 21:01:49 UTC (rev 143037)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp	2013-02-15 21:03:03 UTC (rev 143038)
@@ -51,7 +51,8 @@
 }
 
 StorageAreaProxy::StorageAreaProxy(StorageNamespaceProxy* storageNamespaceProxy, PassRefPtr<SecurityOrigin> securityOrigin)
-    : m_storageAreaID(generateStorageAreaID())
+    : m_storageType(storageNamespaceProxy->storageType())
+    , m_storageAreaID(generateStorageAreaID())
 {
     WebProcess::shared().connection()->send(Messages::StorageManager::CreateStorageArea(m_storageAreaID, storageNamespaceProxy->storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(securityOrigin.get())), 0);
 }
@@ -148,7 +149,8 @@
     if (!sourceFrame->page()->settings()->privateBrowsingEnabled())
         return false;
 
-    // FIXME: Check the type of the storage.
+    if (m_storageType != LocalStorage)
+        return true;
 
     return !SchemeRegistry::allowsLocalStorageAccessInPrivateBrowsing(sourceFrame->document()->securityOrigin()->protocol());
 }

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h (143037 => 143038)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h	2013-02-15 21:01:49 UTC (rev 143037)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h	2013-02-15 21:03:03 UTC (rev 143038)
@@ -59,6 +59,7 @@
 
     void loadValuesIfNeeded();
 
+    WebCore::StorageType m_storageType;
     uint64_t m_storageAreaID;
     OwnPtr<HashMap<String, String> > m_values;
 };

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.cpp (143037 => 143038)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.cpp	2013-02-15 21:01:49 UTC (rev 143037)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.cpp	2013-02-15 21:03:03 UTC (rev 143038)
@@ -48,6 +48,15 @@
 {
 }
 
+StorageType StorageNamespaceProxy::storageType() const
+{
+    // A zero storage namespace ID is used for local storage.
+    if (!m_storageNamespaceID)
+        return LocalStorage;
+
+    return SessionStorage;
+}
+
 PassRefPtr<StorageArea> StorageNamespaceProxy::storageArea(PassRefPtr<SecurityOrigin> securityOrigin)
 {
     return StorageAreaProxy::create(this, securityOrigin);

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h (143037 => 143038)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h	2013-02-15 21:01:49 UTC (rev 143037)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceProxy.h	2013-02-15 21:03:03 UTC (rev 143038)
@@ -39,6 +39,7 @@
     virtual ~StorageNamespaceProxy();
 
     uint64_t storageNamespaceID() const { return m_storageNamespaceID; }
+    WebCore::StorageType storageType() const;
 
 private:
     explicit StorageNamespaceProxy(WebPage*);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to