ebfaf5fe5ef589e5886e0c001313c01166bd0994
[WebKit-https.git] / Source / WebKit / UIProcess / WebsiteData / WebsiteDataStoreConfiguration.h
1 /*
2  * Copyright (C) 2018 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #pragma once
27
28 #include "APIObject.h"
29 #include <wtf/text/WTFString.h>
30
31 namespace WebKit {
32
33 class WebsiteDataStoreConfiguration : public API::ObjectImpl<API::Object::Type::WebsiteDataStoreConfiguration> {
34 public:
35     static Ref<WebsiteDataStoreConfiguration> create() { return adoptRef(*new WebsiteDataStoreConfiguration); }
36
37     Ref<WebsiteDataStoreConfiguration> copy();
38
39     uint64_t cacheStoragePerOriginQuota() { return m_cacheStoragePerOriginQuota; }
40     void setCacheStoragePerOriginQuota(uint64_t quota) { m_cacheStoragePerOriginQuota = quota; }
41
42     const String& applicationCacheDirectory() const { return m_applicationCacheDirectory; }
43     void setApplicationCacheDirectory(String&& directory) { m_applicationCacheDirectory = WTFMove(directory); }
44     
45     const String& mediaCacheDirectory() const { return m_mediaCacheDirectory; }
46     void setMediaCacheDirectory(String&& directory) { m_mediaCacheDirectory = WTFMove(directory); }
47     
48     const String& mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
49     void setMediaKeysStorageDirectory(String&& directory) { m_mediaKeysStorageDirectory = WTFMove(directory); }
50     
51     const String& javaScriptConfigurationDirectory() const { return m_javaScriptConfigurationDirectory; }
52     void setJavaScriptConfigurationDirectory(String&& directory) { m_javaScriptConfigurationDirectory = WTFMove(directory); }
53     
54     const String& webStorageDirectory() const { return m_webStorageDirectory; }
55     void setWebStorageDirectory(String&& directory) { m_webStorageDirectory = WTFMove(directory); }
56
57     const String& indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
58     void setIndexedDBDatabaseDirectory(String&& directory) { m_indexedDBDatabaseDirectory = WTFMove(directory); }
59
60     const String& webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
61     void setWebSQLDatabaseDirectory(String&& directory) { m_webSQLDatabaseDirectory = WTFMove(directory); }
62
63     const String& localStorageDirectory() const { return m_localStorageDirectory; }
64     void setLocalStorageDirectory(String&& directory) { m_localStorageDirectory = WTFMove(directory); }
65     
66     const String& cookieStorageFile() const { return m_cookieStorageFile; }
67     void setCookieStorageFile(String&& directory) { m_cookieStorageFile = WTFMove(directory); }
68     
69     const String& resourceLoadStatisticsDirectory() const { return m_resourceLoadStatisticsDirectory; }
70     void setResourceLoadStatisticsDirectory(String&& directory) { m_resourceLoadStatisticsDirectory = WTFMove(directory); }
71
72     const String& networkCacheDirectory() const { return m_networkCacheDirectory; }
73     void setNetworkCacheDirectory(String&& directory) { m_networkCacheDirectory = WTFMove(directory); }
74     
75     const String& cacheStorageDirectory() const { return m_cacheStorageDirectory; }
76     void setCacheStorageDirectory(String&& directory) { m_cacheStorageDirectory = WTFMove(directory); }
77     
78     const String& applicationCacheFlatFileSubdirectoryName() const { return m_applicationCacheFlatFileSubdirectoryName; }
79     void setApplicationCacheFlatFileSubdirectoryName(String&& directory) { m_applicationCacheFlatFileSubdirectoryName = WTFMove(directory); }
80     
81     const String& serviceWorkerRegistrationDirectory() const { return m_serviceWorkerRegistrationDirectory; }
82     void setServiceWorkerRegistrationDirectory(String&& directory) { m_serviceWorkerRegistrationDirectory = WTFMove(directory); }
83     
84     const String& sourceApplicationBundleIdentifier() const { return m_sourceApplicationBundleIdentifier; }
85     void setSourceApplicationBundleIdentifier(String&& identifier) { m_sourceApplicationBundleIdentifier = WTFMove(identifier); }
86
87     const String& sourceApplicationSecondaryIdentifier() const { return m_sourceApplicationSecondaryIdentifier; }
88     void setSourceApplicationSecondaryIdentifier(String&& identifier) { m_sourceApplicationSecondaryIdentifier = WTFMove(identifier); }
89
90     constexpr static uint64_t defaultCacheStoragePerOriginQuota = 50 * 1024 * 1024;
91
92 private:
93     WebsiteDataStoreConfiguration();
94
95     String m_cacheStorageDirectory;
96     uint64_t m_cacheStoragePerOriginQuota { defaultCacheStoragePerOriginQuota };
97     String m_networkCacheDirectory;
98     String m_applicationCacheDirectory;
99     String m_applicationCacheFlatFileSubdirectoryName;
100     String m_webStorageDirectory;
101     String m_mediaCacheDirectory;
102     String m_indexedDBDatabaseDirectory;
103     String m_serviceWorkerRegistrationDirectory;
104     String m_webSQLDatabaseDirectory;
105     String m_localStorageDirectory;
106     String m_mediaKeysStorageDirectory;
107     String m_deviceIdHashSaltsStorageDirectory;
108     String m_resourceLoadStatisticsDirectory;
109     String m_javaScriptConfigurationDirectory;
110     String m_cookieStorageFile;
111     String m_sourceApplicationBundleIdentifier;
112     String m_sourceApplicationSecondaryIdentifier;
113 };
114
115 }