Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: net/base/escape.h

Issue 372017: Fix various problems with inline autocomplete and URLs that change length dur... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/views/url_picker.cc ('k') | net/base/escape.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_BASE_ESCAPE_H__ 5 #ifndef NET_BASE_ESCAPE_H__
6 #define NET_BASE_ESCAPE_H__ 6 #define NET_BASE_ESCAPE_H__
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 11
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 // 86 //
87 // Watch out: this doesn't necessarily result in the correct final result, 87 // Watch out: this doesn't necessarily result in the correct final result,
88 // because the encoding may be unknown. For example, the input might be ASCII, 88 // because the encoding may be unknown. For example, the input might be ASCII,
89 // which, after unescaping, is supposed to be interpreted as UTF-8, and then 89 // which, after unescaping, is supposed to be interpreted as UTF-8, and then
90 // converted into full wide chars. This function won't tell you if any 90 // converted into full wide chars. This function won't tell you if any
91 // conversions need to take place, it only unescapes. 91 // conversions need to take place, it only unescapes.
92 std::string UnescapeURLComponent(const std::string& escaped_text, 92 std::string UnescapeURLComponent(const std::string& escaped_text,
93 UnescapeRule::Type rules); 93 UnescapeRule::Type rules);
94 94
95 // Unescapes the given substring as a URL, and then tries to interpret the 95 // Unescapes the given substring as a URL, and then tries to interpret the
96 // result as being encoded in the given code page. If the result is convertable 96 // result as being encoded as UTF-8. If the result is convertable into UTF-8, it
97 // into the code page, it will be returned as converted. If it is not, the 97 // will be returned as converted. If it is not, the original escaped string will
98 // original escaped string will be converted into a wide string and returned. 98 // be converted into a wide string and returned.
99 std::wstring UnescapeAndDecodeURLComponent(const std::string& text, 99 //
100 const char* codepage, 100 // |offset_for_adjustment| may be NULL; if not, it is an offset into |text| that
101 UnescapeRule::Type rules); 101 // will be adjusted to point at the same logical place in the result string. If
102 inline std::wstring UnescapeAndDecodeUTF8URLComponent( 102 // this isn't possible because it points into the middle of an escape sequence
103 const std::string& text, 103 // or past the end of the string, it will be set to std::wstring::npos.
104 UnescapeRule::Type rules) { 104 std::wstring UnescapeAndDecodeUTF8URLComponent(const std::string& text,
105 return UnescapeAndDecodeURLComponent(text, "UTF-8", rules); 105 UnescapeRule::Type rules,
106 } 106 size_t* offset_for_adjustment);
107 107
108 // Deprecated ------------------------------------------------------------------ 108 // Deprecated ------------------------------------------------------------------
109 109
110 // Escapes characters in text suitable for use as a query parameter value. 110 // Escapes characters in text suitable for use as a query parameter value.
111 // We %XX everything except alphanumerics and -_.!~*'() 111 // We %XX everything except alphanumerics and -_.!~*'()
112 // This is basically the same as encodeURIComponent in javascript. 112 // This is basically the same as encodeURIComponent in javascript.
113 // For the wstring version, we do a conversion to charset before encoding the 113 // For the wstring version, we do a conversion to charset before encoding the
114 // string. If the charset doesn't exist, we return false. 114 // string. If the charset doesn't exist, we return false.
115 // 115 //
116 // TODO(brettw) bug 1201094: This function should be removed. See the bug for 116 // TODO(brettw) bug 1201094: This function should be removed. See the bug for
117 // why and what callers should do instead. 117 // why and what callers should do instead.
118 std::string EscapeQueryParamValue(const std::string& text); 118 std::string EscapeQueryParamValue(const std::string& text);
119 bool EscapeQueryParamValue(const std::wstring& text, const char* codepage, 119 bool EscapeQueryParamValue(const std::wstring& text, const char* codepage,
120 std::wstring* escaped); 120 std::wstring* escaped);
121 121
122 // A specialized version of EscapeQueryParamValue for wide strings that 122 // A specialized version of EscapeQueryParamValue for wide strings that
123 // assumes the codepage is UTF8. This is provided as a convenience. 123 // assumes the codepage is UTF8. This is provided as a convenience.
124 // 124 //
125 // TODO(brettw) bug 1201094: This function should be removed. See the bug for 125 // TODO(brettw) bug 1201094: This function should be removed. See the bug for
126 // why and what callers should do instead. 126 // why and what callers should do instead.
127 std::wstring EscapeQueryParamValueUTF8(const std::wstring& text); 127 std::wstring EscapeQueryParamValueUTF8(const std::wstring& text);
128 128
129 #endif // #ifndef NET_BASE_ESCAPE_H__ 129 #endif // #ifndef NET_BASE_ESCAPE_H__
OLDNEW
« no previous file with comments | « chrome/browser/views/url_picker.cc ('k') | net/base/escape.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698