Title: [144117] trunk/Source
Revision
144117
Author
[email protected]
Date
2013-02-26 16:13:12 -0800 (Tue, 26 Feb 2013)

Log Message

StorageAreaProxy should hold on to a StorageMap and not a HashMap
https://bugs.webkit.org/show_bug.cgi?id=110919

Reviewed by Jessie Berlin.

Source/WebCore:

StorageMap should be a private header.

* WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

Create a storage map instead of a hash map.

* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::length):
(WebKit::StorageAreaProxy::loadValuesIfNeeded):
* WebProcess/Storage/StorageAreaProxy.h:
(WebCore):
(StorageAreaProxy):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (144116 => 144117)


--- trunk/Source/WebCore/ChangeLog	2013-02-26 23:43:08 UTC (rev 144116)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 00:13:12 UTC (rev 144117)
@@ -1,3 +1,14 @@
+2013-02-26  Anders Carlsson  <[email protected]>
+
+        StorageAreaProxy should hold on to a StorageMap and not a HashMap
+        https://bugs.webkit.org/show_bug.cgi?id=110919
+
+        Reviewed by Jessie Berlin.
+
+        StorageMap should be a private header.
+
+        * WebCore.xcodeproj/project.pbxproj:
+
 2013-02-26  Stephen Chenney  <[email protected]>
 
         feDisplacementMap filter gets color space wrong

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (144116 => 144117)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2013-02-26 23:43:08 UTC (rev 144116)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2013-02-27 00:13:12 UTC (rev 144117)
@@ -1664,7 +1664,7 @@
 		51E0BABC0DA5547100A9E417 /* StorageEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E0BABA0DA5547100A9E417 /* StorageEvent.cpp */; };
 		51E0BAEA0DA55D4A00A9E417 /* JSStorageEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E0BAE80DA55D4A00A9E417 /* JSStorageEvent.cpp */; };
 		51E0BAEB0DA55D4A00A9E417 /* JSStorageEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E0BAE90DA55D4A00A9E417 /* JSStorageEvent.h */; };
-		51E0BB380DA5ACB600A9E417 /* StorageMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E0BB360DA5ACB600A9E417 /* StorageMap.h */; };
+		51E0BB380DA5ACB600A9E417 /* StorageMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E0BB360DA5ACB600A9E417 /* StorageMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		51E0BB390DA5ACB600A9E417 /* StorageMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E0BB370DA5ACB600A9E417 /* StorageMap.cpp */; };
 		51E1ECAF0C91C54600DC255B /* AutodrainedPool.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E1ECAD0C91C54600DC255B /* AutodrainedPool.mm */; };
 		51E1ECB30C91C55600DC255B /* AutodrainedPool.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E1ECB10C91C55600DC255B /* AutodrainedPool.h */; };

Modified: trunk/Source/WebKit2/ChangeLog (144116 => 144117)


--- trunk/Source/WebKit2/ChangeLog	2013-02-26 23:43:08 UTC (rev 144116)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-27 00:13:12 UTC (rev 144117)
@@ -1,5 +1,21 @@
 2013-02-26  Anders Carlsson  <[email protected]>
 
+        StorageAreaProxy should hold on to a StorageMap and not a HashMap
+        https://bugs.webkit.org/show_bug.cgi?id=110919
+
+        Reviewed by Jessie Berlin.
+
+        Create a storage map instead of a hash map.
+
+        * WebProcess/Storage/StorageAreaProxy.cpp:
+        (WebKit::StorageAreaProxy::length):
+        (WebKit::StorageAreaProxy::loadValuesIfNeeded):
+        * WebProcess/Storage/StorageAreaProxy.h:
+        (WebCore):
+        (StorageAreaProxy):
+
+2013-02-26  Anders Carlsson  <[email protected]>
+
         Fix a copy/paste error in WebLoaderClient::didBlockInsecurePluginVersion
         https://bugs.webkit.org/show_bug.cgi?id=110914
         <rdar://problem/13297581>

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp (144116 => 144117)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp	2013-02-26 23:43:08 UTC (rev 144116)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.cpp	2013-02-27 00:13:12 UTC (rev 144117)
@@ -35,6 +35,7 @@
 #include <WebCore/Page.h>
 #include <WebCore/SchemeRegistry.h>
 #include <WebCore/SecurityOrigin.h>
+#include <WebCore/StorageMap.h>
 
 using namespace WebCore;
 
@@ -76,7 +77,7 @@
         return 0;
 
     loadValuesIfNeeded();
-    return m_values->size();
+    return m_storageMap->length();
 }
 
 String StorageAreaProxy::key(unsigned index, ExceptionCode&, Frame* sourceFrame)
@@ -173,7 +174,7 @@
 
 void StorageAreaProxy::loadValuesIfNeeded()
 {
-    if (m_values)
+    if (m_storageMap)
         return;
 
     HashMap<String, String> values;
@@ -181,8 +182,8 @@
     // (This flag does not yet exist).
     WebProcess::shared().connection()->sendSync(Messages::StorageManager::GetValues(m_storageAreaID), Messages::StorageManager::GetValues::Reply(values), 0);
 
-    // FIXME: Don't copy the hash map.
-    m_values = adoptPtr(new HashMap<String, String>(values));
+    m_storageMap = StorageMap::create(m_quotaInBytes);
+    m_storageMap->importItems(values);
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h (144116 => 144117)


--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h	2013-02-26 23:43:08 UTC (rev 144116)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaProxy.h	2013-02-27 00:13:12 UTC (rev 144117)
@@ -29,6 +29,10 @@
 #include <WebCore/StorageArea.h>
 #include <wtf/HashMap.h>
 
+namespace WebCore {
+class StorageMap;
+}
+
 namespace WebKit {
 
 class StorageNamespaceProxy;
@@ -62,7 +66,7 @@
     WebCore::StorageType m_storageType;
     unsigned m_quotaInBytes;
     uint64_t m_storageAreaID;
-    OwnPtr<HashMap<String, String> > m_values;
+    RefPtr<WebCore::StorageMap> m_storageMap;
 };
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to