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 #include "url/gurl.h" | 5 #include "url/gurl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <ostream> | 10 #include <ostream> |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 bool GURL::DomainIs(base::StringPiece lower_ascii_domain) const { | 460 bool GURL::DomainIs(base::StringPiece lower_ascii_domain) const { |
461 if (!is_valid_) | 461 if (!is_valid_) |
462 return false; | 462 return false; |
463 | 463 |
464 // FileSystem URLs have empty host_piece, so check this first. | 464 // FileSystem URLs have empty host_piece, so check this first. |
465 if (SchemeIsFileSystem() && inner_url_) | 465 if (SchemeIsFileSystem() && inner_url_) |
466 return inner_url_->DomainIs(lower_ascii_domain); | 466 return inner_url_->DomainIs(lower_ascii_domain); |
467 return url::DomainIs(host_piece(), lower_ascii_domain); | 467 return url::DomainIs(host_piece(), lower_ascii_domain); |
468 } | 468 } |
469 | 469 |
| 470 // static |
| 471 bool GURL::EqualsIgnoringRef(const GURL& x, const GURL& y) { |
| 472 int ref_position_x = x.parsed_.CountCharactersBefore(url::Parsed::REF, true); |
| 473 int ref_position_y = y.parsed_.CountCharactersBefore(url::Parsed::REF, true); |
| 474 return base::StringPiece(x.spec_).substr(0, ref_position_x) == |
| 475 base::StringPiece(y.spec_).substr(0, ref_position_y); |
| 476 } |
| 477 |
470 void GURL::Swap(GURL* other) { | 478 void GURL::Swap(GURL* other) { |
471 spec_.swap(other->spec_); | 479 spec_.swap(other->spec_); |
472 std::swap(is_valid_, other->is_valid_); | 480 std::swap(is_valid_, other->is_valid_); |
473 std::swap(parsed_, other->parsed_); | 481 std::swap(parsed_, other->parsed_); |
474 inner_url_.swap(other->inner_url_); | 482 inner_url_.swap(other->inner_url_); |
475 } | 483 } |
476 | 484 |
477 std::ostream& operator<<(std::ostream& out, const GURL& url) { | 485 std::ostream& operator<<(std::ostream& out, const GURL& url) { |
478 return out << url.possibly_invalid_spec(); | 486 return out << url.possibly_invalid_spec(); |
479 } | 487 } |
480 | 488 |
481 bool operator==(const GURL& x, const GURL& y) { | 489 bool operator==(const GURL& x, const GURL& y) { |
482 return x.possibly_invalid_spec() == y.possibly_invalid_spec(); | 490 return x.possibly_invalid_spec() == y.possibly_invalid_spec(); |
483 } | 491 } |
484 | 492 |
485 bool operator!=(const GURL& x, const GURL& y) { | 493 bool operator!=(const GURL& x, const GURL& y) { |
486 return !(x == y); | 494 return !(x == y); |
487 } | 495 } |
488 | 496 |
489 bool operator==(const GURL& x, const base::StringPiece& spec) { | 497 bool operator==(const GURL& x, const base::StringPiece& spec) { |
490 DCHECK_EQ(GURL(spec).possibly_invalid_spec(), spec); | 498 DCHECK_EQ(GURL(spec).possibly_invalid_spec(), spec); |
491 return x.possibly_invalid_spec() == spec; | 499 return x.possibly_invalid_spec() == spec; |
492 } | 500 } |
493 | 501 |
494 bool operator!=(const GURL& x, const base::StringPiece& spec) { | 502 bool operator!=(const GURL& x, const base::StringPiece& spec) { |
495 return !(x == spec); | 503 return !(x == spec); |
496 } | 504 } |
OLD | NEW |