[GTK][WPE] WTR: fix handling of WebsiteDataStore
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Apr 2020 06:19:23 +0000 (06:19 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Apr 2020 06:19:23 +0000 (06:19 +0000)
https://bugs.webkit.org/show_bug.cgi?id=210106

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Add WKContextSetPrimaryWebsiteDataStore() to expose WebProcessPool::setPrimaryDataStore().

* UIProcess/API/C/WKContext.cpp:
(WKContextSetPrimaryWebsiteDataStore):
* UIProcess/API/C/WKContextPrivate.h:

Tools:

The TestController::defaultWebsiteDataStore() is created and used but never really assigned to the
context. Since we are not assigning a WebsiteDataStore to the context, and we don't use the default
WebsiteDataStore, when a new page is created, we end up creating the default one (with the default config,
instead of the one created by WTR).

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::platformAdjustContext): Set defaultWebsiteDataStore() as the primary data store of the
context like the GLib API does.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/API/C/WKContext.cpp
Source/WebKit/UIProcess/API/C/WKContextPrivate.h
Tools/ChangeLog
Tools/WebKitTestRunner/TestController.cpp

index 40d0b09..ae5ce58 100644 (file)
@@ -1,3 +1,16 @@
+2020-04-07  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK][WPE] WTR: fix handling of WebsiteDataStore
+        https://bugs.webkit.org/show_bug.cgi?id=210106
+
+        Reviewed by Adrian Perez de Castro.
+
+        Add WKContextSetPrimaryWebsiteDataStore() to expose WebProcessPool::setPrimaryDataStore().
+
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextSetPrimaryWebsiteDataStore):
+        * UIProcess/API/C/WKContextPrivate.h:
+
 2020-04-07  Per Arne Vollan  <pvollan@apple.com>
 
         [iOS] Deny mach lookup access to the runningboard service in the WebContent process
index 64685da..6d27842 100644 (file)
@@ -670,3 +670,8 @@ void WKContextSetUseSeparateServiceWorkerProcess(WKContextRef contextRef, bool u
 {
     WebKit::toImpl(contextRef)->setUseSeparateServiceWorkerProcess(useSeparateServiceWorkerProcess);
 }
+
+void WKContextSetPrimaryWebsiteDataStore(WKContextRef contextRef, WKWebsiteDataStoreRef websiteDataStore)
+{
+    WebKit::toImpl(contextRef)->setPrimaryDataStore(*WebKit::toImpl(websiteDataStore));
+}
index e776b74..a771d58 100644 (file)
@@ -119,6 +119,8 @@ WK_EXPORT void WKContextClearLegacyPrivateBrowsingLocalStorage(WKContextRef cont
 
 WK_EXPORT void WKContextSetUseSeparateServiceWorkerProcess(WKContextRef context, bool forceServiceWorkerProcess);
 
+WK_EXPORT void WKContextSetPrimaryWebsiteDataStore(WKContextRef context, WKWebsiteDataStoreRef websiteDataStore);
+
 #ifdef __cplusplus
 }
 #endif
index c9e1d26..4936ff0 100644 (file)
@@ -1,3 +1,19 @@
+2020-04-07  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK][WPE] WTR: fix handling of WebsiteDataStore
+        https://bugs.webkit.org/show_bug.cgi?id=210106
+
+        Reviewed by Adrian Perez de Castro.
+
+        The TestController::defaultWebsiteDataStore() is created and used but never really assigned to the
+        context. Since we are not assigning a WebsiteDataStore to the context, and we don't use the default
+        WebsiteDataStore, when a new page is created, we end up creating the default one (with the default config,
+        instead of the one created by WTR).
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::platformAdjustContext): Set defaultWebsiteDataStore() as the primary data store of the
+        context like the GLib API does.
+
 2020-04-07  Fujii Hironori  <Hironori.Fujii@sony.com>
 
         [Clang 10] Fix -Wimplicit-int-float-conversion compilation warnings in TestWebKitAPI
index 9bde273..82e976b 100644 (file)
@@ -3111,7 +3111,12 @@ PlatformWebView* TestController::platformCreateOtherPage(PlatformWebView* parent
 
 WKContextRef TestController::platformAdjustContext(WKContextRef context, WKContextConfigurationRef contextConfiguration)
 {
+#if PLATFORM(GTK) || PLATFORM(WPE)
+    WKWebsiteDataStoreSetResourceLoadStatisticsEnabled(defaultWebsiteDataStore(), true);
+    WKContextSetPrimaryWebsiteDataStore(context, defaultWebsiteDataStore());
+#else
     WKWebsiteDataStoreSetResourceLoadStatisticsEnabled(WKContextGetWebsiteDataStore(context), true);
+#endif
     return context;
 }