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");
}