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

Side by Side Diff: url/gurl.cc

Issue 1270443006: Proof-read comments in src/url/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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
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 #ifdef WIN32 5 #ifdef WIN32
6 #include <windows.h> 6 #include <windows.h>
7 #else 7 #else
8 #include <pthread.h> 8 #include <pthread.h>
9 #endif 9 #endif
10 10
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 } 54 }
55 55
56 const std::string& EmptyStringForGURL() { 56 const std::string& EmptyStringForGURL() {
57 // Avoid static object construction/destruction on startup/shutdown. 57 // Avoid static object construction/destruction on startup/shutdown.
58 pthread_once(&empty_string_once, EmptyStringForGURLOnce); 58 pthread_once(&empty_string_once, EmptyStringForGURLOnce);
59 return *empty_string; 59 return *empty_string;
60 } 60 }
61 61
62 #endif // WIN32 62 #endif // WIN32
63 63
64 } // namespace 64 } // namespace
65 65
66 GURL::GURL() : is_valid_(false) { 66 GURL::GURL() : is_valid_(false) {
67 } 67 }
68 68
69 GURL::GURL(const GURL& other) 69 GURL::GURL(const GURL& other)
70 : spec_(other.spec_), 70 : spec_(other.spec_),
71 is_valid_(other.is_valid_), 71 is_valid_(other.is_valid_),
72 parsed_(other.parsed_) { 72 parsed_(other.parsed_) {
73 if (other.inner_url_) 73 if (other.inner_url_)
74 inner_url_.reset(new GURL(*other.inner_url_)); 74 inner_url_.reset(new GURL(*other.inner_url_));
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 void GURL::InitializeFromCanonicalSpec() { 125 void GURL::InitializeFromCanonicalSpec() {
126 if (is_valid_ && SchemeIsFileSystem()) { 126 if (is_valid_ && SchemeIsFileSystem()) {
127 inner_url_.reset( 127 inner_url_.reset(
128 new GURL(spec_.data(), parsed_.Length(), 128 new GURL(spec_.data(), parsed_.Length(),
129 *parsed_.inner_parsed(), true)); 129 *parsed_.inner_parsed(), true));
130 } 130 }
131 131
132 #ifndef NDEBUG 132 #ifndef NDEBUG
133 // For testing purposes, check that the parsed canonical URL is identical to 133 // For testing purposes, check that the parsed canonical URL is identical to
134 // what we would have produced. Skip checking for invalid URLs have no meaning 134 // what we would have produced. Skip checking for invalid URLs have no meaning
135 // and we can't always canonicalize then reproducabely. 135 // and we can't always canonicalize then reproducibly.
136 if (is_valid_) { 136 if (is_valid_) {
137 url::Component scheme; 137 url::Component scheme;
138 // We can't do this check on the inner_url of a filesystem URL, as 138 // We can't do this check on the inner_url of a filesystem URL, as
139 // canonical_spec actually points to the start of the outer URL, so we'd 139 // canonical_spec actually points to the start of the outer URL, so we'd
140 // end up with infinite recursion in this constructor. 140 // end up with infinite recursion in this constructor.
141 if (!url::FindAndCompareScheme(spec_.data(), spec_.length(), 141 if (!url::FindAndCompareScheme(spec_.data(), spec_.length(),
142 url::kFileSystemScheme, &scheme) || 142 url::kFileSystemScheme, &scheme) ||
143 scheme.begin == parsed_.scheme.begin) { 143 scheme.begin == parsed_.scheme.begin) {
144 // We need to retain trailing whitespace on path URLs, as the |parsed_| 144 // We need to retain trailing whitespace on path URLs, as the |parsed_|
145 // spec we originally received may legitimately contain trailing white- 145 // spec we originally received may legitimately contain trailing white-
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 output.Complete(); 304 output.Complete();
305 if (result.is_valid_ && result.SchemeIsFileSystem()) { 305 if (result.is_valid_ && result.SchemeIsFileSystem()) {
306 result.inner_url_.reset(new GURL(spec_.data(), result.parsed_.Length(), 306 result.inner_url_.reset(new GURL(spec_.data(), result.parsed_.Length(),
307 *result.parsed_.inner_parsed(), true)); 307 *result.parsed_.inner_parsed(), true));
308 } 308 }
309 return result; 309 return result;
310 } 310 }
311 311
312 GURL GURL::GetOrigin() const { 312 GURL GURL::GetOrigin() const {
313 // This doesn't make sense for invalid or nonstandard URLs, so return 313 // This doesn't make sense for invalid or nonstandard URLs, so return
314 // the empty URL 314 // the empty URL.
315 if (!is_valid_ || !IsStandard()) 315 if (!is_valid_ || !IsStandard())
316 return GURL(); 316 return GURL();
317 317
318 if (SchemeIsFileSystem()) 318 if (SchemeIsFileSystem())
319 return inner_url_->GetOrigin(); 319 return inner_url_->GetOrigin();
320 320
321 url::Replacements<char> replacements; 321 url::Replacements<char> replacements;
322 replacements.ClearUsername(); 322 replacements.ClearUsername();
323 replacements.ClearPassword(); 323 replacements.ClearPassword();
324 replacements.ClearPath(); 324 replacements.ClearPath();
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 return int_port; 401 return int_port;
402 } 402 }
403 403
404 std::string GURL::ExtractFileName() const { 404 std::string GURL::ExtractFileName() const {
405 url::Component file_component; 405 url::Component file_component;
406 url::ExtractFileName(spec_.data(), parsed_.path, &file_component); 406 url::ExtractFileName(spec_.data(), parsed_.path, &file_component);
407 return ComponentString(file_component); 407 return ComponentString(file_component);
408 } 408 }
409 409
410 std::string GURL::PathForRequest() const { 410 std::string GURL::PathForRequest() const {
411 DCHECK(parsed_.path.len > 0) << "Canonical path for requests should be non-emp ty"; 411 DCHECK(parsed_.path.len > 0)
412 << "Canonical path for requests should be non-empty";
412 if (parsed_.ref.len >= 0) { 413 if (parsed_.ref.len >= 0) {
413 // Clip off the reference when it exists. The reference starts after the # 414 // Clip off the reference when it exists. The reference starts after the
414 // sign, so we have to subtract one to also remove it. 415 // #-sign, so we have to subtract one to also remove it.
415 return std::string(spec_, parsed_.path.begin, 416 return std::string(spec_, parsed_.path.begin,
416 parsed_.ref.begin - parsed_.path.begin - 1); 417 parsed_.ref.begin - parsed_.path.begin - 1);
417 } 418 }
418 // Compute the actual path length, rather than depending on the spec's 419 // Compute the actual path length, rather than depending on the spec's
419 // terminator. If we're an inner_url, our spec continues on into our outer 420 // terminator. If we're an inner_url, our spec continues on into our outer
420 // url's path/query/ref. 421 // URL's path/query/ref.
421 int path_len = parsed_.path.len; 422 int path_len = parsed_.path.len;
422 if (parsed_.query.is_valid()) 423 if (parsed_.query.is_valid())
423 path_len = parsed_.query.end() - parsed_.path.begin; 424 path_len = parsed_.query.end() - parsed_.path.begin;
424 425
425 return std::string(spec_, parsed_.path.begin, path_len); 426 return std::string(spec_, parsed_.path.begin, path_len);
426 } 427 }
427 428
428 std::string GURL::HostNoBrackets() const { 429 std::string GURL::HostNoBrackets() const {
429 // If host looks like an IPv6 literal, strip the square brackets. 430 // If host looks like an IPv6 literal, strip the square brackets.
430 url::Component h(parsed_.host); 431 url::Component h(parsed_.host);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 void GURL::Swap(GURL* other) { 530 void GURL::Swap(GURL* other) {
530 spec_.swap(other->spec_); 531 spec_.swap(other->spec_);
531 std::swap(is_valid_, other->is_valid_); 532 std::swap(is_valid_, other->is_valid_);
532 std::swap(parsed_, other->parsed_); 533 std::swap(parsed_, other->parsed_);
533 inner_url_.swap(other->inner_url_); 534 inner_url_.swap(other->inner_url_);
534 } 535 }
535 536
536 std::ostream& operator<<(std::ostream& out, const GURL& url) { 537 std::ostream& operator<<(std::ostream& out, const GURL& url) {
537 return out << url.possibly_invalid_spec(); 538 return out << url.possibly_invalid_spec();
538 } 539 }
OLDNEW
« url/gurl.h ('K') | « url/gurl.h ('k') | url/gurl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698