|
Lines 104-112
class WebsiteDataTest : public WebViewTest {
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec1
|
| 104 |
public: |
104 |
public: |
| 105 |
MAKE_GLIB_TEST_FIXTURE(WebsiteDataTest); |
105 |
MAKE_GLIB_TEST_FIXTURE(WebsiteDataTest); |
| 106 |
|
106 |
|
| 107 |
|
|
|
| 108 |
WebsiteDataTest() |
107 |
WebsiteDataTest() |
|
|
108 |
#if ENABLE(2022_GLIB_API) |
| 109 |
: m_manager(webkit_network_session_get_website_data_manager(webkit_web_view_get_network_session(m_webView))) |
| 110 |
#else |
| 109 |
: m_manager(webkit_web_context_get_website_data_manager(webkit_web_view_get_context(m_webView))) |
111 |
: m_manager(webkit_web_context_get_website_data_manager(webkit_web_view_get_context(m_webView))) |
|
|
112 |
#endif |
| 110 |
{ |
113 |
{ |
| 111 |
g_assert_true(WEBKIT_IS_WEBSITE_DATA_MANAGER(m_manager)); |
114 |
g_assert_true(WEBKIT_IS_WEBSITE_DATA_MANAGER(m_manager)); |
| 112 |
assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_manager)); |
115 |
assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_manager)); |
|
Lines 160-169
public:
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec2
|
| 160 |
GList* m_dataList { nullptr }; |
163 |
GList* m_dataList { nullptr }; |
| 161 |
}; |
164 |
}; |
| 162 |
|
165 |
|
| 163 |
#if !ENABLE(2022_GLIB_API) |
|
|
| 164 |
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer) |
166 |
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer) |
| 165 |
{ |
167 |
{ |
|
|
168 |
#if !ENABLE(2022_GLIB_API) |
| 166 |
ALLOW_DEPRECATED_DECLARATIONS_BEGIN |
169 |
ALLOW_DEPRECATED_DECLARATIONS_BEGIN |
|
|
170 |
#endif |
| 167 |
|
171 |
|
| 168 |
g_assert_cmpstr(webkit_website_data_manager_get_base_data_directory(test->m_manager), ==, Test::dataDirectory()); |
172 |
g_assert_cmpstr(webkit_website_data_manager_get_base_data_directory(test->m_manager), ==, Test::dataDirectory()); |
| 169 |
g_assert_cmpstr(webkit_website_data_manager_get_base_cache_directory(test->m_manager), ==, Test::dataDirectory()); |
173 |
g_assert_cmpstr(webkit_website_data_manager_get_base_cache_directory(test->m_manager), ==, Test::dataDirectory()); |
|
Lines 172-178
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec3
|
| 172 |
test->waitUntilLoadFinished(); |
176 |
test->waitUntilLoadFinished(); |
| 173 |
test->runJavaScriptAndWaitUntilFinished("window.localStorage.myproperty = 42;", nullptr); |
177 |
test->runJavaScriptAndWaitUntilFinished("window.localStorage.myproperty = 42;", nullptr); |
| 174 |
GUniquePtr<char> localStorageDirectory(g_build_filename(Test::dataDirectory(), "localstorage", nullptr)); |
178 |
GUniquePtr<char> localStorageDirectory(g_build_filename(Test::dataDirectory(), "localstorage", nullptr)); |
|
|
179 |
#if !ENABLE(2022_GLIB_API) |
| 175 |
g_assert_cmpstr(localStorageDirectory.get(), ==, webkit_website_data_manager_get_local_storage_directory(test->m_manager)); |
180 |
g_assert_cmpstr(localStorageDirectory.get(), ==, webkit_website_data_manager_get_local_storage_directory(test->m_manager)); |
|
|
181 |
#endif |
| 176 |
test->assertFileIsCreated(localStorageDirectory.get()); |
182 |
test->assertFileIsCreated(localStorageDirectory.get()); |
| 177 |
g_assert_true(g_file_test(localStorageDirectory.get(), G_FILE_TEST_IS_DIR)); |
183 |
g_assert_true(g_file_test(localStorageDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 178 |
test->runJavaScriptAndWaitUntilFinished("window.localStorage.clear();", nullptr); |
184 |
test->runJavaScriptAndWaitUntilFinished("window.localStorage.clear();", nullptr); |
|
Lines 181-217
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec4
|
| 181 |
test->waitUntilLoadFinished(); |
187 |
test->waitUntilLoadFinished(); |
| 182 |
test->runJavaScriptAndWaitUntilFinished("window.indexedDB.open('TestDatabase');", nullptr); |
188 |
test->runJavaScriptAndWaitUntilFinished("window.indexedDB.open('TestDatabase');", nullptr); |
| 183 |
GUniquePtr<char> indexedDBDirectory(g_build_filename(Test::dataDirectory(), "databases", "indexeddb", nullptr)); |
189 |
GUniquePtr<char> indexedDBDirectory(g_build_filename(Test::dataDirectory(), "databases", "indexeddb", nullptr)); |
|
|
190 |
#if !ENABLE(2022_GLIB_API) |
| 184 |
g_assert_cmpstr(indexedDBDirectory.get(), ==, webkit_website_data_manager_get_indexeddb_directory(test->m_manager)); |
191 |
g_assert_cmpstr(indexedDBDirectory.get(), ==, webkit_website_data_manager_get_indexeddb_directory(test->m_manager)); |
|
|
192 |
#endif |
| 185 |
test->assertFileIsCreated(indexedDBDirectory.get()); |
193 |
test->assertFileIsCreated(indexedDBDirectory.get()); |
| 186 |
g_assert_true(g_file_test(indexedDBDirectory.get(), G_FILE_TEST_IS_DIR)); |
194 |
g_assert_true(g_file_test(indexedDBDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 187 |
|
195 |
|
| 188 |
test->loadURI(kServer->getURIForPath("/appcache").data()); |
196 |
test->loadURI(kServer->getURIForPath("/appcache").data()); |
| 189 |
test->waitUntilLoadFinished(); |
197 |
test->waitUntilLoadFinished(); |
| 190 |
GUniquePtr<char> applicationCacheDirectory(g_build_filename(Test::dataDirectory(), "applications", nullptr)); |
198 |
GUniquePtr<char> applicationCacheDirectory(g_build_filename(Test::dataDirectory(), "applications", nullptr)); |
|
|
199 |
#if !ENABLE(2022_GLIB_API) |
| 191 |
g_assert_cmpstr(applicationCacheDirectory.get(), ==, webkit_website_data_manager_get_offline_application_cache_directory(test->m_manager)); |
200 |
g_assert_cmpstr(applicationCacheDirectory.get(), ==, webkit_website_data_manager_get_offline_application_cache_directory(test->m_manager)); |
|
|
201 |
#endif |
| 192 |
GUniquePtr<char> applicationCacheDatabase(g_build_filename(applicationCacheDirectory.get(), "ApplicationCache.db", nullptr)); |
202 |
GUniquePtr<char> applicationCacheDatabase(g_build_filename(applicationCacheDirectory.get(), "ApplicationCache.db", nullptr)); |
| 193 |
test->assertFileIsCreated(applicationCacheDatabase.get()); |
203 |
test->assertFileIsCreated(applicationCacheDatabase.get()); |
| 194 |
|
204 |
|
| 195 |
GUniquePtr<char> diskCacheDirectory(g_build_filename(Test::dataDirectory(), nullptr)); |
205 |
GUniquePtr<char> diskCacheDirectory(g_build_filename(Test::dataDirectory(), nullptr)); |
|
|
206 |
#if !ENABLE(2022_GLIB_API) |
| 196 |
g_assert_cmpstr(diskCacheDirectory.get(), ==, webkit_website_data_manager_get_disk_cache_directory(test->m_manager)); |
207 |
g_assert_cmpstr(diskCacheDirectory.get(), ==, webkit_website_data_manager_get_disk_cache_directory(test->m_manager)); |
|
|
208 |
#endif |
| 197 |
g_assert_true(g_file_test(diskCacheDirectory.get(), G_FILE_TEST_IS_DIR)); |
209 |
g_assert_true(g_file_test(diskCacheDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 198 |
|
210 |
|
| 199 |
GUniquePtr<char> hstsCacheDirectory(g_build_filename(Test::dataDirectory(), nullptr)); |
211 |
GUniquePtr<char> hstsCacheDirectory(g_build_filename(Test::dataDirectory(), nullptr)); |
|
|
212 |
#if !ENABLE(2022_GLIB_API) |
| 200 |
g_assert_cmpstr(hstsCacheDirectory.get(), ==, webkit_website_data_manager_get_hsts_cache_directory(test->m_manager)); |
213 |
g_assert_cmpstr(hstsCacheDirectory.get(), ==, webkit_website_data_manager_get_hsts_cache_directory(test->m_manager)); |
|
|
214 |
#endif |
| 201 |
g_assert_true(g_file_test(hstsCacheDirectory.get(), G_FILE_TEST_IS_DIR)); |
215 |
g_assert_true(g_file_test(hstsCacheDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 202 |
|
216 |
|
|
|
217 |
#if !ENABLE(2022_GLIB_API) |
| 203 |
GUniquePtr<char> itpDirectory(g_build_filename(Test::dataDirectory(), "itp", nullptr)); |
218 |
GUniquePtr<char> itpDirectory(g_build_filename(Test::dataDirectory(), "itp", nullptr)); |
| 204 |
g_assert_cmpstr(itpDirectory.get(), ==, webkit_website_data_manager_get_itp_directory(test->m_manager)); |
219 |
g_assert_cmpstr(itpDirectory.get(), ==, webkit_website_data_manager_get_itp_directory(test->m_manager)); |
|
|
220 |
#endif |
| 205 |
|
221 |
|
| 206 |
test->runJavaScriptAndWaitUntilFinished("navigator.serviceWorker.register('./some-dummy.js');", nullptr); |
222 |
test->runJavaScriptAndWaitUntilFinished("navigator.serviceWorker.register('./some-dummy.js');", nullptr); |
| 207 |
GUniquePtr<char> swRegistrationsDirectory(g_build_filename(Test::dataDirectory(), "serviceworkers", nullptr)); |
223 |
GUniquePtr<char> swRegistrationsDirectory(g_build_filename(Test::dataDirectory(), "serviceworkers", nullptr)); |
|
|
224 |
#if !ENABLE(2022_GLIB_API) |
| 208 |
g_assert_cmpstr(swRegistrationsDirectory.get(), ==, webkit_website_data_manager_get_service_worker_registrations_directory(test->m_manager)); |
225 |
g_assert_cmpstr(swRegistrationsDirectory.get(), ==, webkit_website_data_manager_get_service_worker_registrations_directory(test->m_manager)); |
|
|
226 |
#endif |
| 209 |
test->assertFileIsCreated(swRegistrationsDirectory.get()); |
227 |
test->assertFileIsCreated(swRegistrationsDirectory.get()); |
| 210 |
g_assert_true(g_file_test(swRegistrationsDirectory.get(), G_FILE_TEST_IS_DIR)); |
228 |
g_assert_true(g_file_test(swRegistrationsDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 211 |
|
229 |
|
| 212 |
test->runJavaScriptAndWaitUntilFinished("let domCacheOpened = false; caches.open('my-cache').then(() => { domCacheOpened = true});", nullptr); |
230 |
test->runJavaScriptAndWaitUntilFinished("let domCacheOpened = false; caches.open('my-cache').then(() => { domCacheOpened = true});", nullptr); |
| 213 |
GUniquePtr<char> domCacheDirectory(g_build_filename(Test::dataDirectory(), "CacheStorage", nullptr)); |
231 |
GUniquePtr<char> domCacheDirectory(g_build_filename(Test::dataDirectory(), "CacheStorage", nullptr)); |
|
|
232 |
#if !ENABLE(2022_GLIB_API) |
| 214 |
g_assert_cmpstr(domCacheDirectory.get(), ==, webkit_website_data_manager_get_dom_cache_directory(test->m_manager)); |
233 |
g_assert_cmpstr(domCacheDirectory.get(), ==, webkit_website_data_manager_get_dom_cache_directory(test->m_manager)); |
|
|
234 |
#endif |
| 215 |
test->assertFileIsCreated(domCacheDirectory.get()); |
235 |
test->assertFileIsCreated(domCacheDirectory.get()); |
| 216 |
g_assert_true(g_file_test(domCacheDirectory.get(), G_FILE_TEST_IS_DIR)); |
236 |
g_assert_true(g_file_test(domCacheDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 217 |
|
237 |
|
|
Lines 226-235
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec5
|
| 226 |
test->clear(persistentCaches, 0); |
246 |
test->clear(persistentCaches, 0); |
| 227 |
g_assert_null(test->fetch(persistentCaches)); |
247 |
g_assert_null(test->fetch(persistentCaches)); |
| 228 |
|
248 |
|
| 229 |
// The default context should have a different manager with different configuration. |
249 |
// The default context or session should have a different manager with different configuration. |
| 230 |
WebKitWebsiteDataManager* defaultManager = webkit_web_context_get_website_data_manager(webkit_web_context_get_default()); |
250 |
#if ENABLE(2022_GLIB_API) |
|
|
251 |
auto* defaultManager = webkit_network_session_get_website_data_manager(webkit_network_session_get_default()); |
| 252 |
#else |
| 253 |
auto* defaultManager = webkit_web_context_get_website_data_manager(webkit_web_context_get_default()); |
| 254 |
#endif |
| 231 |
g_assert_true(WEBKIT_IS_WEBSITE_DATA_MANAGER(defaultManager)); |
255 |
g_assert_true(WEBKIT_IS_WEBSITE_DATA_MANAGER(defaultManager)); |
| 232 |
g_assert_true(test->m_manager != defaultManager); |
256 |
g_assert_true(test->m_manager != defaultManager); |
|
|
257 |
g_assert_cmpstr(webkit_website_data_manager_get_base_data_directory(test->m_manager), !=, webkit_website_data_manager_get_base_data_directory(defaultManager)); |
| 258 |
g_assert_cmpstr(webkit_website_data_manager_get_base_cache_directory(test->m_manager), !=, webkit_website_data_manager_get_base_cache_directory(defaultManager)); |
| 259 |
#if !ENABLE(2022_GLIB_API) |
| 233 |
g_assert_cmpstr(webkit_website_data_manager_get_local_storage_directory(test->m_manager), !=, webkit_website_data_manager_get_local_storage_directory(defaultManager)); |
260 |
g_assert_cmpstr(webkit_website_data_manager_get_local_storage_directory(test->m_manager), !=, webkit_website_data_manager_get_local_storage_directory(defaultManager)); |
| 234 |
g_assert_cmpstr(webkit_website_data_manager_get_indexeddb_directory(test->m_manager), !=, webkit_website_data_manager_get_indexeddb_directory(defaultManager)); |
261 |
g_assert_cmpstr(webkit_website_data_manager_get_indexeddb_directory(test->m_manager), !=, webkit_website_data_manager_get_indexeddb_directory(defaultManager)); |
| 235 |
g_assert_cmpstr(webkit_website_data_manager_get_disk_cache_directory(test->m_manager), !=, webkit_website_data_manager_get_disk_cache_directory(defaultManager)); |
262 |
g_assert_cmpstr(webkit_website_data_manager_get_disk_cache_directory(test->m_manager), !=, webkit_website_data_manager_get_disk_cache_directory(defaultManager)); |
|
Lines 238-244
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec6
|
| 238 |
g_assert_cmpstr(webkit_website_data_manager_get_itp_directory(test->m_manager), !=, webkit_website_data_manager_get_itp_directory(defaultManager)); |
265 |
g_assert_cmpstr(webkit_website_data_manager_get_itp_directory(test->m_manager), !=, webkit_website_data_manager_get_itp_directory(defaultManager)); |
| 239 |
g_assert_cmpstr(webkit_website_data_manager_get_service_worker_registrations_directory(test->m_manager), !=, webkit_website_data_manager_get_service_worker_registrations_directory(defaultManager)); |
266 |
g_assert_cmpstr(webkit_website_data_manager_get_service_worker_registrations_directory(test->m_manager), !=, webkit_website_data_manager_get_service_worker_registrations_directory(defaultManager)); |
| 240 |
g_assert_cmpstr(webkit_website_data_manager_get_dom_cache_directory(test->m_manager), !=, webkit_website_data_manager_get_dom_cache_directory(defaultManager)); |
267 |
g_assert_cmpstr(webkit_website_data_manager_get_dom_cache_directory(test->m_manager), !=, webkit_website_data_manager_get_dom_cache_directory(defaultManager)); |
|
|
268 |
#endif |
| 241 |
|
269 |
|
|
|
270 |
#if !ENABLE(2022_GLIB_API) |
| 242 |
// Any specific configuration provided takes precedence over base dirs. |
271 |
// Any specific configuration provided takes precedence over base dirs. |
| 243 |
indexedDBDirectory.reset(g_build_filename(Test::dataDirectory(), "mycustomindexeddb", nullptr)); |
272 |
indexedDBDirectory.reset(g_build_filename(Test::dataDirectory(), "mycustomindexeddb", nullptr)); |
| 244 |
applicationCacheDirectory.reset(g_build_filename(Test::dataDirectory(), "mycustomappcache", nullptr)); |
273 |
applicationCacheDirectory.reset(g_build_filename(Test::dataDirectory(), "mycustomappcache", nullptr)); |
|
Lines 258-265
static void testWebsiteDataConfiguration(WebsiteDataTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec7
|
| 258 |
g_assert_cmpstr(webkit_website_data_manager_get_disk_cache_directory(baseDataManager.get()), ==, diskCacheDirectory.get()); |
287 |
g_assert_cmpstr(webkit_website_data_manager_get_disk_cache_directory(baseDataManager.get()), ==, diskCacheDirectory.get()); |
| 259 |
|
288 |
|
| 260 |
ALLOW_DEPRECATED_DECLARATIONS_END |
289 |
ALLOW_DEPRECATED_DECLARATIONS_END |
| 261 |
} |
|
|
| 262 |
#endif |
290 |
#endif |
|
|
291 |
} |
| 263 |
|
292 |
|
| 264 |
static void ephemeralViewloadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent, WebViewTest* test) |
293 |
static void ephemeralViewloadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent, WebViewTest* test) |
| 265 |
{ |
294 |
{ |
|
Lines 271-278
static void ephemeralViewloadChanged(WebKitWebView* webView, WebKitLoadEvent loa
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec8
|
| 271 |
|
300 |
|
| 272 |
static void testWebsiteDataEphemeral(WebViewTest* test, gconstpointer) |
301 |
static void testWebsiteDataEphemeral(WebViewTest* test, gconstpointer) |
| 273 |
{ |
302 |
{ |
|
|
303 |
#if ENABLE(2022_GLIB_API) |
| 304 |
GRefPtr<WebKitNetworkSession> session = adoptGRef(webkit_network_session_new_ephemeral()); |
| 305 |
GRefPtr<WebKitWebsiteDataManager> manager = webkit_network_session_get_website_data_manager(session.get()); |
| 306 |
#else |
| 274 |
GRefPtr<WebKitWebsiteDataManager> manager = adoptGRef(webkit_website_data_manager_new_ephemeral()); |
307 |
GRefPtr<WebKitWebsiteDataManager> manager = adoptGRef(webkit_website_data_manager_new_ephemeral()); |
| 275 |
g_assert_true(webkit_website_data_manager_is_ephemeral(manager.get())); |
308 |
g_assert_true(webkit_website_data_manager_is_ephemeral(manager.get())); |
|
|
309 |
#endif |
| 276 |
g_assert_null(webkit_website_data_manager_get_base_data_directory(manager.get())); |
310 |
g_assert_null(webkit_website_data_manager_get_base_data_directory(manager.get())); |
| 277 |
g_assert_null(webkit_website_data_manager_get_base_cache_directory(manager.get())); |
311 |
g_assert_null(webkit_website_data_manager_get_base_cache_directory(manager.get())); |
| 278 |
|
312 |
|
|
Lines 286-307
static void testWebsiteDataEphemeral(WebViewTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec9
|
| 286 |
g_assert_null(webkit_website_data_manager_get_itp_directory(manager.get())); |
320 |
g_assert_null(webkit_website_data_manager_get_itp_directory(manager.get())); |
| 287 |
g_assert_null(webkit_website_data_manager_get_service_worker_registrations_directory(manager.get())); |
321 |
g_assert_null(webkit_website_data_manager_get_service_worker_registrations_directory(manager.get())); |
| 288 |
ALLOW_DEPRECATED_DECLARATIONS_END |
322 |
ALLOW_DEPRECATED_DECLARATIONS_END |
| 289 |
#endif |
|
|
| 290 |
|
323 |
|
| 291 |
// Configuration is ignored when is-ephemeral is used. |
324 |
// Configuration is ignored when is-ephemeral is used. |
| 292 |
manager = adoptGRef(WEBKIT_WEBSITE_DATA_MANAGER(g_object_new(WEBKIT_TYPE_WEBSITE_DATA_MANAGER, "base-data-directory", Test::dataDirectory(), "is-ephemeral", TRUE, nullptr))); |
325 |
manager = adoptGRef(WEBKIT_WEBSITE_DATA_MANAGER(g_object_new(WEBKIT_TYPE_WEBSITE_DATA_MANAGER, "base-data-directory", Test::dataDirectory(), "is-ephemeral", TRUE, nullptr))); |
| 293 |
g_assert_true(webkit_website_data_manager_is_ephemeral(manager.get())); |
326 |
g_assert_true(webkit_website_data_manager_is_ephemeral(manager.get())); |
| 294 |
g_assert_null(webkit_website_data_manager_get_base_data_directory(manager.get())); |
327 |
g_assert_null(webkit_website_data_manager_get_base_data_directory(manager.get())); |
|
|
328 |
#endif |
| 295 |
|
329 |
|
|
|
330 |
#if ENABLE(2022_GLIB_API) |
| 331 |
webkit_network_session_set_itp_enabled(session.get(), TRUE); |
| 332 |
g_assert_true(webkit_network_session_get_itp_enabled(session.get())); |
| 333 |
#else |
| 296 |
webkit_website_data_manager_set_itp_enabled(manager.get(), TRUE); |
334 |
webkit_website_data_manager_set_itp_enabled(manager.get(), TRUE); |
| 297 |
g_assert(webkit_website_data_manager_get_itp_enabled(manager.get())); |
335 |
g_assert_true(webkit_website_data_manager_get_itp_enabled(manager.get())); |
|
|
336 |
#endif |
| 298 |
|
337 |
|
| 299 |
// Non persistent data can be queried in an ephemeral manager. |
338 |
// Non persistent data can be queried in an ephemeral manager. |
|
|
339 |
#if ENABLE(2022_GLIB_API) |
| 340 |
auto webView = Test::adoptView(g_object_new(WEBKIT_TYPE_WEB_VIEW, |
| 341 |
"web-context", webkit_web_view_get_context(test->m_webView), |
| 342 |
"network-session", session.get(), |
| 343 |
nullptr)); |
| 344 |
g_assert_true(webkit_web_view_get_network_session(webView.get()) == session.get()); |
| 345 |
#else |
| 300 |
GRefPtr<WebKitWebContext> webContext = adoptGRef(webkit_web_context_new_with_website_data_manager(manager.get())); |
346 |
GRefPtr<WebKitWebContext> webContext = adoptGRef(webkit_web_context_new_with_website_data_manager(manager.get())); |
| 301 |
g_assert_true(webkit_web_context_is_ephemeral(webContext.get())); |
347 |
g_assert_true(webkit_web_context_is_ephemeral(webContext.get())); |
| 302 |
auto webView = Test::adoptView(Test::createWebView(webContext.get())); |
348 |
auto webView = Test::adoptView(Test::createWebView(webContext.get())); |
| 303 |
g_assert_true(webkit_web_view_is_ephemeral(webView.get())); |
349 |
g_assert_true(webkit_web_view_is_ephemeral(webView.get())); |
| 304 |
g_assert_true(webkit_web_view_get_website_data_manager(webView.get()) == manager.get()); |
350 |
g_assert_true(webkit_web_view_get_website_data_manager(webView.get()) == manager.get()); |
|
|
351 |
#endif |
| 305 |
|
352 |
|
| 306 |
g_signal_connect(webView.get(), "load-changed", G_CALLBACK(ephemeralViewloadChanged), test); |
353 |
g_signal_connect(webView.get(), "load-changed", G_CALLBACK(ephemeralViewloadChanged), test); |
| 307 |
webkit_web_view_load_uri(webView.get(), kServer->getURIForPath("/empty").data()); |
354 |
webkit_web_view_load_uri(webView.get(), kServer->getURIForPath("/empty").data()); |
|
Lines 325-331
static void testWebsiteDataEphemeral(WebViewTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec10
|
| 325 |
}, test); |
372 |
}, test); |
| 326 |
g_main_loop_run(test->m_mainLoop); |
373 |
g_main_loop_run(test->m_mainLoop); |
| 327 |
|
374 |
|
|
|
375 |
#if ENABLE(2022_GLIB_API) |
| 376 |
webkit_network_session_set_itp_enabled(session.get(), FALSE); |
| 377 |
#else |
| 328 |
webkit_website_data_manager_set_itp_enabled(manager.get(), FALSE); |
378 |
webkit_website_data_manager_set_itp_enabled(manager.get(), FALSE); |
|
|
379 |
#endif |
| 329 |
} |
380 |
} |
| 330 |
|
381 |
|
| 331 |
static void testWebsiteDataCache(WebsiteDataTest* test, gconstpointer) |
382 |
static void testWebsiteDataCache(WebsiteDataTest* test, gconstpointer) |
|
Lines 682-712
static void testWebsiteDataDeviceIdHashSalt(WebsiteDataTest* test, gconstpointer
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec11
|
| 682 |
webkit_settings_set_enable_mock_capture_devices(settings, enabled); |
733 |
webkit_settings_set_enable_mock_capture_devices(settings, enabled); |
| 683 |
} |
734 |
} |
| 684 |
|
735 |
|
| 685 |
#if !ENABLE(2022_GLIB_API) |
|
|
| 686 |
static void testWebsiteDataITP(WebsiteDataTest* test, gconstpointer) |
736 |
static void testWebsiteDataITP(WebsiteDataTest* test, gconstpointer) |
| 687 |
{ |
737 |
{ |
| 688 |
ALLOW_DEPRECATED_DECLARATIONS_BEGIN |
738 |
GUniquePtr<char> itpDirectory(g_build_filename(Test::dataDirectory(), "itp", nullptr)); |
| 689 |
const char* itpDirectory = webkit_website_data_manager_get_itp_directory(test->m_manager); |
739 |
GUniquePtr<char> itpDatabaseFile(g_build_filename(itpDirectory.get(), "observations.db", nullptr)); |
| 690 |
ALLOW_DEPRECATED_DECLARATIONS_END |
|
|
| 691 |
GUniquePtr<char> itpDatabaseFile(g_build_filename(itpDirectory, "observations.db", nullptr)); |
| 692 |
|
740 |
|
| 693 |
// Delete any previous data. |
741 |
// Delete any previous data. |
| 694 |
g_unlink(itpDatabaseFile.get()); |
742 |
g_unlink(itpDatabaseFile.get()); |
| 695 |
g_rmdir(itpDirectory); |
743 |
g_rmdir(itpDirectory.get()); |
| 696 |
|
744 |
|
|
|
745 |
#if ENABLE(2022_GLIB_API) |
| 746 |
g_assert_false(webkit_network_session_get_itp_enabled(test->m_networkSession.get())); |
| 747 |
#else |
| 697 |
g_assert_false(webkit_website_data_manager_get_itp_enabled(test->m_manager)); |
748 |
g_assert_false(webkit_website_data_manager_get_itp_enabled(test->m_manager)); |
|
|
749 |
#endif |
| 698 |
test->loadURI(kServer->getURIForPath("/empty").data()); |
750 |
test->loadURI(kServer->getURIForPath("/empty").data()); |
| 699 |
test->waitUntilLoadFinished(); |
751 |
test->waitUntilLoadFinished(); |
| 700 |
|
752 |
|
|
|
753 |
#if ENABLE(2022_GLIB_API) |
| 754 |
webkit_network_session_set_itp_enabled(test->m_networkSession.get(), TRUE); |
| 755 |
g_assert_true(webkit_network_session_get_itp_enabled(test->m_networkSession.get())); |
| 756 |
#else |
| 701 |
webkit_website_data_manager_set_itp_enabled(test->m_manager, TRUE); |
757 |
webkit_website_data_manager_set_itp_enabled(test->m_manager, TRUE); |
| 702 |
g_assert_true(webkit_website_data_manager_get_itp_enabled(test->m_manager)); |
758 |
g_assert_true(webkit_website_data_manager_get_itp_enabled(test->m_manager)); |
| 703 |
g_assert_false(g_file_test(itpDirectory, G_FILE_TEST_IS_DIR)); |
759 |
#endif |
|
|
760 |
g_assert_false(g_file_test(itpDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 704 |
g_assert_false(g_file_test(itpDatabaseFile.get(), G_FILE_TEST_IS_REGULAR)); |
761 |
g_assert_false(g_file_test(itpDatabaseFile.get(), G_FILE_TEST_IS_REGULAR)); |
| 705 |
|
762 |
|
| 706 |
test->loadURI(kServer->getURIForPath("/empty").data()); |
763 |
test->loadURI(kServer->getURIForPath("/empty").data()); |
| 707 |
test->waitUntilLoadFinished(); |
764 |
test->waitUntilLoadFinished(); |
| 708 |
test->assertFileIsCreated(itpDatabaseFile.get()); |
765 |
test->assertFileIsCreated(itpDatabaseFile.get()); |
| 709 |
g_assert_true(g_file_test(itpDirectory, G_FILE_TEST_IS_DIR)); |
766 |
g_assert_true(g_file_test(itpDirectory.get(), G_FILE_TEST_IS_DIR)); |
| 710 |
g_assert_true(g_file_test(itpDatabaseFile.get(), G_FILE_TEST_IS_REGULAR)); |
767 |
g_assert_true(g_file_test(itpDatabaseFile.get(), G_FILE_TEST_IS_REGULAR)); |
| 711 |
|
768 |
|
| 712 |
// Give some time for the database to be updated. |
769 |
// Give some time for the database to be updated. |
|
Lines 731-742
static void testWebsiteDataITP(WebsiteDataTest* test, gconstpointer)
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec12
|
| 731 |
static const WebKitWebsiteDataTypes cacheAndITP = static_cast<WebKitWebsiteDataTypes>(WEBKIT_WEBSITE_DATA_ITP | WEBKIT_WEBSITE_DATA_MEMORY_CACHE | WEBKIT_WEBSITE_DATA_DISK_CACHE); |
788 |
static const WebKitWebsiteDataTypes cacheAndITP = static_cast<WebKitWebsiteDataTypes>(WEBKIT_WEBSITE_DATA_ITP | WEBKIT_WEBSITE_DATA_MEMORY_CACHE | WEBKIT_WEBSITE_DATA_DISK_CACHE); |
| 732 |
test->clear(cacheAndITP, 0); |
789 |
test->clear(cacheAndITP, 0); |
| 733 |
|
790 |
|
|
|
791 |
#if ENABLE(2022_GLIB_API) |
| 792 |
webkit_network_session_set_itp_enabled(test->m_networkSession.get(), FALSE); |
| 793 |
g_assert_false(webkit_network_session_get_itp_enabled(test->m_networkSession.get())); |
| 794 |
#else |
| 734 |
webkit_website_data_manager_set_itp_enabled(test->m_manager, FALSE); |
795 |
webkit_website_data_manager_set_itp_enabled(test->m_manager, FALSE); |
| 735 |
g_assert_false(webkit_website_data_manager_get_itp_enabled(test->m_manager)); |
796 |
g_assert_false(webkit_website_data_manager_get_itp_enabled(test->m_manager)); |
|
|
797 |
#endif |
| 736 |
|
798 |
|
| 737 |
g_rmdir(itpDirectory); |
799 |
g_rmdir(itpDirectory.get()); |
| 738 |
} |
800 |
} |
| 739 |
#endif |
|
|
| 740 |
|
801 |
|
| 741 |
static void testWebsiteDataServiceWorkerRegistrations(WebsiteDataTest* test, gconstpointer) |
802 |
static void testWebsiteDataServiceWorkerRegistrations(WebsiteDataTest* test, gconstpointer) |
| 742 |
{ |
803 |
{ |
|
Lines 814-826
public:
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec13
|
| 814 |
webkit_memory_pressure_settings_set_kill_threshold(settings, 1); |
875 |
webkit_memory_pressure_settings_set_kill_threshold(settings, 1); |
| 815 |
webkit_memory_pressure_settings_set_strict_threshold(settings, 0.75); |
876 |
webkit_memory_pressure_settings_set_strict_threshold(settings, 0.75); |
| 816 |
webkit_memory_pressure_settings_set_conservative_threshold(settings, 0.5); |
877 |
webkit_memory_pressure_settings_set_conservative_threshold(settings, 0.5); |
|
|
878 |
#if ENABLE(2022_GLIB_API) |
| 879 |
webkit_network_session_set_memory_pressure_settings(settings); |
| 880 |
#else |
| 817 |
webkit_website_data_manager_set_memory_pressure_settings(settings); |
881 |
webkit_website_data_manager_set_memory_pressure_settings(settings); |
|
|
882 |
#endif |
| 818 |
webkit_memory_pressure_settings_free(settings); |
883 |
webkit_memory_pressure_settings_free(settings); |
| 819 |
} |
884 |
} |
| 820 |
|
885 |
|
| 821 |
static void teardown() |
886 |
static void teardown() |
| 822 |
{ |
887 |
{ |
|
|
888 |
#if ENABLE(2022_GLIB_API) |
| 889 |
webkit_network_session_set_memory_pressure_settings(nullptr); |
| 890 |
#else |
| 823 |
webkit_website_data_manager_set_memory_pressure_settings(nullptr); |
891 |
webkit_website_data_manager_set_memory_pressure_settings(nullptr); |
|
|
892 |
#endif |
| 824 |
} |
893 |
} |
| 825 |
|
894 |
|
| 826 |
static gboolean loadFailedCallback(WebKitWebView* webView, WebKitLoadEvent loadEvent, const char* failingURI, GError* error, MemoryPressureTest* test) |
895 |
static gboolean loadFailedCallback(WebKitWebView* webView, WebKitLoadEvent loadEvent, const char* failingURI, GError* error, MemoryPressureTest* test) |
|
Lines 859-867
void beforeAll()
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec14
|
| 859 |
prepopulateHstsData(); |
928 |
prepopulateHstsData(); |
| 860 |
#endif |
929 |
#endif |
| 861 |
|
930 |
|
| 862 |
#if !ENABLE(2022_GLIB_API) |
|
|
| 863 |
WebsiteDataTest::add("WebKitWebsiteData", "configuration", testWebsiteDataConfiguration); |
931 |
WebsiteDataTest::add("WebKitWebsiteData", "configuration", testWebsiteDataConfiguration); |
| 864 |
#endif |
|
|
| 865 |
WebViewTest::add("WebKitWebsiteData", "ephemeral", testWebsiteDataEphemeral); |
932 |
WebViewTest::add("WebKitWebsiteData", "ephemeral", testWebsiteDataEphemeral); |
| 866 |
WebsiteDataTest::add("WebKitWebsiteData", "cache", testWebsiteDataCache); |
933 |
WebsiteDataTest::add("WebKitWebsiteData", "cache", testWebsiteDataCache); |
| 867 |
WebsiteDataTest::add("WebKitWebsiteData", "storage", testWebsiteDataStorage); |
934 |
WebsiteDataTest::add("WebKitWebsiteData", "storage", testWebsiteDataStorage); |
|
Lines 872-881
void beforeAll()
a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp_sec15
|
| 872 |
WebsiteDataTest::add("WebKitWebsiteData", "hsts", testWebsiteDataHsts); |
939 |
WebsiteDataTest::add("WebKitWebsiteData", "hsts", testWebsiteDataHsts); |
| 873 |
#endif |
940 |
#endif |
| 874 |
WebsiteDataTest::add("WebKitWebsiteData", "deviceidhashsalt", testWebsiteDataDeviceIdHashSalt); |
941 |
WebsiteDataTest::add("WebKitWebsiteData", "deviceidhashsalt", testWebsiteDataDeviceIdHashSalt); |
| 875 |
#if !ENABLE(2022_GLIB_API) |
|
|
| 876 |
// FIXME: find a way to test this without deprecated API. |
| 877 |
WebsiteDataTest::add("WebKitWebsiteData", "itp", testWebsiteDataITP); |
942 |
WebsiteDataTest::add("WebKitWebsiteData", "itp", testWebsiteDataITP); |
| 878 |
#endif |
|
|
| 879 |
WebsiteDataTest::add("WebKitWebsiteData", "service-worker-registrations", testWebsiteDataServiceWorkerRegistrations); |
943 |
WebsiteDataTest::add("WebKitWebsiteData", "service-worker-registrations", testWebsiteDataServiceWorkerRegistrations); |
| 880 |
WebsiteDataTest::add("WebKitWebsiteData", "dom-cache", testWebsiteDataDOMCache); |
944 |
WebsiteDataTest::add("WebKitWebsiteData", "dom-cache", testWebsiteDataDOMCache); |
| 881 |
MemoryPressureTest::add("WebKitWebsiteData", "memory-pressure", testMemoryPressureSettings); |
945 |
MemoryPressureTest::add("WebKitWebsiteData", "memory-pressure", testMemoryPressureSettings); |