diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h')
-rw-r--r-- | Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h b/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h index 05ed85fee..f13a22dcb 100644 --- a/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h +++ b/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013-2017 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -23,11 +23,12 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef StorageNamespaceImpl_h -#define StorageNamespaceImpl_h +#pragma once +#include <WebCore/SecurityOriginData.h> #include <WebCore/SecurityOriginHash.h> #include <WebCore/StorageArea.h> +#include <WebCore/StorageMap.h> #include <WebCore/StorageNamespace.h> #include <wtf/HashMap.h> @@ -38,32 +39,40 @@ class WebPage; class StorageNamespaceImpl : public WebCore::StorageNamespace { public: - static PassRefPtr<StorageNamespaceImpl> createLocalStorageNamespace(WebCore::PageGroup*); - static PassRefPtr<StorageNamespaceImpl> createSessionStorageNamespace(WebPage*); + static RefPtr<StorageNamespaceImpl> createSessionStorageNamespace(uint64_t identifier, unsigned quotaInBytes); + static RefPtr<StorageNamespaceImpl> createEphemeralLocalStorageNamespace(uint64_t identifier, unsigned quotaInBytes); + static RefPtr<StorageNamespaceImpl> createLocalStorageNamespace(uint64_t identifier, unsigned quotaInBytes); + static RefPtr<StorageNamespaceImpl> createTransientLocalStorageNamespace(uint64_t identifier, WebCore::SecurityOrigin& topLevelOrigin, uint64_t quotaInBytes); + virtual ~StorageNamespaceImpl(); WebCore::StorageType storageType() const { return m_storageType; } uint64_t storageNamespaceID() const { return m_storageNamespaceID; } + WebCore::SecurityOrigin* topLevelOrigin() const { return m_topLevelOrigin.get(); } unsigned quotaInBytes() const { return m_quotaInBytes; } + void didDestroyStorageAreaMap(StorageAreaMap&); + private: - explicit StorageNamespaceImpl(WebCore::StorageType, uint64_t storageNamespaceID, unsigned quotaInBytes); + explicit StorageNamespaceImpl(WebCore::StorageType, uint64_t storageNamespaceID, WebCore::SecurityOrigin* topLevelOrigin, unsigned quotaInBytes); + + RefPtr<WebCore::StorageArea> storageArea(const WebCore::SecurityOriginData&) override; + RefPtr<WebCore::StorageNamespace> copy(WebCore::Page*) override; + + RefPtr<WebCore::StorageArea> ephemeralLocalStorageArea(const WebCore::SecurityOriginData&); - virtual PassRefPtr<WebCore::StorageArea> storageArea(PassRefPtr<WebCore::SecurityOrigin>) override; - virtual PassRefPtr<WebCore::StorageNamespace> copy(WebCore::Page*) override; - virtual void close() override; - virtual void clearOriginForDeletion(WebCore::SecurityOrigin*) override; - virtual void clearAllOriginsForDeletion() override; - virtual void sync() override; - virtual void closeIdleLocalStorageDatabases() override; + const WebCore::StorageType m_storageType; + const uint64_t m_storageNamespaceID; - WebCore::StorageType m_storageType; - uint64_t m_storageNamespaceID; - unsigned m_quotaInBytes; + // Only used for transient local storage namespaces. + const RefPtr<WebCore::SecurityOrigin> m_topLevelOrigin; - HashMap<RefPtr<WebCore::SecurityOrigin>, RefPtr<StorageAreaMap>> m_storageAreaMaps; + const unsigned m_quotaInBytes; + + HashMap<WebCore::SecurityOriginData, StorageAreaMap*> m_storageAreaMaps; + + class EphemeralStorageArea; + HashMap<WebCore::SecurityOriginData, RefPtr<EphemeralStorageArea>> m_ephemeralLocalStorageAreas; }; } // namespace WebKit - -#endif // StorageNamespaceImpl_h |