Title: [259324] trunk
Revision
259324
Author
[email protected]
Date
2020-03-31 17:09:44 -0700 (Tue, 31 Mar 2020)

Log Message

Send correct UserContentControllerIdentifier after using SPI WKWebpagePreferences._userContentController
https://bugs.webkit.org/show_bug.cgi?id=209833

Reviewed by Tim Hatcher.

Source/WebKit:

Covered by an API test.  I knew something was broken in r259307 and this was it.

* Shared/UserContentControllerParameters.cpp:
(WebKit::UserContentControllerParameters::encode const):
(WebKit::UserContentControllerParameters::decode):
* Shared/UserContentControllerParameters.h:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::parameters const):
* UIProcess/WebPageProxy.cpp:
* WebProcess/WebPage/WebPage.cpp:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (259323 => 259324)


--- trunk/Source/WebKit/ChangeLog	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/ChangeLog	2020-04-01 00:09:44 UTC (rev 259324)
@@ -1,3 +1,25 @@
+2020-03-31  Alex Christensen  <[email protected]>
+
+        Send correct UserContentControllerIdentifier after using SPI WKWebpagePreferences._userContentController
+        https://bugs.webkit.org/show_bug.cgi?id=209833
+
+        Reviewed by Tim Hatcher.
+
+        Covered by an API test.  I knew something was broken in r259307 and this was it.
+
+        * Shared/UserContentControllerParameters.cpp:
+        (WebKit::UserContentControllerParameters::encode const):
+        (WebKit::UserContentControllerParameters::decode):
+        * Shared/UserContentControllerParameters.h:
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode const):
+        (WebKit::WebPageCreationParameters::decode):
+        * Shared/WebPageCreationParameters.h:
+        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
+        (WebKit::WebUserContentControllerProxy::parameters const):
+        * UIProcess/WebPageProxy.cpp:
+        * WebProcess/WebPage/WebPage.cpp:
+
 2020-03-31  Fujii Hironori  <[email protected]>
 
         Deduplicate WebsiteDataStore::parameters() of Cocoa port and non-Cocoa port

Modified: trunk/Source/WebKit/Shared/UserContentControllerParameters.cpp (259323 => 259324)


