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

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

Issue 1513023: Strips http from omnibox (and a couple of other places) (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 8 months 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/net_util.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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_NET_UTIL_H_ 5 #ifndef NET_BASE_NET_UTIL_H_
6 #define NET_BASE_NET_UTIL_H_ 6 #define NET_BASE_NET_UTIL_H_
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 9
10 #ifdef OS_WIN 10 #ifdef OS_WIN
11 #include <windows.h> 11 #include <windows.h>
(...skipping 17 matching lines...) Expand all
29 namespace url_canon { 29 namespace url_canon {
30 struct CanonHostInfo; 30 struct CanonHostInfo;
31 } 31 }
32 32
33 namespace url_parse { 33 namespace url_parse {
34 struct Parsed; 34 struct Parsed;
35 } 35 }
36 36
37 namespace net { 37 namespace net {
38 38
39 // Used by FormatUrl to specify handling of certain parts of the url.
40 typedef uint32 FormatUrlType;
41 typedef uint32 FormatUrlTypes;
42
43 // Nothing is ommitted.
44 extern const FormatUrlType kFormatUrlOmitNothing;
45
46 // If set, any username and password are removed.
47 extern const FormatUrlType kFormatUrlOmitUsernamePassword;
48
49 // If the scheme is 'http://', it's removed.
50 extern const FormatUrlType kFormatUrlOmitHTTP;
51
52 // Convenience for omitting all unecessary types.
53 extern const FormatUrlType kFormatUrlOmitAll;
54
39 // Holds a list of ports that should be accepted despite bans. 55 // Holds a list of ports that should be accepted despite bans.
40 extern std::set<int> explicitly_allowed_ports; 56 extern std::set<int> explicitly_allowed_ports;
41 57
42 // Given the full path to a file name, creates a file: URL. The returned URL 58 // Given the full path to a file name, creates a file: URL. The returned URL
43 // may not be valid if the input is malformed. 59 // may not be valid if the input is malformed.
44 GURL FilePathToFileURL(const FilePath& path); 60 GURL FilePathToFileURL(const FilePath& path);
45 61
46 // Converts a file: URL back to a filename that can be passed to the OS. The 62 // Converts a file: URL back to a filename that can be passed to the OS. The
47 // file URL must be well-formed (GURL::is_valid() must return true); we don't 63 // file URL must be well-formed (GURL::is_valid() must return true); we don't
48 // handle degenerate cases here. Returns true on success, false if it isn't a 64 // handle degenerate cases here. Returns true on success, false if it isn't a
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 // the user. The given parsed structure will be updated. The host name formatter 254 // the user. The given parsed structure will be updated. The host name formatter
239 // also takes the same accept languages component as ElideURL. |new_parsed| may 255 // also takes the same accept languages component as ElideURL. |new_parsed| may
240 // be null. 256 // be null.
241 void AppendFormattedHost(const GURL& url, 257 void AppendFormattedHost(const GURL& url,
242 const std::wstring& languages, 258 const std::wstring& languages,
243 std::wstring* output, 259 std::wstring* output,
244 url_parse::Parsed* new_parsed, 260 url_parse::Parsed* new_parsed,
245 size_t* offset_for_adjustment); 261 size_t* offset_for_adjustment);
246 262
247 // Creates a string representation of |url|. The IDN host name may be in Unicode 263 // Creates a string representation of |url|. The IDN host name may be in Unicode
248 // if |languages| accepts the Unicode representation. If 264 // if |languages| accepts the Unicode representation. |format_type| is a bitmask
249 // |omit_username_password| is true, any username and password are removed. 265 // of FormatUrlTypes, see it for details. |unescape_rules| defines how to clean
250 // |unescape_rules| defines how to clean the URL for human readability. 266 // the URL for human readability. You will generally want |UnescapeRule::SPACES|
251 // You will generally want |UnescapeRule::SPACES| for display to the user if you 267 // for display to the user if you can handle spaces, or |UnescapeRule::NORMAL|
252 // can handle spaces, or |UnescapeRule::NORMAL| if not. If the path part and the 268 // if not. If the path part and the query part seem to be encoded in %-encoded
253 // query part seem to be encoded in %-encoded UTF-8, decodes %-encoding and 269 // UTF-8, decodes %-encoding and UTF-8.
254 // UTF-8.
255 // 270 //
256 // The last three parameters may be NULL. 271 // The last three parameters may be NULL.
257 // |new_parsed| will be set to the parsing parameters of the resultant URL. 272 // |new_parsed| will be set to the parsing parameters of the resultant URL.
258 // |prefix_end| will be the length before the hostname of the resultant URL. 273 // |prefix_end| will be the length before the hostname of the resultant URL.
259 // |offset_for_adjustment| is an offset into the original |url|'s spec(), which 274 // |offset_for_adjustment| is an offset into the original |url|'s spec(), which
260 // will be modified to reflect changes this function makes to the output string; 275 // will be modified to reflect changes this function makes to the output string;
261 // for example, if |url| is "http://a:b@c.com/", |omit_username_password| is 276 // for example, if |url| is "http://a:b@c.com/", |omit_username_password| is
262 // true, and |offset_for_adjustment| is 12 (the offset of '.'), then on return 277 // true, and |offset_for_adjustment| is 12 (the offset of '.'), then on return
263 // the output string will be "http://c.com/" and |offset_for_adjustment| will be 278 // the output string will be "http://c.com/" and |offset_for_adjustment| will be
264 // 8. If the offset cannot be successfully adjusted (e.g. because it points 279 // 8. If the offset cannot be successfully adjusted (e.g. because it points
265 // into the middle of a component that was entirely removed, past the end of the 280 // into the middle of a component that was entirely removed, past the end of the
266 // string, or into the middle of an encoding sequence), it will be set to 281 // string, or into the middle of an encoding sequence), it will be set to
267 // std::wstring::npos. 282 // std::wstring::npos.
268 std::wstring FormatUrl(const GURL& url, 283 std::wstring FormatUrl(const GURL& url,
269 const std::wstring& languages, 284 const std::wstring& languages,
270 bool omit_username_password, 285 FormatUrlTypes format_types,
271 UnescapeRule::Type unescape_rules, 286 UnescapeRule::Type unescape_rules,
272 url_parse::Parsed* new_parsed, 287 url_parse::Parsed* new_parsed,
273 size_t* prefix_end, 288 size_t* prefix_end,
274 size_t* offset_for_adjustment); 289 size_t* offset_for_adjustment);
275 290
276 // Creates a string representation of |url| for display to the user. 291 // This is a convenience for FormatUrl with
277 // This is a shorthand of the above function with omit_username_password=true, 292 // format_types=kFormatUrlOmitUsernamePassword and unescape=SPACES.
278 // unescape=SPACES, new_parsed=NULL, and prefix_end=NULL.
279 inline std::wstring FormatUrl(const GURL& url, const std::wstring& languages) { 293 inline std::wstring FormatUrl(const GURL& url, const std::wstring& languages) {
280 return FormatUrl(url, languages, true, UnescapeRule::SPACES, NULL, NULL, 294 return FormatUrl(url, languages, kFormatUrlOmitUsernamePassword,
281 NULL); 295 UnescapeRule::SPACES, NULL, NULL, NULL);
282 } 296 }
283 297
284 // Strip the portions of |url| that aren't core to the network request. 298 // Strip the portions of |url| that aren't core to the network request.
285 // - user name / password 299 // - user name / password
286 // - reference section 300 // - reference section
287 GURL SimplifyUrlForRequest(const GURL& url); 301 GURL SimplifyUrlForRequest(const GURL& url);
288 302
289 void SetExplicitlyAllowedPorts(const std::wstring& allowed_ports); 303 void SetExplicitlyAllowedPorts(const std::wstring& allowed_ports);
290 304
291 // Perform a simplistic test to see if IPv6 is supported by trying to create an 305 // Perform a simplistic test to see if IPv6 is supported by trying to create an
292 // IPv6 socket. 306 // IPv6 socket.
293 // TODO(jar): Make test more in-depth as needed. 307 // TODO(jar): Make test more in-depth as needed.
294 bool IPv6Supported(); 308 bool IPv6Supported();
295 309
296 } // namespace net 310 } // namespace net
297 311
298 #endif // NET_BASE_NET_UTIL_H_ 312 #endif // NET_BASE_NET_UTIL_H_
OLDNEW
« no previous file with comments | « chrome/browser/views/url_picker.cc ('k') | net/base/net_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698