Diff
Modified: tags/Safari-607.1.3.2/Source/WebKit/ChangeLog (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/ChangeLog 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/ChangeLog 2018-08-27 17:42:41 UTC (rev 235384)
@@ -1,5 +1,9 @@
2018-08-27 Babak Shafiei <bshaf...@apple.com>
+ Revert r234985. rdar://problem/43703115
+
+2018-08-27 Babak Shafiei <bshaf...@apple.com>
+
Revert r234989. rdar://problem/43703115
2018-08-23 Kocsen Chung <kocsen_ch...@apple.com>
Modified: tags/Safari-607.1.3.2/Source/WebKit/Shared/LoadParameters.cpp (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/Shared/LoadParameters.cpp 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/Shared/LoadParameters.cpp 2018-08-27 17:42:41 UTC (rev 235384)
@@ -41,6 +41,7 @@
encoder << sandboxExtensionHandle;
encoder << data;
+ encoder << string;
encoder << MIMEType;
encoder << encodingName;
encoder << baseURLString;
@@ -82,6 +83,9 @@
if (!decoder.decode(data.data))
return false;
+ if (!decoder.decode(data.string))
+ return false;
+
if (!decoder.decode(data.MIMEType))
return false;
Modified: tags/Safari-607.1.3.2/Source/WebKit/Shared/LoadParameters.h (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/Shared/LoadParameters.h 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/Shared/LoadParameters.h 2018-08-27 17:42:41 UTC (rev 235384)
@@ -23,7 +23,8 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#pragma once
+#ifndef LoadParameters_h
+#define LoadParameters_h
#include "DataReference.h"
#include "SandboxExtension.h"
@@ -52,6 +53,7 @@
SandboxExtension::Handle sandboxExtensionHandle;
IPC::DataReference data;
+ String string;
String MIMEType;
String encodingName;
@@ -70,3 +72,5 @@
};
} // namespace WebKit
+
+#endif // LoadParameters_h
Modified: tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/C/WKPage.cpp (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/C/WKPage.cpp 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/C/WKPage.cpp 2018-08-27 17:42:41 UTC (rev 235384)
@@ -199,24 +199,19 @@
toImpl(pageRef)->loadData(toImpl(dataRef)->dataReference(), toWTFString(MIMETypeRef), toWTFString(encodingRef), toWTFString(baseURLRef), toImpl(userDataRef));
}
-static String encodingOf(const String& string)
-{
- if (string.isNull() || string.is8Bit())
- "latin1"_s;
- return "utf-16"_s;
-}
-
-static IPC::DataReference dataFrom(const String& string)
-{
- if (string.isNull() || string.is8Bit())
- return { reinterpret_cast<const uint8_t*>(string.characters8()), string.length() * sizeof(LChar) };
- return { reinterpret_cast<const uint8_t*>(string.characters16()), string.length() * sizeof(UChar) };
-}
-
static void loadString(WKPageRef pageRef, WKStringRef stringRef, const String& mimeType, const String& baseURL, WKTypeRef userDataRef)
{
String string = toWTFString(stringRef);
- toImpl(pageRef)->loadData(dataFrom(string), mimeType, encodingOf(string), baseURL, toImpl(userDataRef));
+ String encoding;
+ IPC::DataReference data;
+ if (string.isNull() || string.is8Bit()) {
+ encoding = "latin1"_s;
+ data = { reinterpret_cast<const uint8_t*>(string.characters8()), string.length() * sizeof(LChar) };
+ } else {
+ encoding = "utf-16"_s;
+ data = { reinterpret_cast<const uint8_t*>(string.characters16()), string.length() * sizeof(UChar) };
+ }
+ toImpl(pageRef)->loadData(data, mimeType, encoding, baseURL, toImpl(userDataRef));
}
void WKPageLoadHTMLString(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef)
@@ -231,13 +226,12 @@
void WKPageLoadAlternateHTMLString(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef, WKURLRef unreachableURLRef)
{
- WKPageLoadAlternateHTMLStringWithUserData(pageRef, htmlStringRef, baseURLRef, unreachableURLRef, nullptr);
+ toImpl(pageRef)->loadAlternateHTMLString(toWTFString(htmlStringRef), URL(URL(), toWTFString(baseURLRef)), URL(URL(), toWTFString(unreachableURLRef)));
}
void WKPageLoadAlternateHTMLStringWithUserData(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef, WKURLRef unreachableURLRef, WKTypeRef userDataRef)
{
- String string = toWTFString(htmlStringRef);
- toImpl(pageRef)->loadAlternateHTML(dataFrom(string), encodingOf(string), URL(URL(), toWTFString(baseURLRef)), URL(URL(), toWTFString(unreachableURLRef)), toImpl(userDataRef));
+ toImpl(pageRef)->loadAlternateHTMLString(toWTFString(htmlStringRef), URL(URL(), toWTFString(baseURLRef)), URL(URL(), toWTFString(unreachableURLRef)), toImpl(userDataRef));
}
void WKPageLoadPlainTextString(WKPageRef pageRef, WKStringRef plainTextStringRef)
Modified: tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2018-08-27 17:42:41 UTC (rev 235384)
@@ -159,8 +159,7 @@
- (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL
{
- NSData *data = "" dataUsingEncoding:NSUTF8StringEncoding];
- _page->loadAlternateHTML({ static_cast<const uint8_t*>(data.bytes), data.length }, "UTF-8"_s, baseURL, unreachableURL);
+ _page->loadAlternateHTMLString(string, baseURL, unreachableURL);
}
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
Modified: tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-08-27 17:42:41 UTC (rev 235384)
@@ -4187,8 +4187,7 @@
- (void)_loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL
{
- NSData *data = "" dataUsingEncoding:NSUTF8StringEncoding];
- _page->loadAlternateHTML({ static_cast<const uint8_t*>(data.bytes), data.length }, "UTF-8"_s, baseURL, unreachableURL);
+ _page->loadAlternateHTMLString(string, baseURL, unreachableURL);
}
- (WKNavigation *)_loadData:(NSData *)data MIMEType:(NSString *)MIMEType characterEncodingName:(NSString *)characterEncodingName baseURL:(NSURL *)baseURL userData:(id)userData
Modified: tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2018-08-27 17:42:41 UTC (rev 235384)
@@ -2606,7 +2606,7 @@
g_return_if_fail(content);
g_return_if_fail(contentURI);
- getPage(webView).loadAlternateHTML({ reinterpret_cast<const uint8_t*>(content), content ? strlen(content) : 0 }, "UTF-8"_s, URL(URL(), String::fromUTF8(baseURI)), URL(URL(), String::fromUTF8(contentURI)));
+ getPage(webView).loadAlternateHTMLString(String::fromUTF8(content), URL(URL(), String::fromUTF8(baseURI)), URL(URL(), String::fromUTF8(contentURI)));
}
/**
Modified: tags/Safari-607.1.3.2/Source/WebKit/UIProcess/WebPageProxy.cpp (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-08-27 17:42:41 UTC (rev 235384)
@@ -1080,7 +1080,7 @@
return WTFMove(navigation);
}
-void WebPageProxy::loadAlternateHTML(const IPC::DataReference& htmlData, const String& encoding, const WebCore::URL& baseURL, const WebCore::URL& unreachableURL, API::Object* userData, bool forSafeBrowsing)
+void WebPageProxy::loadAlternateHTMLString(const String& htmlString, const WebCore::URL& baseURL, const WebCore::URL& unreachableURL, API::Object* userData)
{
// When the UIProcess is in the process of handling a failing provisional load, do not attempt to
// start a second alternative HTML load as this will prevent the page load state from being
@@ -1104,9 +1104,7 @@
LoadParameters loadParameters;
loadParameters.navigationID = 0;
- loadParameters.data = ""
- loadParameters.MIMEType = "text/html"_s;
- loadParameters.encodingName = encoding;
+ loadParameters.string = htmlString;
loadParameters.baseURLString = baseURL;
loadParameters.unreachableURLString = unreachableURL;
loadParameters.provisionalLoadErrorURLString = m_failingProvisionalLoadURL;
@@ -1116,7 +1114,7 @@
m_process->assumeReadAccessToBaseURL(baseURL);
m_process->assumeReadAccessToBaseURL(unreachableURL);
- m_process->send(Messages::WebPage::LoadAlternateHTML(loadParameters), m_pageID);
+ m_process->send(Messages::WebPage::LoadAlternateHTMLString(loadParameters), m_pageID);
m_process->responsivenessTimer().start();
}
Modified: tags/Safari-607.1.3.2/Source/WebKit/UIProcess/WebPageProxy.h (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/UIProcess/WebPageProxy.h 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/UIProcess/WebPageProxy.h 2018-08-27 17:42:41 UTC (rev 235384)
@@ -453,7 +453,7 @@
RefPtr<API::Navigation> loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy = WebCore::ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemes, API::Object* userData = nullptr);
RefPtr<API::Navigation> loadFile(const String& fileURL, const String& resourceDirectoryURL, API::Object* userData = nullptr);
RefPtr<API::Navigation> loadData(const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr);
- void loadAlternateHTML(const IPC::DataReference&, const String& encoding, const WebCore::URL& baseURL, const WebCore::URL& unreachableURL, API::Object* userData = nullptr, bool forSafeBrowsing = false);
+ void loadAlternateHTMLString(const String& htmlString, const WebCore::URL& baseURL, const WebCore::URL& unreachableURL, API::Object* userData = nullptr);
void loadWebArchiveData(API::Data*, API::Object* userData = nullptr);
void navigateToPDFLinkWithSimulatedClick(const String& url, WebCore::IntPoint documentPoint, WebCore::IntPoint screenPoint);
Modified: tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.cpp (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-08-27 17:42:41 UTC (rev 235384)
@@ -1315,7 +1315,7 @@
loadDataImpl(loadParameters.navigationID, WTFMove(sharedBuffer), loadParameters.MIMEType, loadParameters.encodingName, baseURL, URL(), loadParameters.userData);
}
-void WebPage::loadAlternateHTML(const LoadParameters& loadParameters)
+void WebPage::loadAlternateHTMLString(const LoadParameters& loadParameters)
{
platformDidReceiveLoadParameters(loadParameters);
@@ -1322,9 +1322,16 @@
URL baseURL = loadParameters.baseURLString.isEmpty() ? blankURL() : URL(URL(), loadParameters.baseURLString);
URL unreachableURL = loadParameters.unreachableURLString.isEmpty() ? URL() : URL(URL(), loadParameters.unreachableURLString);
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);
+ m_mainFrame->coreFrame()->loader().setProvisionalLoadErrorBeingHandledURL(provisionalLoadErrorURL);
+
+ const String& htmlString = loadParameters.string;
+ if (!htmlString.isNull() && htmlString.is8Bit()) {
+ auto sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters8()), htmlString.length() * sizeof(LChar));
+ loadDataImpl(0, WTFMove(sharedBuffer), "text/html"_s, "latin1"_s, baseURL, unreachableURL, loadParameters.userData);
+ } else {
+ auto sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters16()), htmlString.length() * sizeof(UChar));
+ loadDataImpl(0, WTFMove(sharedBuffer), "text/html"_s, "utf-16"_s, baseURL, unreachableURL, loadParameters.userData);
+ }
m_mainFrame->coreFrame()->loader().setProvisionalLoadErrorBeingHandledURL({ });
}
Modified: tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.h (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.h 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.h 2018-08-27 17:42:41 UTC (rev 235384)
@@ -1162,7 +1162,7 @@
void platformDidReceiveLoadParameters(const LoadParameters&);
void loadRequest(LoadParameters&&);
void loadData(LoadParameters&&);
- void loadAlternateHTML(const LoadParameters&);
+ void loadAlternateHTMLString(const 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);
Modified: tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (235383 => 235384)
--- tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2018-08-27 17:42:35 UTC (rev 235383)
+++ tags/Safari-607.1.3.2/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2018-08-27 17:42:41 UTC (rev 235384)
@@ -146,7 +146,7 @@
LoadURLInFrame(WebCore::URL url, uint64_t frameID)
LoadRequest(struct WebKit::LoadParameters loadParameters)
LoadData(struct WebKit::LoadParameters loadParameters)
- LoadAlternateHTML(struct WebKit::LoadParameters loadParameters)
+ LoadAlternateHTMLString(struct WebKit::LoadParameters loadParameters)
NavigateToPDFLinkWithSimulatedClick(String url, WebCore::IntPoint documentPoint, WebCore::IntPoint screenPoint)