--- trunk/Source/WebKit/Shared/UserContentControllerParameters.cpp	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/Shared/UserContentControllerParameters.cpp	2020-04-01 00:09:44 UTC (rev 259324)
@@ -33,6 +33,7 @@
 
 void UserContentControllerParameters::encode(IPC::Encoder& encoder) const
 {
+    encoder << identifier;
     encoder << userContentWorlds;
     encoder << userScripts;
     encoder << userStyleSheets;
@@ -44,6 +45,11 @@
 
 Optional<UserContentControllerParameters> UserContentControllerParameters::decode(IPC::Decoder& decoder)
 {
+    Optional<UserContentControllerIdentifier> identifier;
+    decoder >> identifier;
+    if (!identifier)
+        return WTF::nullopt;
+    
     Optional<Vector<std::pair<ContentWorldIdentifier, String>>> userContentWorlds;
     decoder >> userContentWorlds;
     if (!userContentWorlds)
@@ -72,6 +78,7 @@
 #endif
 
     return {{
+        WTFMove(*identifier),
         WTFMove(*userContentWorlds),
         WTFMove(*userScripts),
         WTFMove(*userStyleSheets),

Modified: trunk/Source/WebKit/Shared/UserContentControllerParameters.h (259323 => 259324)


--- trunk/Source/WebKit/Shared/UserContentControllerParameters.h	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/Shared/UserContentControllerParameters.h	2020-04-01 00:09:44 UTC (rev 259324)
@@ -25,6 +25,7 @@
 
 #pragma once
 
+#include "UserContentControllerIdentifier.h"
 #include "WebCompiledContentRuleListData.h"
 #include "WebUserContentControllerDataTypes.h"
 
@@ -37,6 +38,7 @@
 
 struct UserContentControllerParameters {
 
+    UserContentControllerIdentifier identifier;
     Vector<std::pair<ContentWorldIdentifier, String>> userContentWorlds;
     Vector<WebUserScriptData> userScripts;
     Vector<WebUserStyleSheetData> userStyleSheets;

Modified: trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp (259323 => 259324)


--- trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp	2020-04-01 00:09:44 UTC (rev 259324)
@@ -54,7 +54,6 @@
     encoder << userAgent;
     encoder << itemStatesWereRestoredByAPIRequest;
     encoder << itemStates;
-    encoder << userContentControllerID;
     encoder << visitedLinkTableID;
     encoder << canRunBeforeUnloadConfirmPanel;
     encoder << canRunModal;
@@ -218,12 +217,6 @@
         return WTF::nullopt;
     parameters.itemStates = WTFMove(*itemStates);
 
-    Optional<UserContentControllerIdentifier> userContentControllerIdentifier;
-    decoder >> userContentControllerIdentifier;
-    if (!userContentControllerIdentifier)
-        return WTF::nullopt;
-    parameters.userContentControllerID = *userContentControllerIdentifier;
-
     if (!decoder.decode(parameters.visitedLinkTableID))
         return WTF::nullopt;
     if (!decoder.decode(parameters.canRunBeforeUnloadConfirmPanel))

Modified: trunk/Source/WebKit/Shared/WebPageCreationParameters.h (259323 => 259324)


--- trunk/Source/WebKit/Shared/WebPageCreationParameters.h	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/Shared/WebPageCreationParameters.h	2020-04-01 00:09:44 UTC (rev 259324)
@@ -99,7 +99,6 @@
     bool itemStatesWereRestoredByAPIRequest { false };
     Vector<BackForwardListItemState> itemStates;
 
-    UserContentControllerIdentifier userContentControllerID;
     uint64_t visitedLinkTableID;
     bool canRunBeforeUnloadConfirmPanel;
     bool canRunModal;

Modified: trunk/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp (259323 => 259324)


--- trunk/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp	2020-04-01 00:09:44 UTC (rev 259324)
@@ -108,6 +108,8 @@
 {
     UserContentControllerParameters parameters;
 
+    parameters.identifier = identifier();
+    
     for (const auto& world : m_contentWorlds)
         parameters.userContentWorlds.append(world.key->worldData());
 

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (259323 => 259324)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-04-01 00:09:44 UTC (rev 259324)
@@ -7684,7 +7684,6 @@
     parameters.userAgent = userAgent();
     parameters.itemStatesWereRestoredByAPIRequest = m_sessionStateWasRestoredByAPIRequest;
     parameters.itemStates = m_backForwardList->itemStates();
-    parameters.userContentControllerID = m_userContentController->identifier();
     parameters.visitedLinkTableID = m_visitedLinkStore->identifier();
     parameters.canRunBeforeUnloadConfirmPanel = m_uiClient->canRunBeforeUnloadConfirmPanel();
     parameters.canRunModal = m_canRunModal;

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (259323 => 259324)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2020-04-01 00:09:44 UTC (rev 259324)
@@ -422,7 +422,7 @@
     , m_uiClient(makeUnique<API::InjectedBundle::PageUIClient>())
     , m_findController(makeUniqueRef<FindController>(this))
     , m_inspectorTargetController(makeUnique<WebPageInspectorTargetController>(*this))
-    , m_userContentController(WebUserContentController::getOrCreate(parameters.userContentControllerID))
+    , m_userContentController(WebUserContentController::getOrCreate(parameters.userContentControllerParameters.identifier))
 #if ENABLE(GEOLOCATION)
     , m_geolocationPermissionRequestManager(makeUniqueRef<GeolocationPermissionRequestManager>(*this))
 #endif

Modified: trunk/Tools/ChangeLog (259323 => 259324)


--- trunk/Tools/ChangeLog	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Tools/ChangeLog	2020-04-01 00:09:44 UTC (rev 259324)
@@ -1,3 +1,12 @@
+2020-03-31  Alex Christensen  <[email protected]>
+
+        Send correct UserContentControllerIdentifier after using SPI WKWebpagePreferences._userContentController
+        https://bugs.webkit.org/show_bug.cgi?id=209833
+
+        Reviewed by Tim Hatcher.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
+
 2020-03-31  Brent Fulgham  <[email protected]>
 
         Allow WKAppBoundDomains to be initialized with eTLD+1 only (no protocol)

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm (259323 => 259324)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm	2020-04-01 00:05:04 UTC (rev 259323)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm	2020-04-01 00:09:44 UTC (rev 259324)
@@ -1778,5 +1778,6 @@
     }
     EXPECT_TRUE(caughtException);
 
-    // FIXME: Make _addUserScriptImmediately work successfully after using WKWebpagePreferences._userContentController
+    [replacementUserContentController _addUserScriptImmediately:makeScript(@"alert('testAlert3');")];
+    EXPECT_WK_STREQ([uiDelegate waitForAlert], "testAlert3");
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to