Modified: tags/Safari-607.1.16.4/Source/WebKit/ChangeLog (239271 => 239272)
--- tags/Safari-607.1.16.4/Source/WebKit/ChangeLog 2018-12-17 18:42:34 UTC (rev 239271)
+++ tags/Safari-607.1.16.4/Source/WebKit/ChangeLog 2018-12-17 18:42:38 UTC (rev 239272)
@@ -1,5 +1,23 @@
2018-12-14 Kocsen Chung <[email protected]>
+ Cherry-pick r239228. rdar://problem/46715748
+
+ Unreviewed, fix assertion failure in API test after r239210.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createDocumentLoader):
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2018-12-14 Chris Dumez <[email protected]>
+
+ Unreviewed, fix assertion failure in API test after r239210.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createDocumentLoader):
+
+2018-12-14 Kocsen Chung <[email protected]>
+
Cherry-pick r239210. rdar://problem/46715748
[PSON] WebsitePolicies are lost on process-swap
Modified: tags/Safari-607.1.16.4/Source/WebKit/UIProcess/WebPageProxy.cpp (239271 => 239272)
--- tags/Safari-607.1.16.4/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-12-17 18:42:34 UTC (rev 239271)
+++ tags/Safari-607.1.16.4/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-12-17 18:42:38 UTC (rev 239272)
@@ -2626,7 +2626,7 @@
}
bool shouldProcessSwap = processForNavigation.ptr() != &process();
- receivedPolicyDecision(policyAction, navigation.ptr(), shouldProcessSwap ? std::nullopt : WTFMove(data), WTFMove(sender));
+ receivedPolicyDecision(policyAction, navigation, shouldProcessSwap ? std::nullopt : WTFMove(data), WTFMove(sender));
if (shouldProcessSwap)
continueNavigationInNewProcess(*navigation, WTFMove(processForNavigation), WTFMove(data));
@@ -2674,7 +2674,7 @@
ASSERT(m_process.ptr() != process.ptr());
- swapToWebProcess(WTFMove(process), navigation, mainFrameIDInPreviousProcess, [this, protectedThis = makeRef(*this), navigation = makeRef(navigation), previousProcess = WTFMove(previousProcess), mainFrameIDInPreviousProcess, mainFrameURL = WTFMove(mainFrameURL)]() mutable {
+ swapToWebProcess(WTFMove(process), navigation, mainFrameIDInPreviousProcess, [this, protectedThis = makeRef(*this), navigation = makeRef(navigation), previousProcess = WTFMove(previousProcess), mainFrameIDInPreviousProcess, mainFrameURL = WTFMove(mainFrameURL), websitePolicies = WTFMove(websitePolicies)]() mutable {
if (auto* item = navigation->targetItem()) {
LOG(Loading, "WebPageProxy %p continueNavigationInNewProcess to back item URL %s", this, item->url().utf8().data());
Modified: tags/Safari-607.1.16.4/Source/WebKit/WebProcess/WebPage/WebPage.cpp (239271 => 239272)
--- tags/Safari-607.1.16.4/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-12-17 18:42:34 UTC (rev 239271)
+++ tags/Safari-607.1.16.4/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-12-17 18:42:38 UTC (rev 239272)
@@ -5955,8 +5955,10 @@
m_pendingNavigationID = 0;
}
- if (auto pendingWebsitePolicies = WTFMove(m_pendingWebsitePolicies))
- WebsitePoliciesData::applyToDocumentLoader(WTFMove(*pendingWebsitePolicies), documentLoader);
+ if (m_pendingWebsitePolicies) {
+ WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader);
+ m_pendingWebsitePolicies = std::nullopt;
+ }
}
return WTFMove(documentLoader);