2929#include " Document.h"
3030#include " Page.h"
3131#include " SecurityOriginData.h"
32+ #include " Settings.h"
3233#include " StorageArea.h"
3334#include " StorageNamespace.h"
3435
3536namespace WebCore {
3637
37- // Suggested by the HTML5 spec.
38- unsigned localStorageDatabaseQuotaInBytes = 5 * 1024 * 1024 ;
39-
4038StorageNamespaceProvider::StorageNamespaceProvider ()
4139{
4240}
@@ -53,9 +51,9 @@ Ref<StorageArea> StorageNamespaceProvider::localStorageArea(Document& document)
5351
5452 RefPtr<StorageNamespace> storageNamespace;
5553 if (document.canAccessResource (ScriptExecutionContext::ResourceType::LocalStorage) == ScriptExecutionContext::HasResourceAccess::DefaultForThirdParty)
56- storageNamespace = transientLocalStorageNamespace (document.topOrigin (), document.page ()->sessionID ());
54+ storageNamespace = transientLocalStorageNamespace (document.topOrigin (), document.page ()->settings (). localStorageQuota (), document. page ()-> sessionID ());
5755 else
58- storageNamespace = localStorageNamespace (document.page ()->sessionID ());
56+ storageNamespace = localStorageNamespace (document.page ()->settings (). localStorageQuota (), document. page ()-> sessionID ());
5957
6058 return storageNamespace->storageArea (document.securityOrigin ());
6159}
@@ -69,20 +67,20 @@ Ref<StorageArea> StorageNamespaceProvider::sessionStorageArea(Document& document
6967 return sessionStorageNamespace (document.topOrigin (), *document.page ())->storageArea (document.securityOrigin ());
7068}
7169
72- StorageNamespace& StorageNamespaceProvider::localStorageNamespace (PAL::SessionID sessionID)
70+ StorageNamespace& StorageNamespaceProvider::localStorageNamespace (unsigned quota, PAL::SessionID sessionID)
7371{
7472 if (!m_localStorageNamespace)
75- m_localStorageNamespace = createLocalStorageNamespace (localStorageDatabaseQuotaInBytes , sessionID);
73+ m_localStorageNamespace = createLocalStorageNamespace (quota , sessionID);
7674
7775 ASSERT (m_localStorageNamespace->sessionID () == sessionID);
7876 return *m_localStorageNamespace;
7977}
8078
81- StorageNamespace& StorageNamespaceProvider::transientLocalStorageNamespace (SecurityOrigin& securityOrigin, PAL::SessionID sessionID)
79+ StorageNamespace& StorageNamespaceProvider::transientLocalStorageNamespace (SecurityOrigin& securityOrigin, unsigned quota, PAL::SessionID sessionID)
8280{
8381 auto & slot = m_transientLocalStorageNamespaces.add (securityOrigin.data (), nullptr ).iterator ->value ;
8482 if (!slot)
85- slot = createTransientLocalStorageNamespace (securityOrigin, localStorageDatabaseQuotaInBytes , sessionID);
83+ slot = createTransientLocalStorageNamespace (securityOrigin, quota , sessionID);
8684
8785 ASSERT (slot->sessionID () == sessionID);
8886 return *slot;
0 commit comments