Diff
Modified: trunk/Source/WebKit2/ChangeLog (148694 => 148695)
--- trunk/Source/WebKit2/ChangeLog 2013-04-18 19:18:16 UTC (rev 148694)
+++ trunk/Source/WebKit2/ChangeLog 2013-04-18 19:26:28 UTC (rev 148695)
@@ -1,5 +1,20 @@
2013-04-18 Anders Carlsson <[email protected]>
+ Differentiate between creating local storage maps and session storage maps
+ https://bugs.webkit.org/show_bug.cgi?id=114823
+
+ Reviewed by Beth Dakin.
+
+ * UIProcess/Storage/StorageManager.cpp:
+ (WebKit::StorageManager::createLocalStorageMap):
+ (WebKit::StorageManager::createSessionStorageMap):
+ * UIProcess/Storage/StorageManager.h:
+ * UIProcess/Storage/StorageManager.messages.in:
+ * WebProcess/Storage/StorageAreaMap.cpp:
+ (WebKit::StorageAreaMap::StorageAreaMap):
+
+2013-04-18 Anders Carlsson <[email protected]>
+
StorageAreaMaps should not assume that a zero storage namespace ID is used for local storage
https://bugs.webkit.org/show_bug.cgi?id=114822
Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (148694 => 148695)
--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp 2013-04-18 19:18:16 UTC (rev 148694)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp 2013-04-18 19:26:28 UTC (rev 148695)
@@ -256,8 +256,13 @@
m_queue->dispatch(bind(&StorageManager::invalidateConnectionInternal, this, RefPtr<CoreIPC::Connection>(webProcessProxy->connection())));
}
-void StorageManager::createStorageMap(CoreIPC::Connection* connection, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData& securityOriginData)
+void StorageManager::createLocalStorageMap(CoreIPC::Connection*, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData&)
{
+ // FIXME: Implement.
+}
+
+void StorageManager::createSessionStorageMap(CoreIPC::Connection* connection, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData& securityOriginData)
+{
std::pair<RefPtr<CoreIPC::Connection>, uint64_t> connectionAndStorageMapIDPair(connection, storageMapID);
// FIXME: This should be a message check.
@@ -268,11 +273,6 @@
// FIXME: This should be a message check.
ASSERT(result.isNewEntry);
- if (!storageNamespaceID) {
- // FIXME: This is a local storage namespace. Do something.
- ASSERT_NOT_REACHED();
- }
-
ASSERT((HashMap<uint64_t, RefPtr<SessionStorageNamespace> >::isValidKey(storageNamespaceID)));
SessionStorageNamespace* sessionStorageNamespace = m_sessionStorageNamespaces.get(storageNamespaceID).get();
Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (148694 => 148695)
--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h 2013-04-18 19:18:16 UTC (rev 148694)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h 2013-04-18 19:26:28 UTC (rev 148695)
@@ -61,7 +61,8 @@
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder) OVERRIDE;
// Message handlers.
- void createStorageMap(CoreIPC::Connection*, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData&);
+ void createLocalStorageMap(CoreIPC::Connection*, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData&);
+ void createSessionStorageMap(CoreIPC::Connection*, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData&);
void destroyStorageMap(CoreIPC::Connection*, uint64_t storageMapID);
void getValues(CoreIPC::Connection*, uint64_t storageMapID, HashMap<String, String>& values);
void setItem(CoreIPC::Connection*, uint64_t storageAreaID, uint64_t sourceStorageAreaID, const String& key, const String& value, const String& urlString);
Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.messages.in (148694 => 148695)
--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.messages.in 2013-04-18 19:18:16 UTC (rev 148694)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.messages.in 2013-04-18 19:26:28 UTC (rev 148695)
@@ -21,7 +21,8 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
messages -> StorageManager {
- CreateStorageMap(uint64_t storageMapID, uint64_t storageNamespaceID, WebKit::SecurityOriginData securityOriginData) WantsConnection
+ CreateLocalStorageMap(uint64_t storageMapID, uint64_t storageNamespaceID, WebKit::SecurityOriginData securityOriginData) WantsConnection
+ CreateSessionStorageMap(uint64_t storageMapID, uint64_t storageNamespaceID, WebKit::SecurityOriginData securityOriginData) WantsConnection
DestroyStorageMap(uint64_t storageMapID) WantsConnection
GetValues(uint64_t storageMapID) -> (WTF::HashMap<WTF::String, WTF::String> values) WantsConnection
Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp (148694 => 148695)
--- trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp 2013-04-18 19:18:16 UTC (rev 148694)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp 2013-04-18 19:26:28 UTC (rev 148695)
@@ -62,7 +62,10 @@
, m_quotaInBytes(storageNamespace->quotaInBytes())
, m_securityOrigin(securityOrigin)
{
- WebProcess::shared().connection()->send(Messages::StorageManager::CreateStorageMap(m_storageMapID, storageNamespace->storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(m_securityOrigin.get())), 0);
+ if (m_storageType == LocalStorage)
+ WebProcess::shared().connection()->send(Messages::StorageManager::CreateLocalStorageMap(m_storageMapID, storageNamespace->storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(m_securityOrigin.get())), 0);
+ else
+ WebProcess::shared().connection()->send(Messages::StorageManager::CreateSessionStorageMap(m_storageMapID, storageNamespace->storageNamespaceID(), SecurityOriginData::fromSecurityOrigin(m_securityOrigin.get())), 0);
WebProcess::shared().addMessageReceiver(Messages::StorageAreaMap::messageReceiverName(), m_storageMapID, this);
}