WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
A partial back ported patch which fixes this issue
webkit-fix-load_html-encoding-issue.patch (text/plain), 3.63 KB, created by
Sami Wagiaalla
on 2014-02-03 09:50:20 PST
(
hide
)
Description:
A partial back ported patch which fixes this issue
Filename:
MIME Type:
Creator:
Sami Wagiaalla
Created:
2014-02-03 09:50:20 PST
Size:
3.63 KB
patch
obsolete
>diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp >index 17eadf1..7565862 100644 >--- a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp >@@ -941,6 +941,17 @@ void WebPage::loadDataImpl(PassRefPtr<SharedBuffer> sharedBuffer, const String& > m_mainFrame->coreFrame()->loader().load(FrameLoadRequest(m_mainFrame->coreFrame(), request, substituteData)); > } > >+void WebPage::loadString(const String& htmlString, const String& MIMEType, const KURL& baseURL, const KURL& unreachableURL, CoreIPC::MessageDecoder& decoder) >+{ >+ if (htmlString.is8Bit()) { >+ RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters8()), htmlString.length() * sizeof(LChar)); >+ loadDataImpl(sharedBuffer, MIMEType, ASCIILiteral("utf-8"), baseURL, unreachableURL, decoder); >+ } else { >+ RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters16()), htmlString.length() * sizeof(UChar)); >+ loadDataImpl(sharedBuffer, MIMEType, ASCIILiteral("utf-16"), baseURL, unreachableURL, decoder); >+ } >+} >+ > void WebPage::loadData(const CoreIPC::DataReference& data, const String& MIMEType, const String& encodingName, const String& baseURLString, CoreIPC::MessageDecoder& decoder) > { > RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(data.data()), data.size()); >@@ -950,17 +961,15 @@ void WebPage::loadData(const CoreIPC::DataReference& data, const String& MIMETyp > > void WebPage::loadHTMLString(const String& htmlString, const String& baseURLString, CoreIPC::MessageDecoder& decoder) > { >- RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters()), htmlString.length() * sizeof(UChar)); > KURL baseURL = baseURLString.isEmpty() ? blankURL() : KURL(KURL(), baseURLString); >- loadDataImpl(sharedBuffer, "text/html", "utf-16", baseURL, KURL(), decoder); >+ loadString(htmlString, ASCIILiteral("text/html"), baseURL, KURL(), decoder); > } > > void WebPage::loadAlternateHTMLString(const String& htmlString, const String& baseURLString, const String& unreachableURLString, CoreIPC::MessageDecoder& decoder) > { >- RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters()), htmlString.length() * sizeof(UChar)); > KURL baseURL = baseURLString.isEmpty() ? blankURL() : KURL(KURL(), baseURLString); > KURL unreachableURL = unreachableURLString.isEmpty() ? KURL() : KURL(KURL(), unreachableURLString); >- loadDataImpl(sharedBuffer, "text/html", "utf-16", baseURL, unreachableURL, decoder); >+ loadString(htmlString, ASCIILiteral("text/html"), baseURL, unreachableURL, decoder); > } > > void WebPage::loadPlainTextString(const String& string, CoreIPC::MessageDecoder& decoder) >diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.h b/Source/WebKit2/WebProcess/WebPage/WebPage.h >index 4b3a5cf..65f4487 100644 >--- a/Source/WebKit2/WebProcess/WebPage/WebPage.h >+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.h >@@ -700,6 +700,7 @@ private: > void loadPlainTextString(const String&, CoreIPC::MessageDecoder&); > void loadWebArchiveData(const CoreIPC::DataReference&, CoreIPC::MessageDecoder&); > void linkClicked(const String& url, const WebMouseEvent&); >+ void loadString(const String&, const String& MIMEType, const WebCore::KURL& baseURL, const WebCore::KURL& failingURL, CoreIPC::MessageDecoder&); > void reload(bool reloadFromOrigin, const SandboxExtension::Handle&); > void goForward(uint64_t); > void goBack(uint64_t);
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
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 127481
:
221983
| 222994