WebKit Bugzilla
Attachment 347319 Details for
Bug 188679
: Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188679-20180816155518.patch (text/plain), 15.26 KB, created by
Alex Christensen
on 2018-08-16 15:55:19 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-08-16 15:55:19 PDT
Size:
15.26 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 234962) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,31 @@ >+2018-08-16 Alex Christensen <achristensen@webkit.org> >+ >+ Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML >+ https://bugs.webkit.org/show_bug.cgi?id=188679 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Shared/LoadParameters.cpp: >+ (WebKit::LoadParameters::encode const): >+ (WebKit::LoadParameters::decode): >+ * Shared/LoadParameters.h: >+ * UIProcess/API/C/WKPage.cpp: >+ (encodingOf): >+ (dataFrom): >+ (loadString): >+ (WKPageLoadAlternateHTMLString): >+ (WKPageLoadAlternateHTMLStringWithUserData): >+ * UIProcess/API/Cocoa/WKBrowsingContextController.mm: >+ (-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]): >+ * UIProcess/API/Cocoa/WKWebView.mm: >+ (-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]): >+ * UIProcess/WebPageProxy.cpp: >+ (WebKit::WebPageProxy::loadAlternateHTML): >+ (WebKit::WebPageProxy::loadAlternateHTMLString): Deleted. >+ * UIProcess/WebPageProxy.h: >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::loadAlternateHTMLString): >+ > 2018-08-16 Alex Christensen <achristensen@webkit.org> > > Add temporary SPI WKContextHandlesSafeBrowsing >Index: Source/WebKit/Shared/LoadParameters.cpp >=================================================================== >--- Source/WebKit/Shared/LoadParameters.cpp (revision 234932) >+++ Source/WebKit/Shared/LoadParameters.cpp (working copy) >@@ -41,7 +41,6 @@ void LoadParameters::encode(IPC::Encoder > > encoder << sandboxExtensionHandle; > encoder << data; >- encoder << string; > encoder << MIMEType; > encoder << encodingName; > encoder << baseURLString; >@@ -82,9 +81,6 @@ bool LoadParameters::decode(IPC::Decoder > if (!decoder.decode(data.data)) > return false; > >- if (!decoder.decode(data.string)) >- return false; >- > if (!decoder.decode(data.MIMEType)) > return false; > >Index: Source/WebKit/Shared/LoadParameters.h >=================================================================== >--- Source/WebKit/Shared/LoadParameters.h (revision 234932) >+++ Source/WebKit/Shared/LoadParameters.h (working copy) >@@ -23,8 +23,7 @@ > * THE POSSIBILITY OF SUCH DAMAGE. > */ > >-#ifndef LoadParameters_h >-#define LoadParameters_h >+#pragma once > > #include "DataReference.h" > #include "SandboxExtension.h" >@@ -53,7 +52,6 @@ struct LoadParameters { > SandboxExtension::Handle sandboxExtensionHandle; > > IPC::DataReference data; >- String string; > String MIMEType; > String encodingName; > >@@ -71,5 +69,3 @@ struct LoadParameters { > }; > > } // namespace WebKit >- >-#endif // LoadParameters_h >Index: Source/WebKit/UIProcess/WebPageProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebPageProxy.cpp (revision 234954) >+++ Source/WebKit/UIProcess/WebPageProxy.cpp (working copy) >@@ -1079,7 +1079,7 @@ RefPtr<API::Navigation> WebPageProxy::lo > return WTFMove(navigation); > } > >-void WebPageProxy::loadAlternateHTMLString(const String& htmlString, const WebCore::URL& baseURL, const WebCore::URL& unreachableURL, API::Object* userData) >+void WebPageProxy::loadAlternateHTML(const IPC::DataReference& htmlData, const String& encoding, 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 >@@ -1103,7 +1103,9 @@ void WebPageProxy::loadAlternateHTMLStri > > LoadParameters loadParameters; > loadParameters.navigationID = 0; >- loadParameters.string = htmlString; >+ loadParameters.data = htmlData; >+ loadParameters.MIMEType = "text/html"_s; >+ loadParameters.encodingName = encoding; > loadParameters.baseURLString = baseURL; > loadParameters.unreachableURLString = unreachableURL; > loadParameters.provisionalLoadErrorURLString = m_failingProvisionalLoadURL; >@@ -1112,7 +1114,7 @@ void WebPageProxy::loadAlternateHTMLStri > > m_process->assumeReadAccessToBaseURL(baseURL); > m_process->assumeReadAccessToBaseURL(unreachableURL); >- m_process->send(Messages::WebPage::LoadAlternateHTMLString(loadParameters), m_pageID); >+ m_process->send(Messages::WebPage::LoadAlternateHTML(loadParameters), m_pageID); > m_process->responsivenessTimer().start(); > } > >Index: Source/WebKit/UIProcess/WebPageProxy.h >=================================================================== >--- Source/WebKit/UIProcess/WebPageProxy.h (revision 234954) >+++ Source/WebKit/UIProcess/WebPageProxy.h (working copy) >@@ -457,7 +457,7 @@ public: > 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 loadAlternateHTMLString(const String& htmlString, const WebCore::URL& baseURL, const WebCore::URL& unreachableURL, API::Object* userData = nullptr); >+ void loadAlternateHTML(const IPC::DataReference&, const String& encoding, 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); > >Index: Source/WebKit/UIProcess/API/C/WKPage.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/C/WKPage.cpp (revision 234954) >+++ Source/WebKit/UIProcess/API/C/WKPage.cpp (working copy) >@@ -199,19 +199,24 @@ void WKPageLoadDataWithUserData(WKPageRe > 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); >- 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)); >+ toImpl(pageRef)->loadData(dataFrom(string), mimeType, encodingOf(string), baseURL, toImpl(userDataRef)); > } > > void WKPageLoadHTMLString(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef) >@@ -226,12 +231,13 @@ void WKPageLoadHTMLStringWithUserData(WK > > void WKPageLoadAlternateHTMLString(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef, WKURLRef unreachableURLRef) > { >- toImpl(pageRef)->loadAlternateHTMLString(toWTFString(htmlStringRef), URL(URL(), toWTFString(baseURLRef)), URL(URL(), toWTFString(unreachableURLRef))); >+ WKPageLoadAlternateHTMLStringWithUserData(pageRef, htmlStringRef, baseURLRef, unreachableURLRef, nullptr); > } > > void WKPageLoadAlternateHTMLStringWithUserData(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef, WKURLRef unreachableURLRef, WKTypeRef userDataRef) > { >- toImpl(pageRef)->loadAlternateHTMLString(toWTFString(htmlStringRef), URL(URL(), toWTFString(baseURLRef)), URL(URL(), toWTFString(unreachableURLRef)), toImpl(userDataRef)); >+ String string = toWTFString(htmlStringRef); >+ toImpl(pageRef)->loadAlternateHTML(dataFrom(string), encodingOf(string), URL(URL(), toWTFString(baseURLRef)), URL(URL(), toWTFString(unreachableURLRef)), toImpl(userDataRef)); > } > > void WKPageLoadPlainTextString(WKPageRef pageRef, WKStringRef plainTextStringRef) >Index: Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm >=================================================================== >--- Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm (revision 234954) >+++ Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm (working copy) >@@ -159,7 +159,8 @@ - (void)loadHTMLString:(NSString *)HTMLS > > - (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL > { >- _page->loadAlternateHTMLString(string, baseURL, unreachableURL); >+ NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; >+ _page->loadAlternateHTML({ static_cast<const uint8_t*>(data.bytes), data.length }, "UTF-8"_s, baseURL, unreachableURL); > } > > - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL >Index: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >=================================================================== >--- Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (revision 234954) >+++ Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (working copy) >@@ -4217,7 +4217,8 @@ - (NSURL *)_unreachableURL > > - (void)_loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL > { >- _page->loadAlternateHTMLString(string, baseURL, unreachableURL); >+ NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; >+ _page->loadAlternateHTML({ static_cast<const uint8_t*>(data.bytes), data.length }, "UTF-8"_s, baseURL, unreachableURL); > } > > - (WKNavigation *)_loadData:(NSData *)data MIMEType:(NSString *)MIMEType characterEncodingName:(NSString *)characterEncodingName baseURL:(NSURL *)baseURL userData:(id)userData >Index: Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (revision 234954) >+++ Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (working copy) >@@ -2606,7 +2606,7 @@ void webkit_web_view_load_alternate_html > g_return_if_fail(content); > g_return_if_fail(contentURI); > >- getPage(webView).loadAlternateHTMLString(String::fromUTF8(content), URL(URL(), String::fromUTF8(baseURI)), URL(URL(), String::fromUTF8(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))); > } > > /** >Index: Source/WebKit/WebProcess/WebPage/WebPage.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.cpp (revision 234954) >+++ Source/WebKit/WebProcess/WebPage/WebPage.cpp (working copy) >@@ -1312,23 +1312,16 @@ void WebPage::loadData(LoadParameters&& > loadDataImpl(loadParameters.navigationID, WTFMove(sharedBuffer), loadParameters.MIMEType, loadParameters.encodingName, baseURL, URL(), loadParameters.userData); > } > >-void WebPage::loadAlternateHTMLString(const LoadParameters& loadParameters) >+void WebPage::loadAlternateHTML(const LoadParameters& loadParameters) > { > platformDidReceiveLoadParameters(loadParameters); > > 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); >- 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); >- } >+ 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({ }); > } > >Index: Source/WebKit/WebProcess/WebPage/WebPage.h >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.h (revision 234954) >+++ Source/WebKit/WebProcess/WebPage/WebPage.h (working copy) >@@ -1161,7 +1161,7 @@ private: > void platformDidReceiveLoadParameters(const LoadParameters&); > void loadRequest(LoadParameters&&); > void loadData(LoadParameters&&); >- void loadAlternateHTMLString(const LoadParameters&); >+ void loadAlternateHTML(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); >Index: Source/WebKit/WebProcess/WebPage/WebPage.messages.in >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.messages.in (revision 234954) >+++ Source/WebKit/WebProcess/WebPage/WebPage.messages.in (working copy) >@@ -146,7 +146,7 @@ messages -> WebPage LegacyReceiver { > LoadURLInFrame(WebCore::URL url, uint64_t frameID) > LoadRequest(struct WebKit::LoadParameters loadParameters) > LoadData(struct WebKit::LoadParameters loadParameters) >- LoadAlternateHTMLString(struct WebKit::LoadParameters loadParameters) >+ LoadAlternateHTML(struct WebKit::LoadParameters loadParameters) > > NavigateToPDFLinkWithSimulatedClick(String url, WebCore::IntPoint documentPoint, WebCore::IntPoint screenPoint) >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
cgarcia
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188679
:
347305
|
347308
|
347311
| 347319