| OLD | NEW |
| 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 |
| 11 #include <algorithm> | 11 #include <algorithm> |
| 12 #include <ostream> | 12 #include <ostream> |
| 13 | 13 |
| 14 #include "url/gurl.h" | 14 #include "url/gurl.h" |
| 15 | 15 |
| 16 #include "base/logging.h" | 16 #include "base/logging.h" |
| 17 #include "base/strings/string_util.h" |
| 17 #include "url/url_canon_stdstring.h" | 18 #include "url/url_canon_stdstring.h" |
| 18 #include "url/url_util.h" | 19 #include "url/url_util.h" |
| 19 | 20 |
| 20 namespace { | 21 namespace { |
| 21 | 22 |
| 22 static std::string* empty_string = NULL; | 23 static std::string* empty_string = NULL; |
| 23 static GURL* empty_gurl = NULL; | 24 static GURL* empty_gurl = NULL; |
| 24 | 25 |
| 25 #ifdef WIN32 | 26 #ifdef WIN32 |
| 26 | 27 |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 return other; | 376 return other; |
| 376 } | 377 } |
| 377 | 378 |
| 378 bool GURL::IsStandard() const { | 379 bool GURL::IsStandard() const { |
| 379 return url::IsStandard(spec_.data(), parsed_.scheme); | 380 return url::IsStandard(spec_.data(), parsed_.scheme); |
| 380 } | 381 } |
| 381 | 382 |
| 382 bool GURL::SchemeIs(const char* lower_ascii_scheme) const { | 383 bool GURL::SchemeIs(const char* lower_ascii_scheme) const { |
| 383 if (parsed_.scheme.len <= 0) | 384 if (parsed_.scheme.len <= 0) |
| 384 return lower_ascii_scheme == NULL; | 385 return lower_ascii_scheme == NULL; |
| 385 return url::LowerCaseEqualsASCII(spec_.data() + parsed_.scheme.begin, | 386 return base::LowerCaseEqualsASCII(spec_.data() + parsed_.scheme.begin, |
| 386 spec_.data() + parsed_.scheme.end(), | 387 spec_.data() + parsed_.scheme.end(), |
| 387 lower_ascii_scheme); | 388 lower_ascii_scheme); |
| 388 } | 389 } |
| 389 | 390 |
| 390 bool GURL::SchemeIsHTTPOrHTTPS() const { | 391 bool GURL::SchemeIsHTTPOrHTTPS() const { |
| 391 return SchemeIs(url::kHttpScheme) || SchemeIs(url::kHttpsScheme); | 392 return SchemeIs(url::kHttpScheme) || SchemeIs(url::kHttpsScheme); |
| 392 } | 393 } |
| 393 | 394 |
| 394 bool GURL::SchemeIsWSOrWSS() const { | 395 bool GURL::SchemeIsWSOrWSS() const { |
| 395 return SchemeIs(url::kWsScheme) || SchemeIs(url::kWssScheme); | 396 return SchemeIs(url::kWsScheme) || SchemeIs(url::kWssScheme); |
| 396 } | 397 } |
| 397 | 398 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 } | 515 } |
| 515 | 516 |
| 516 // Return false if host's length is less than domain's length. | 517 // Return false if host's length is less than domain's length. |
| 517 if (host_len < domain_len) | 518 if (host_len < domain_len) |
| 518 return false; | 519 return false; |
| 519 | 520 |
| 520 // Compare this url whether belong specific domain. | 521 // Compare this url whether belong specific domain. |
| 521 const char* start_pos = spec_.data() + parsed_.host.begin + | 522 const char* start_pos = spec_.data() + parsed_.host.begin + |
| 522 host_len - domain_len; | 523 host_len - domain_len; |
| 523 | 524 |
| 524 if (!url::LowerCaseEqualsASCII(start_pos, | 525 if (!base::LowerCaseEqualsASCII(start_pos, |
| 525 last_pos + 1, | 526 last_pos + 1, |
| 526 lower_ascii_domain, | 527 lower_ascii_domain, |
| 527 lower_ascii_domain + domain_len)) | 528 lower_ascii_domain + domain_len)) |
| 528 return false; | 529 return false; |
| 529 | 530 |
| 530 // Check whether host has right domain start with dot, make sure we got | 531 // Check whether host has right domain start with dot, make sure we got |
| 531 // right domain range. For example www.google.com has domain | 532 // right domain range. For example www.google.com has domain |
| 532 // "google.com" but www.iamnotgoogle.com does not. | 533 // "google.com" but www.iamnotgoogle.com does not. |
| 533 if ('.' != lower_ascii_domain[0] && host_len > domain_len && | 534 if ('.' != lower_ascii_domain[0] && host_len > domain_len && |
| 534 '.' != *(start_pos - 1)) | 535 '.' != *(start_pos - 1)) |
| 535 return false; | 536 return false; |
| 536 | 537 |
| 537 return true; | 538 return true; |
| 538 } | 539 } |
| 539 | 540 |
| 540 void GURL::Swap(GURL* other) { | 541 void GURL::Swap(GURL* other) { |
| 541 spec_.swap(other->spec_); | 542 spec_.swap(other->spec_); |
| 542 std::swap(is_valid_, other->is_valid_); | 543 std::swap(is_valid_, other->is_valid_); |
| 543 std::swap(parsed_, other->parsed_); | 544 std::swap(parsed_, other->parsed_); |
| 544 inner_url_.swap(other->inner_url_); | 545 inner_url_.swap(other->inner_url_); |
| 545 } | 546 } |
| 546 | 547 |
| 547 std::ostream& operator<<(std::ostream& out, const GURL& url) { | 548 std::ostream& operator<<(std::ostream& out, const GURL& url) { |
| 548 return out << url.possibly_invalid_spec(); | 549 return out << url.possibly_invalid_spec(); |
| 549 } | 550 } |
| OLD | NEW |