Chromium Code Reviews| Index: third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp |
| diff --git a/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp b/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp |
| index 26fe8ab4d8e1b3b88d67c43482a0c6c3288da1db..9131ef53a18073d115a005e10d464e09507419e3 100644 |
| --- a/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp |
| +++ b/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp |
| @@ -69,9 +69,9 @@ MHTMLArchive::MHTMLArchive() |
| MHTMLArchive* MHTMLArchive::create(const KURL& url, PassRefPtr<SharedBuffer> data) |
| { |
| - // MHTML pages can only be loaded from local URLs and http/https URLs. |
| + // MHTML pages can only be loaded from local URLs, http/https URLs, and content URLs(Android specific). |
| // The latter is now allowed due to full sandboxing enforcement on MHTML pages. |
| - if (!SchemeRegistry::shouldTreatURLSchemeAsLocal(url.protocol()) && !url.protocolIsInHTTPFamily()) |
| + if (!SchemeRegistry::shouldTreatURLSchemeAsLocal(url.protocol()) && !url.protocolIsInHTTPFamily() && !canLoadContent(url)) |
|
jianli
2016/08/17 20:27:21
I think it would be better to move all these check
Vivian
2016/08/17 20:38:17
Done.
|
| return nullptr; |
| MHTMLParser parser(data); |
| @@ -91,6 +91,14 @@ MHTMLArchive* MHTMLArchive::create(const KURL& url, PassRefPtr<SharedBuffer> dat |
| return archive; |
| } |
| +bool MHTMLArchive::canLoadContent(const KURL& url) |
| +{ |
| +#if OS(ANDROID) |
| + return url.protocolIs("content"); |
| +#endif |
| + return false; |
| +} |
| + |
| void MHTMLArchive::generateMHTMLHeader( |
| const String& boundary, const String& title, const String& mimeType, |
| SharedBuffer& outputBuffer) |