diff options
-rw-r--r-- | chrome/browser/bookmarks/bookmark_html_writer.cc | 2 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_node_data.cc | 2 | ||||
-rw-r--r-- | chrome/browser/browser_about_handler.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/notifications/system_notification_factory.cc | 8 | ||||
-rw-r--r-- | chrome/browser/notifications/desktop_notification_service.cc | 12 | ||||
-rw-r--r-- | chrome/browser/ui/views/omnibox/omnibox_view_win.cc | 2 | ||||
-rw-r--r-- | chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc | 12 | ||||
-rw-r--r-- | content/browser/debugger/devtools_http_protocol_handler.cc | 31 | ||||
-rw-r--r-- | net/base/escape.cc | 24 | ||||
-rw-r--r-- | net/base/escape.h | 8 | ||||
-rw-r--r-- | webkit/appcache/view_appcache_internals_job.cc | 14 | ||||
-rw-r--r-- | webkit/blob/view_blob_internals_job.cc | 10 | ||||
-rw-r--r-- | webkit/glue/webclipboard_impl.cc | 4 |
13 files changed, 66 insertions, 65 deletions
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc index 7349a8e..1866d4d 100644 --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc @@ -210,7 +210,7 @@ class Writer : public Task { break; case CONTENT: - utf8_string = EscapeForHTML(text); + utf8_string = net::EscapeForHTML(text); break; default: diff --git a/chrome/browser/bookmarks/bookmark_node_data.cc b/chrome/browser/bookmarks/bookmark_node_data.cc index 9151124..9b2a333 100644 --- a/chrome/browser/bookmarks/bookmark_node_data.cc +++ b/chrome/browser/bookmarks/bookmark_node_data.cc @@ -149,7 +149,7 @@ void BookmarkNodeData::WriteToClipboard(Profile* profile) const { const std::string url = elements[0].url.spec(); scw.WriteBookmark(title, url); - scw.WriteHyperlink(EscapeForHTML(title), url); + scw.WriteHyperlink(net::EscapeForHTML(title), url); // Also write the URL to the clipboard as text so that it can be pasted // into text fields. We use WriteText instead of WriteURL because we don't diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc index 3761e220..c081cd3 100644 --- a/chrome/browser/browser_about_handler.cc +++ b/chrome/browser/browser_about_handler.cc @@ -402,7 +402,7 @@ void AppendHeader(std::string* output, int refresh, output->append("<!DOCTYPE HTML>\n<html>\n<head>\n"); if (!unescaped_title.empty()) { output->append("<title>"); - output->append(EscapeForHTML(unescaped_title)); + output->append(net::EscapeForHTML(unescaped_title)); output->append("</title>\n"); } output->append("<meta charset=\"utf-8\">\n"); diff --git a/chrome/browser/chromeos/notifications/system_notification_factory.cc b/chrome/browser/chromeos/notifications/system_notification_factory.cc index ab7568c..f0635d1 100644 --- a/chrome/browser/chromeos/notifications/system_notification_factory.cc +++ b/chrome/browser/chromeos/notifications/system_notification_factory.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -35,8 +35,8 @@ Notification SystemNotificationFactory::Create( std::vector<std::string> subst; int resource = IDR_NOTIFICATION_ICON_HTML; subst.push_back(icon.spec()); - subst.push_back(EscapeForHTML(UTF16ToUTF8(title))); - subst.push_back(EscapeForHTML(UTF16ToUTF8(text))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(text))); // icon float position subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? "right" : "left"); @@ -46,7 +46,7 @@ Notification SystemNotificationFactory::Create( // if link is not empty, then use template with link if (!link.empty()) { resource = IDR_NOTIFICATION_ICON_LINK_HTML; - subst.push_back(EscapeForHTML(UTF16ToUTF8(link))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(link))); } string16 content_url = DesktopNotificationService::CreateDataUrl(resource, diff --git a/chrome/browser/notifications/desktop_notification_service.cc b/chrome/browser/notifications/desktop_notification_service.cc index 88f9ea2..09451ed 100644 --- a/chrome/browser/notifications/desktop_notification_service.cc +++ b/chrome/browser/notifications/desktop_notification_service.cc @@ -170,8 +170,8 @@ string16 DesktopNotificationService::CreateDataUrl( if (icon_url.is_valid()) { resource = IDR_NOTIFICATION_ICON_HTML; subst.push_back(icon_url.spec()); - subst.push_back(EscapeForHTML(UTF16ToUTF8(title))); - subst.push_back(EscapeForHTML(UTF16ToUTF8(body))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(body))); // icon float position subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? "right" : "left"); @@ -181,12 +181,12 @@ string16 DesktopNotificationService::CreateDataUrl( // Strings are div names in the template file. string16 line_name = title.empty() ? ASCIIToUTF16("description") : ASCIIToUTF16("title"); - subst.push_back(EscapeForHTML(UTF16ToUTF8(line_name))); - subst.push_back(EscapeForHTML(UTF16ToUTF8(line))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(line_name))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(line))); } else { resource = IDR_NOTIFICATION_2LINE_HTML; - subst.push_back(EscapeForHTML(UTF16ToUTF8(title))); - subst.push_back(EscapeForHTML(UTF16ToUTF8(body))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title))); + subst.push_back(net::EscapeForHTML(UTF16ToUTF8(body))); } // body text direction subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_win.cc b/chrome/browser/ui/views/omnibox/omnibox_view_win.cc index ae13c7b..3d41cbf 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_win.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_win.cc @@ -1323,7 +1323,7 @@ void OmniboxViewWin::OnCopy() { scw.WriteText(text); if (write_url) { scw.WriteBookmark(text, url.spec()); - scw.WriteHyperlink(EscapeForHTML(text), url.spec()); + scw.WriteHyperlink(net::EscapeForHTML(text), url.spec()); } } diff --git a/chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc b/chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc index dac9f1b..afd5def 100644 --- a/chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc +++ b/chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc @@ -56,10 +56,10 @@ TEST_F(MalwareDOMDetailsTest, Everything) { // \ iframe2 std::string iframe2_html = "<html><body>iframe2</body></html>"; GURL iframe2_url(urlprefix + iframe2_html); - std::string iframe1_html = "<iframe src=\"" + EscapeForHTML( + std::string iframe1_html = "<iframe src=\"" + net::EscapeForHTML( iframe2_url.spec()) + "\"></iframe>"; GURL iframe1_url(urlprefix + iframe1_html); - std::string html = "<html><head><iframe src=\"" + EscapeForHTML( + std::string html = "<html><head><iframe src=\"" + net::EscapeForHTML( iframe1_url.spec()) + "\"></iframe></head></html>"; GURL url(urlprefix + html); @@ -100,8 +100,8 @@ TEST_F(MalwareDOMDetailsTest, Everything) { std::string html = ""; for (int i = 0; i < 55; ++i) { // The iframe contents is just a number. - GURL iframe_url(StringPrintf("%s%d", urlprefix, i)); - html += "<iframe src=\"" + EscapeForHTML(iframe_url.spec()) + + GURL iframe_url(base::StringPrintf("%s%d", urlprefix, i)); + html += "<iframe src=\"" + net::EscapeForHTML(iframe_url.spec()) + "\"></iframe>"; } GURL url(urlprefix + html); @@ -116,8 +116,8 @@ TEST_F(MalwareDOMDetailsTest, Everything) { std::string html = ""; for (int i = 0; i < 55; ++i) { // The iframe contents is just a number. - GURL script_url(StringPrintf("%s%d", urlprefix, i)); - html += "<script src=\"" + EscapeForHTML(script_url.spec()) + + GURL script_url(base::StringPrintf("%s%d", urlprefix, i)); + html += "<script src=\"" + net::EscapeForHTML(script_url.spec()) + "\"></script>"; } GURL url(urlprefix + html); diff --git a/content/browser/debugger/devtools_http_protocol_handler.cc b/content/browser/debugger/devtools_http_protocol_handler.cc index 8540794..c44594ee 100644 --- a/content/browser/debugger/devtools_http_protocol_handler.cc +++ b/content/browser/debugger/devtools_http_protocol_handler.cc @@ -10,8 +10,8 @@ #include "base/json/json_writer.h" #include "base/logging.h" #include "base/message_loop_proxy.h" -#include "base/stringprintf.h" #include "base/string_number_conversions.h" +#include "base/stringprintf.h" #include "base/threading/thread.h" #include "base/utf_string_conversions.h" #include "base/values.h" @@ -291,7 +291,7 @@ static PageList GeneratePageList( page_info.id = TabContentsIDHelper::GetID(tab_contents); page_info.attached = client_host != NULL; page_info.url = entry->url().spec(); - page_info.title = UTF16ToUTF8(EscapeForHTML(entry->title())); + page_info.title = UTF16ToUTF8(net::EscapeForHTML(entry->title())); page_info.thumbnail_url = "/thumb/" + entry->url().spec(); page_info.favicon_url = entry->favicon().url().spec(); page_list.push_back(page_info); @@ -317,14 +317,14 @@ void DevToolsHttpProtocolHandler::OnJsonRequestUI( page_info->SetString("faviconUrl", i->favicon_url); if (!i->attached) { page_info->SetString("webSocketDebuggerUrl", - StringPrintf("ws://%s/devtools/page/%d", - host.c_str(), - i->id)); + base::StringPrintf("ws://%s/devtools/page/%d", + host.c_str(), + i->id)); page_info->SetString("devtoolsFrontendUrl", - StringPrintf("%s?host=%s&page=%d", - overridden_frontend_url_.c_str(), - host.c_str(), - i->id)); + base::StringPrintf("%s?host=%s&page=%d", + overridden_frontend_url_.c_str(), + host.c_str(), + i->id)); } } @@ -412,11 +412,12 @@ void DevToolsHttpProtocolHandler::OnResponseStarted(net::URLRequest* request) { request->GetMimeType(&content_type); if (request->status().is_success()) { - server_->Send(connection_id, StringPrintf("HTTP/1.1 200 OK\r\n" - "Content-Type:%s\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n", - content_type.c_str())); + server_->Send(connection_id, + base::StringPrintf("HTTP/1.1 200 OK\r\n" + "Content-Type:%s\r\n" + "Transfer-Encoding: chunked\r\n" + "\r\n", + content_type.c_str())); } else { server_->Send404(connection_id); } @@ -444,7 +445,7 @@ void DevToolsHttpProtocolHandler::OnReadCompleted(net::URLRequest* request, do { if (!request->status().is_success() || bytes_read <= 0) break; - std::string chunk_size = StringPrintf("%X\r\n", bytes_read); + std::string chunk_size = base::StringPrintf("%X\r\n", bytes_read); server_->Send(connection_id, chunk_size); server_->Send(connection_id, buffer->data(), bytes_read); server_->Send(connection_id, "\r\n"); diff --git a/net/base/escape.cc b/net/base/escape.cc index 3ca41f9..ff77beb 100644 --- a/net/base/escape.cc +++ b/net/base/escape.cc @@ -183,6 +183,17 @@ STR UnescapeURLWithOffsetsImpl(const STR& escaped_text, return result; } +template <class str> +str EscapeForHTMLImpl(const str& input) { + str result; + result.reserve(input.size()); // Optimize for no escaping. + + for (typename str::const_iterator i = input.begin(); i != input.end(); ++i) + AppendEscapedCharForHTMLImpl(*i, &result); + + return result; +} + } // namespace // Everything except alphanumerics and !'()*-._~ @@ -259,16 +270,7 @@ void AppendEscapedCharForHTML(char c, std::string* output) { AppendEscapedCharForHTMLImpl(c, output); } -template <class str> -str EscapeForHTMLImpl(const str& input) { - str result; - result.reserve(input.size()); // optimize for no escaping - - for (typename str::const_iterator it = input.begin(); it != input.end(); ++it) - AppendEscapedCharForHTMLImpl(*it, &result); - - return result; -} +namespace net { std::string EscapeForHTML(const std::string& input) { return EscapeForHTMLImpl(input); @@ -278,8 +280,6 @@ string16 EscapeForHTML(const string16& input) { return EscapeForHTMLImpl(input); } -namespace net { - std::string UnescapeURLComponent(const std::string& escaped_text, UnescapeRule::Type rules) { return UnescapeURLWithOffsetsImpl(escaped_text, rules, NULL); diff --git a/net/base/escape.h b/net/base/escape.h index eede454..45f2ddf 100644 --- a/net/base/escape.h +++ b/net/base/escape.h @@ -39,10 +39,6 @@ NET_EXPORT std::string EscapeExternalHandlerValue(const std::string& text); // the character would be interpretted as an HTML delimiter. NET_EXPORT void AppendEscapedCharForHTML(char c, std::string* output); -// Escape chars that might cause this text to be interpretted as HTML tags. -NET_EXPORT std::string EscapeForHTML(const std::string& text); -NET_EXPORT string16 EscapeForHTML(const string16& text); - // Unescaping ------------------------------------------------------------------ class UnescapeRule { @@ -87,6 +83,10 @@ class UnescapeRule { namespace net { +// Escape chars that might cause this text to be interpretted as HTML tags. +NET_EXPORT std::string EscapeForHTML(const std::string& text); +NET_EXPORT string16 EscapeForHTML(const string16& text); + // Unescapes |escaped_text| and returns the result. // Unescaping consists of looking for the exact pattern "%XX", where each X is // a hex digit, and converting to the character with the numerical value of diff --git a/webkit/appcache/view_appcache_internals_job.cc b/webkit/appcache/view_appcache_internals_job.cc index 8e73052..8a36ad7 100644 --- a/webkit/appcache/view_appcache_internals_job.cc +++ b/webkit/appcache/view_appcache_internals_job.cc @@ -71,17 +71,17 @@ void EmitListItem(const std::string& label, const std::string& data, std::string* out) { out->append("<li>"); - out->append(EscapeForHTML(label)); - out->append(EscapeForHTML(data)); + out->append(net::EscapeForHTML(label)); + out->append(net::EscapeForHTML(data)); out->append("</li>\n"); } void EmitAnchor(const std::string& url, const std::string& text, std::string* out) { out->append("<a href=\""); - out->append(EscapeForHTML(url)); + out->append(net::EscapeForHTML(url)); out->append("\">"); - out->append(EscapeForHTML(text)); + out->append(net::EscapeForHTML(text)); out->append("</a>"); } @@ -239,15 +239,15 @@ void EmitAppCacheResourceInfoVector( void EmitResponseHeaders(net::HttpResponseHeaders* headers, std::string* out) { out->append("<hr><pre>"); - out->append(EscapeForHTML(headers->GetStatusLine())); + out->append(net::EscapeForHTML(headers->GetStatusLine())); out->push_back('\n'); void* iter = NULL; std::string name, value; while (headers->EnumerateHeaderLines(&iter, &name, &value)) { - out->append(EscapeForHTML(name)); + out->append(net::EscapeForHTML(name)); out->append(": "); - out->append(EscapeForHTML(value)); + out->append(net::EscapeForHTML(value)); out->push_back('\n'); } out->append("</pre>"); diff --git a/webkit/blob/view_blob_internals_job.cc b/webkit/blob/view_blob_internals_job.cc index 1d562c5..753a6af 100644 --- a/webkit/blob/view_blob_internals_job.cc +++ b/webkit/blob/view_blob_internals_job.cc @@ -55,7 +55,7 @@ void EndHTML(std::string* out) { void AddHTMLBoldText(const std::string& text, std::string* out) { out->append("<b>"); - out->append(EscapeForHTML(text)); + out->append(net::EscapeForHTML(text)); out->append("</b>"); } @@ -73,7 +73,7 @@ void AddHTMLListItem(const std::string& element_title, out->append("<li>"); // No need to escape element_title since constant string is passed. out->append(element_title); - out->append(EscapeForHTML(element_data)); + out->append(net::EscapeForHTML(element_data)); out->append("</li>"); } @@ -81,7 +81,7 @@ void AddHTMLButton(const std::string& title, const std::string& command, std::string* out) { // No need to escape title since constant string is passed. - std::string escaped_command = EscapeForHTML(command.c_str()); + std::string escaped_command = net::EscapeForHTML(command.c_str()); base::StringAppendF(out, "<form action=\"\" method=\"GET\">\n" "<input type=\"hidden\" name=\"remove\" value=\"%s\">\n" @@ -198,9 +198,9 @@ void ViewBlobInternalsJob::GenerateHTMLForBlobData(const BlobData& blob_data, AddHTMLListItem(kType, "file", out); AddHTMLListItem(kPath, #if defined(OS_WIN) - EscapeForHTML(WideToUTF8(item.file_path().value())), + net::EscapeForHTML(WideToUTF8(item.file_path().value())), #else - EscapeForHTML(item.file_path().value()), + net::EscapeForHTML(item.file_path().value()), #endif out); if (!item.expected_modification_time().is_null()) { diff --git a/webkit/glue/webclipboard_impl.cc b/webkit/glue/webclipboard_impl.cc index 0c4c1a7..3f66c80 100644 --- a/webkit/glue/webclipboard_impl.cc +++ b/webkit/glue/webclipboard_impl.cc @@ -40,7 +40,7 @@ std::string WebClipboardImpl::URLToMarkup(const WebURL& url, markup.append(url.spec()); markup.append("\">"); // TODO(darin): HTML escape this - markup.append(EscapeForHTML(UTF16ToUTF8(title))); + markup.append(net::EscapeForHTML(UTF16ToUTF8(title))); markup.append("</a>"); return markup; } @@ -53,7 +53,7 @@ std::string WebClipboardImpl::URLToImageMarkup(const WebURL& url, markup.append("\""); if (!title.isEmpty()) { markup.append(" alt=\""); - markup.append(EscapeForHTML(UTF16ToUTF8(title))); + markup.append(net::EscapeForHTML(UTF16ToUTF8(title))); markup.append("\""); } markup.append("/>"); |