Diff
Modified: trunk/Source/WebKit/ChangeLog (239209 => 239210)
--- trunk/Source/WebKit/ChangeLog 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/ChangeLog 2018-12-14 17:40:53 UTC (rev 239210)
@@ -1,3 +1,38 @@
+2018-12-14 Chris Dumez <cdu...@apple.com>
+
+ [PSON] WebsitePolicies are lost on process-swap
+ https://bugs.webkit.org/show_bug.cgi?id=192694
+ <rdar://problem/46715748>
+
+ Reviewed by Brady Eidson.
+
+ In case of process-swap on navigation, instead of sending the websitePolicies to the old
+ process, send them to the new process as we trigger the navigation. We tell the new process
+ that it is continuing a load and it will therefore not re-trigger a decidePolicyForNavigationAction.
+
+ * Shared/LoadParameters.cpp:
+ (WebKit::LoadParameters::encode const):
+ (WebKit::LoadParameters::decode):
+ * Shared/LoadParameters.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::reattachToWebProcessForReload):
+ (WebKit::WebPageProxy::reattachToWebProcessWithItem):
+ (WebKit::WebPageProxy::loadRequestWithNavigation):
+ (WebKit::WebPageProxy::loadDataWithNavigation):
+ (WebKit::WebPageProxy::goToBackForwardItem):
+ (WebKit::WebPageProxy::receivedNavigationPolicyDecision):
+ (WebKit::WebPageProxy::continueNavigationInNewProcess):
+ * UIProcess/WebPageProxy.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::loadRequest):
+ (WebKit::WebPage::loadDataImpl):
+ (WebKit::WebPage::loadData):
+ (WebKit::WebPage::loadAlternateHTML):
+ (WebKit::WebPage::goToBackForwardItem):
+ (WebKit::WebPage::createDocumentLoader):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+
2018-12-14 Patrick Griffis <pgrif...@igalia.com>
[GTK][WPE] Fix forwarding webkit socket to flatpak sandbox
Modified: trunk/Source/WebKit/Shared/LoadParameters.cpp (239209 => 239210)
--- trunk/Source/WebKit/Shared/LoadParameters.cpp 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/Shared/LoadParameters.cpp 2018-12-14 17:40:53 UTC (rev 239210)
@@ -49,6 +49,7 @@
encoder << baseURLString;
encoder << unreachableURLString;
encoder << provisionalLoadErrorURLString;
+ encoder << websitePolicies;
encoder << shouldOpenExternalURLsPolicy;
encoder << shouldTreatAsContinuingLoad;
encoder << userData;
@@ -105,6 +106,12 @@
if (!decoder.decode(data.provisionalLoadErrorURLString))
return false;
+ std::optional<std::optional<WebsitePoliciesData>> websitePolicies;
+ decoder >> websitePolicies;
+ if (!websitePolicies)
+ return false;
+ data.websitePolicies = WTFMove(*websitePolicies);
+
if (!decoder.decode(data.shouldOpenExternalURLsPolicy))
return false;
Modified: trunk/Source/WebKit/Shared/LoadParameters.h (239209 => 239210)
--- trunk/Source/WebKit/Shared/LoadParameters.h 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/Shared/LoadParameters.h 2018-12-14 17:40:53 UTC (rev 239210)
@@ -28,6 +28,7 @@
#include "DataReference.h"
#include "SandboxExtension.h"
#include "UserData.h"
+#include "WebsitePoliciesData.h"
#include <WebCore/FrameLoaderTypes.h>
#include <WebCore/ResourceRequest.h>
@@ -60,6 +61,8 @@
String unreachableURLString;
String provisionalLoadErrorURLString;
+ std::optional<WebsitePoliciesData> websitePolicies;
+
uint64_t shouldOpenExternalURLsPolicy;
bool shouldTreatAsContinuingLoad { false };
UserData userData;
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (239209 => 239210)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-12-14 17:40:53 UTC (rev 239210)
@@ -859,7 +859,7 @@
auto navigation = m_navigationState->createReloadNavigation();
// We allow stale content when reloading a WebProcess that's been killed or crashed.
- m_process->send(Messages::WebPage::GoToBackForwardItem(navigation->navigationID(), m_backForwardList->currentItem()->itemID(), FrameLoadType::IndexedBackForward, ShouldTreatAsContinuingLoad::No), m_pageID);
+ m_process->send(Messages::WebPage::GoToBackForwardItem(navigation->navigationID(), m_backForwardList->currentItem()->itemID(), FrameLoadType::IndexedBackForward, ShouldTreatAsContinuingLoad::No, std::nullopt), m_pageID);
m_process->responsivenessTimer().start();
return WTFMove(navigation);
@@ -878,7 +878,7 @@
auto navigation = m_navigationState->createBackForwardNavigation(item, m_backForwardList->currentItem(), FrameLoadType::IndexedBackForward);
- m_process->send(Messages::WebPage::GoToBackForwardItem(navigation->navigationID(), item.itemID(), FrameLoadType::IndexedBackForward, ShouldTreatAsContinuingLoad::No), m_pageID);
+ m_process->send(Messages::WebPage::GoToBackForwardItem(navigation->navigationID(), item.itemID(), FrameLoadType::IndexedBackForward, ShouldTreatAsContinuingLoad::No, std::nullopt), m_pageID);
m_process->responsivenessTimer().start();
return WTFMove(navigation);
@@ -1049,7 +1049,7 @@
return WTFMove(navigation);
}
-void WebPageProxy::loadRequestWithNavigation(API::Navigation& navigation, ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad)
+void WebPageProxy::loadRequestWithNavigation(API::Navigation& navigation, ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, std::optional<WebsitePoliciesData>&& websitePolicies)
{
ASSERT(!m_isClosed);
@@ -1067,6 +1067,7 @@
loadParameters.shouldOpenExternalURLsPolicy = (uint64_t)shouldOpenExternalURLsPolicy;
loadParameters.userData = UserData(process().transformObjectsToHandles(userData).get());
loadParameters.shouldTreatAsContinuingLoad = shouldTreatAsContinuingLoad == ShouldTreatAsContinuingLoad::Yes;
+ loadParameters.websitePolicies = WTFMove(websitePolicies);
loadParameters.lockHistory = navigation.lockHistory();
loadParameters.lockBackForwardList = navigation.lockBackForwardList();
loadParameters.clientRedirectSourceForHistory = navigation.clientRedirectSourceForHistory();
@@ -1133,7 +1134,7 @@
return WTFMove(navigation);
}
-void WebPageProxy::loadDataWithNavigation(API::Navigation& navigation, const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData)
+void WebPageProxy::loadDataWithNavigation(API::Navigation& navigation, const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, std::optional<WebsitePoliciesData>&& websitePolicies)
{
ASSERT(!m_isClosed);
@@ -1151,6 +1152,7 @@
loadParameters.encodingName = encoding;
loadParameters.baseURLString = baseURL;
loadParameters.userData = UserData(process().transformObjectsToHandles(userData).get());
+ loadParameters.websitePolicies = WTFMove(websitePolicies);
addPlatformLoadParameters(loadParameters);
m_process->assumeReadAccessToBaseURL(*this, baseURL);
@@ -1329,7 +1331,7 @@
if (!m_backForwardList->currentItem()->itemIsInSameDocument(item))
navigation = m_navigationState->createBackForwardNavigation(item, m_backForwardList->currentItem(), frameLoadType);
- m_process->send(Messages::WebPage::GoToBackForwardItem(navigation ? navigation->navigationID() : 0, item.itemID(), frameLoadType, ShouldTreatAsContinuingLoad::No), m_pageID);
+ m_process->send(Messages::WebPage::GoToBackForwardItem(navigation ? navigation->navigationID() : 0, item.itemID(), frameLoadType, ShouldTreatAsContinuingLoad::No, std::nullopt), m_pageID);
m_process->responsivenessTimer().start();
return navigation;
@@ -2638,10 +2640,11 @@
} else
RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "%p - WebPageProxy::decidePolicyForNavigationAction, keep using process %i for navigation, reason: %{public}s", this, processIdentifier(), reason.utf8().data());
- receivedPolicyDecision(policyAction, navigation.ptr(), WTFMove(data), WTFMove(sender));
+ bool shouldProcessSwap = processForNavigation.ptr() != &process();
+ receivedPolicyDecision(policyAction, navigation.ptr(), shouldProcessSwap ? std::nullopt : WTFMove(data), WTFMove(sender));
- if (processForNavigation.ptr() != &process())
- continueNavigationInNewProcess(navigation, destinationSuspendedPage ? process().processPool().takeSuspendedPage(*destinationSuspendedPage) : nullptr, WTFMove(processForNavigation), processSwapRequestedByClient);
+ if (shouldProcessSwap)
+ continueNavigationInNewProcess(navigation, destinationSuspendedPage ? process().processPool().takeSuspendedPage(*destinationSuspendedPage) : nullptr, WTFMove(processForNavigation), processSwapRequestedByClient, WTFMove(data));
});
}
@@ -2677,7 +2680,7 @@
sender->send(action, navigation ? navigation->navigationID() : 0, downloadID, WTFMove(websitePolicies));
}
-void WebPageProxy::continueNavigationInNewProcess(API::Navigation& navigation, std::unique_ptr<SuspendedPageProxy>&& suspendedPageProxy, Ref<WebProcessProxy>&& process, ProcessSwapRequestedByClient processSwapRequestedByClient)
+void WebPageProxy::continueNavigationInNewProcess(API::Navigation& navigation, std::unique_ptr<SuspendedPageProxy>&& suspendedPageProxy, Ref<WebProcessProxy>&& process, ProcessSwapRequestedByClient processSwapRequestedByClient, std::optional<WebsitePoliciesData>&& websitePolicies)
{
LOG(Loading, "Continuing navigation %" PRIu64 " '%s' in a new web process", navigation.navigationID(), navigation.loggingString());
@@ -2709,7 +2712,7 @@
return &item != targetItem;
});
m_process->send(Messages::WebPage::UpdateBackForwardListForReattach(WTFMove(itemStates)), m_pageID);
- m_process->send(Messages::WebPage::GoToBackForwardItem(navigation.navigationID(), item->itemID(), *navigation.backForwardFrameLoadType(), ShouldTreatAsContinuingLoad::Yes), m_pageID);
+ m_process->send(Messages::WebPage::GoToBackForwardItem(navigation.navigationID(), item->itemID(), *navigation.backForwardFrameLoadType(), ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies)), m_pageID);
m_process->responsivenessTimer().start();
return;
@@ -2724,9 +2727,9 @@
// FIXME: Work out timing of responding with the last policy delegate, etc
ASSERT(!navigation.currentRequest().isEmpty());
if (auto& substituteData = navigation.substituteData())
- loadDataWithNavigation(navigation, { substituteData->content.data(), substituteData->content.size() }, substituteData->MIMEType, substituteData->encoding, substituteData->baseURL, substituteData->userData.get());
+ loadDataWithNavigation(navigation, { substituteData->content.data(), substituteData->content.size() }, substituteData->MIMEType, substituteData->encoding, substituteData->baseURL, substituteData->userData.get(), WTFMove(websitePolicies));
else
- loadRequestWithNavigation(navigation, ResourceRequest { navigation.currentRequest() }, WebCore::ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemes, nullptr, ShouldTreatAsContinuingLoad::Yes);
+ loadRequestWithNavigation(navigation, ResourceRequest { navigation.currentRequest() }, WebCore::ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemes, nullptr, ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies));
ASSERT(!m_mainFrame);
m_mainFrameCreationHandler = [this, weakThis = makeWeakPtr(*this), navigationID = navigation.navigationID(), request = navigation.currentRequest(), mainFrameURL, isServerRedirect = navigation.currentRequestIsRedirect()]() mutable {
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (239209 => 239210)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2018-12-14 17:40:53 UTC (rev 239210)
@@ -1576,8 +1576,8 @@
RefPtr<API::Navigation> reattachToWebProcessForReload();
RefPtr<API::Navigation> reattachToWebProcessWithItem(WebBackForwardListItem&);
- void loadDataWithNavigation(API::Navigation&, const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr);
- void loadRequestWithNavigation(API::Navigation&, WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad);
+ void loadDataWithNavigation(API::Navigation&, const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr, std::optional<WebsitePoliciesData>&& = std::nullopt);
+ void loadRequestWithNavigation(API::Navigation&, WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, std::optional<WebsitePoliciesData>&& = std::nullopt);
void requestNotificationPermission(uint64_t notificationID, const String& originString);
void showNotification(const String& title, const String& body, const String& iconURL, const String& tag, const String& lang, WebCore::NotificationDirection, const String& originString, uint64_t notificationID);
@@ -1893,7 +1893,7 @@
void reportPageLoadResult(const WebCore::ResourceError& = { });
- void continueNavigationInNewProcess(API::Navigation&, std::unique_ptr<SuspendedPageProxy>&&, Ref<WebProcessProxy>&&, ProcessSwapRequestedByClient);
+ void continueNavigationInNewProcess(API::Navigation&, std::unique_ptr<SuspendedPageProxy>&&, Ref<WebProcessProxy>&&, ProcessSwapRequestedByClient, std::optional<WebsitePoliciesData>&&);
void setNeedsFontAttributes(bool);
void updateFontAttributesAfterEditorStateChange();
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (239209 => 239210)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-12-14 17:40:53 UTC (rev 239210)
@@ -1353,6 +1353,7 @@
SendStopResponsivenessTimer stopper;
m_pendingNavigationID = loadParameters.navigationID;
+ m_pendingWebsitePolicies = WTFMove(loadParameters.websitePolicies);
m_sandboxExtensionTracker.beginLoad(m_mainFrame.get(), WTFMove(loadParameters.sandboxExtensionHandle));
@@ -1374,13 +1375,15 @@
corePage()->userInputBridge().loadRequest(WTFMove(frameLoadRequest));
ASSERT(!m_pendingNavigationID);
+ ASSERT(!m_pendingWebsitePolicies);
}
-void WebPage::loadDataImpl(uint64_t navigationID, Ref<SharedBuffer>&& sharedBuffer, const String& MIMEType, const String& encodingName, const URL& baseURL, const URL& unreachableURL, const UserData& userData)
+void WebPage::loadDataImpl(uint64_t navigationID, std::optional<WebsitePoliciesData>&& websitePolicies, Ref<SharedBuffer>&& sharedBuffer, const String& MIMEType, const String& encodingName, const URL& baseURL, const URL& unreachableURL, const UserData& userData)
{
SendStopResponsivenessTimer stopper;
m_pendingNavigationID = navigationID;
+ m_pendingWebsitePolicies = WTFMove(websitePolicies);
ResourceRequest request(baseURL);
ResourceResponse response(URL(), MIMEType, sharedBuffer->size(), encodingName);
@@ -1400,10 +1403,10 @@
auto sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(loadParameters.data.data()), loadParameters.data.size());
URL baseURL = loadParameters.baseURLString.isEmpty() ? WTF::blankURL() : URL(URL(), loadParameters.baseURLString);
- loadDataImpl(loadParameters.navigationID, WTFMove(sharedBuffer), loadParameters.MIMEType, loadParameters.encodingName, baseURL, URL(), loadParameters.userData);
+ loadDataImpl(loadParameters.navigationID, WTFMove(loadParameters.websitePolicies), WTFMove(sharedBuffer), loadParameters.MIMEType, loadParameters.encodingName, baseURL, URL(), loadParameters.userData);
}
-void WebPage::loadAlternateHTML(const LoadParameters& loadParameters)
+void WebPage::loadAlternateHTML(LoadParameters&& loadParameters)
{
platformDidReceiveLoadParameters(loadParameters);
@@ -1412,7 +1415,7 @@
URL provisionalLoadErrorURL = loadParameters.provisionalLoadErrorURLString.isEmpty() ? URL() : URL(URL(), loadParameters.provisionalLoadErrorURLString);
auto sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(loadParameters.data.data()), loadParameters.data.size());
m_mainFrame->coreFrame()->loader().setProvisionalLoadErrorBeingHandledURL(provisionalLoadErrorURL);
- loadDataImpl(loadParameters.navigationID, WTFMove(sharedBuffer), loadParameters.MIMEType, loadParameters.encodingName, baseURL, unreachableURL, loadParameters.userData);
+ loadDataImpl(loadParameters.navigationID, WTFMove(loadParameters.websitePolicies), WTFMove(sharedBuffer), loadParameters.MIMEType, loadParameters.encodingName, baseURL, unreachableURL, loadParameters.userData);
m_mainFrame->coreFrame()->loader().setProvisionalLoadErrorBeingHandledURL({ });
}
@@ -1475,7 +1478,7 @@
}
}
-void WebPage::goToBackForwardItem(uint64_t navigationID, const BackForwardItemIdentifier& backForwardItemID, FrameLoadType backForwardType, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad)
+void WebPage::goToBackForwardItem(uint64_t navigationID, const BackForwardItemIdentifier& backForwardItemID, FrameLoadType backForwardType, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, std::optional<WebsitePoliciesData>&& websitePolicies)
{
SendStopResponsivenessTimer stopper;
@@ -1490,6 +1493,7 @@
ASSERT(!m_pendingNavigationID);
m_pendingNavigationID = navigationID;
+ m_pendingWebsitePolicies = WTFMove(websitePolicies);
m_page->goToItem(*item, backForwardType, shouldTreatAsContinuingLoad);
}
@@ -5979,6 +5983,9 @@
documentLoader->setNavigationID(m_pendingNavigationID);
m_pendingNavigationID = 0;
}
+
+ if (auto pendingWebsitePolicies = WTFMove(m_pendingWebsitePolicies))
+ WebsitePoliciesData::applyToDocumentLoader(WTFMove(*pendingWebsitePolicies), documentLoader);
}
return WTFMove(documentLoader);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (239209 => 239210)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2018-12-14 17:40:53 UTC (rev 239210)
@@ -50,6 +50,7 @@
#include "WebBackForwardListProxy.h"
#include "WebURLSchemeHandler.h"
#include "WebUserContentController.h"
+#include "WebsitePoliciesData.h"
#include <_javascript_Core/InspectorFrontendChannel.h>
#include <WebCore/ActivityState.h>
#include <WebCore/DictionaryPopupInfo.h>
@@ -1194,7 +1195,7 @@
String sourceForFrame(WebFrame*);
- void loadDataImpl(uint64_t navigationID, Ref<WebCore::SharedBuffer>&&, const String& MIMEType, const String& encodingName, const URL& baseURL, const URL& failingURL, const UserData&);
+ void loadDataImpl(uint64_t navigationID, std::optional<WebsitePoliciesData>&&, Ref<WebCore::SharedBuffer>&&, const String& MIMEType, const String& encodingName, const URL& baseURL, const URL& failingURL, const UserData&);
// Actions
void tryClose();
@@ -1201,10 +1202,10 @@
void platformDidReceiveLoadParameters(const LoadParameters&);
void loadRequest(LoadParameters&&);
void loadData(LoadParameters&&);
- void loadAlternateHTML(const LoadParameters&);
+ void loadAlternateHTML(LoadParameters&&);
void navigateToPDFLinkWithSimulatedClick(const String& url, WebCore::IntPoint documentPoint, WebCore::IntPoint screenPoint);
void reload(uint64_t navigationID, uint32_t reloadOptions, SandboxExtension::Handle&&);
- void goToBackForwardItem(uint64_t navigationID, const WebCore::BackForwardItemIdentifier&, WebCore::FrameLoadType, WebCore::ShouldTreatAsContinuingLoad);
+ void goToBackForwardItem(uint64_t navigationID, const WebCore::BackForwardItemIdentifier&, WebCore::FrameLoadType, WebCore::ShouldTreatAsContinuingLoad, std::optional<WebsitePoliciesData>&&);
void tryRestoreScrollPosition();
void setInitialFocus(bool forward, bool isKeyboardEventValid, const WebKeyboardEvent&, CallbackID);
void updateIsInWindow(bool isInitialState = false);
@@ -1748,6 +1749,7 @@
PAL::HysteresisActivity m_userActivityHysteresis;
uint64_t m_pendingNavigationID { 0 };
+ std::optional<WebsitePoliciesData> m_pendingWebsitePolicies;
bool m_mainFrameProgressCompleted { false };
bool m_shouldDispatchFakeMouseMoveEvents { true };
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (239209 => 239210)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2018-12-14 17:40:53 UTC (rev 239210)
@@ -145,7 +145,7 @@
ScrollBy(uint32_t scrollDirection, uint32_t scrollGranularity)
CenterSelectionInVisibleArea()
- GoToBackForwardItem(uint64_t navigationID, struct WebCore::BackForwardItemIdentifier backForwardItemID, enum:uint8_t WebCore::FrameLoadType backForwardType, enum:bool WebCore::ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad)
+ GoToBackForwardItem(uint64_t navigationID, struct WebCore::BackForwardItemIdentifier backForwardItemID, enum:uint8_t WebCore::FrameLoadType backForwardType, enum:bool WebCore::ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, std::optional<WebKit::WebsitePoliciesData> websitePolicies)
TryRestoreScrollPosition()
LoadURLInFrame(URL url, uint64_t frameID)
Modified: trunk/Tools/ChangeLog (239209 => 239210)
--- trunk/Tools/ChangeLog 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Tools/ChangeLog 2018-12-14 17:40:53 UTC (rev 239210)
@@ -1,3 +1,15 @@
+2018-12-14 Chris Dumez <cdu...@apple.com>
+
+ [PSON] WebsitePolicies are lost on process-swap
+ https://bugs.webkit.org/show_bug.cgi?id=192694
+ <rdar://problem/46715748>
+
+ Reviewed by Brady Eidson.
+
+ Extend existing API test to reproduce the issue.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
+
2018-12-14 Michael Catanzaro <mcatanz...@igalia.com>
[GTK] Error writing data to TLS socket in some sites when using the jhbuild
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm (239209 => 239210)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm 2018-12-14 17:32:18 UTC (rev 239209)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm 2018-12-14 17:40:53 UTC (rev 239210)
@@ -972,6 +972,15 @@
while (loadCount != 9U)
TestWebKitAPI::Util::spinRunLoop();
loadCount = 0;
+
+ request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"test://www.google.com/main.html"]];
+ [webView loadRequest:request];
+
+ TestWebKitAPI::Util::run(&finishedNavigation);
+ finishedNavigation = false;
+
+ EXPECT_EQ(1U, loadCount);
+ loadCount = 0;
}
@interface PopUpPoliciesDelegate : NSObject <WKNavigationDelegate, WKUIDelegatePrivate>