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

Side by Side Diff: url/gurl.h

Issue 23835019: Support URL fragment resolution againt non-hierarchical schemes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: brettw2 Created 7 years 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 | « net/base/net_util_unittest.cc ('k') | url/gurl.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 URL_GURL_H_ 5 #ifndef URL_GURL_H_
6 #define URL_GURL_H_ 6 #define URL_GURL_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 #include <string> 9 #include <string>
10 10
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 // This function may be called from any thread. 348 // This function may be called from any thread.
349 static const GURL& EmptyGURL(); 349 static const GURL& EmptyGURL();
350 350
351 // Returns the inner URL of a nested URL [currently only non-null for 351 // Returns the inner URL of a nested URL [currently only non-null for
352 // filesystem: URLs]. 352 // filesystem: URLs].
353 const GURL* inner_url() const { 353 const GURL* inner_url() const {
354 return inner_url_.get(); 354 return inner_url_.get();
355 } 355 }
356 356
357 private: 357 private:
358 // Variant of the string parsing constructor that allows the caller to elect
359 // retain trailing whitespace, if any, on the passed URL spec but only if the
360 // scheme is one that allows trailing whitespace. The primary use-case is
361 // for data: URLs. In most cases, you want to use the single parameter
362 // constructor above.
363 enum RetainWhiteSpaceSelector { RETAIN_TRAILING_PATH_WHITEPACE };
364 GURL(const std::string& url_string, RetainWhiteSpaceSelector);
365
366 template<typename STR>
367 void InitCanonical(const STR& input_spec, bool trim_path_end);
368
358 void InitializeFromCanonicalSpec(); 369 void InitializeFromCanonicalSpec();
359 370
360 // Returns the substring of the input identified by the given component. 371 // Returns the substring of the input identified by the given component.
361 std::string ComponentString(const url_parse::Component& comp) const { 372 std::string ComponentString(const url_parse::Component& comp) const {
362 if (comp.len <= 0) 373 if (comp.len <= 0)
363 return std::string(); 374 return std::string();
364 return std::string(spec_, comp.begin, comp.len); 375 return std::string(spec_, comp.begin, comp.len);
365 } 376 }
366 377
367 // The actual text of the URL, in canonical ASCII form. 378 // The actual text of the URL, in canonical ASCII form.
(...skipping 10 matching lines...) Expand all
378 // Used for nested schemes [currently only filesystem:]. 389 // Used for nested schemes [currently only filesystem:].
379 scoped_ptr<GURL> inner_url_; 390 scoped_ptr<GURL> inner_url_;
380 391
381 // TODO bug 684583: Add encoding for query params. 392 // TODO bug 684583: Add encoding for query params.
382 }; 393 };
383 394
384 // Stream operator so GURL can be used in assertion statements. 395 // Stream operator so GURL can be used in assertion statements.
385 URL_EXPORT std::ostream& operator<<(std::ostream& out, const GURL& url); 396 URL_EXPORT std::ostream& operator<<(std::ostream& out, const GURL& url);
386 397
387 #endif // URL_GURL_H_ 398 #endif // URL_GURL_H_
OLDNEW
« no previous file with comments | « net/base/net_util_unittest.cc ('k') | url/gurl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698