| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 } | 186 } |
| 187 | 187 |
| 188 if (ShouldUseInnerURL(url)) | 188 if (ShouldUseInnerURL(url)) |
| 189 return AdoptRef(new SecurityOrigin(ExtractInnerURL(url))); | 189 return AdoptRef(new SecurityOrigin(ExtractInnerURL(url))); |
| 190 | 190 |
| 191 return AdoptRef(new SecurityOrigin(url)); | 191 return AdoptRef(new SecurityOrigin(url)); |
| 192 } | 192 } |
| 193 | 193 |
| 194 PassRefPtr<SecurityOrigin> SecurityOrigin::CreateUnique() { | 194 PassRefPtr<SecurityOrigin> SecurityOrigin::CreateUnique() { |
| 195 RefPtr<SecurityOrigin> origin = AdoptRef(new SecurityOrigin()); | 195 RefPtr<SecurityOrigin> origin = AdoptRef(new SecurityOrigin()); |
| 196 ASSERT(origin->IsUnique()); | 196 DCHECK(origin->IsUnique()); |
| 197 return origin.Release(); | 197 return origin.Release(); |
| 198 } | 198 } |
| 199 | 199 |
| 200 PassRefPtr<SecurityOrigin> SecurityOrigin::IsolatedCopy() const { | 200 PassRefPtr<SecurityOrigin> SecurityOrigin::IsolatedCopy() const { |
| 201 return AdoptRef(new SecurityOrigin(this)); | 201 return AdoptRef(new SecurityOrigin(this)); |
| 202 } | 202 } |
| 203 | 203 |
| 204 void SecurityOrigin::SetDomainFromDOM(const String& new_domain) { | 204 void SecurityOrigin::SetDomainFromDOM(const String& new_domain) { |
| 205 domain_was_set_in_dom_ = true; | 205 domain_was_set_in_dom_ = true; |
| 206 domain_ = new_domain; | 206 domain_ = new_domain; |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 // obtain the privilege by injecting script into the documents that have | 362 // obtain the privilege by injecting script into the documents that have |
| 363 // been granted the privilege. | 363 // been granted the privilege. |
| 364 can_load_local_resources_ = true; | 364 can_load_local_resources_ = true; |
| 365 } | 365 } |
| 366 | 366 |
| 367 void SecurityOrigin::GrantUniversalAccess() { | 367 void SecurityOrigin::GrantUniversalAccess() { |
| 368 universal_access_ = true; | 368 universal_access_ = true; |
| 369 } | 369 } |
| 370 | 370 |
| 371 void SecurityOrigin::AddSuborigin(const Suborigin& suborigin) { | 371 void SecurityOrigin::AddSuborigin(const Suborigin& suborigin) { |
| 372 ASSERT(RuntimeEnabledFeatures::suboriginsEnabled()); | 372 DCHECK(RuntimeEnabledFeatures::suboriginsEnabled()); |
| 373 // Changing suborigins midstream is bad. Very bad. It should not happen. | 373 // Changing suborigins midstream is bad. Very bad. It should not happen. |
| 374 // This is, in fact, one of the very basic invariants that makes | 374 // This is, in fact, one of the very basic invariants that makes |
| 375 // suborigins an effective security tool. | 375 // suborigins an effective security tool. |
| 376 RELEASE_ASSERT(suborigin_.GetName().IsNull() || | 376 RELEASE_ASSERT(suborigin_.GetName().IsNull() || |
| 377 (suborigin_.GetName() == suborigin.GetName())); | 377 (suborigin_.GetName() == suborigin.GetName())); |
| 378 suborigin_.SetTo(suborigin); | 378 suborigin_.SetTo(suborigin); |
| 379 } | 379 } |
| 380 | 380 |
| 381 void SecurityOrigin::BlockLocalAccessFromLocalOrigin() { | 381 void SecurityOrigin::BlockLocalAccessFromLocalOrigin() { |
| 382 ASSERT(IsLocal()); | 382 DCHECK(IsLocal()); |
| 383 block_local_access_from_local_origin_ = true; | 383 block_local_access_from_local_origin_ = true; |
| 384 } | 384 } |
| 385 | 385 |
| 386 bool SecurityOrigin::IsLocal() const { | 386 bool SecurityOrigin::IsLocal() const { |
| 387 return SchemeRegistry::ShouldTreatURLSchemeAsLocal(protocol_); | 387 return SchemeRegistry::ShouldTreatURLSchemeAsLocal(protocol_); |
| 388 } | 388 } |
| 389 | 389 |
| 390 bool SecurityOrigin::IsLocalhost() const { | 390 bool SecurityOrigin::IsLocalhost() const { |
| 391 // Note: net::isLocalhost has looser checks which allow uppercase hosts, as | 391 // Note: net::isLocalhost has looser checks which allow uppercase hosts, as |
| 392 // well as hosts like "a.localhost". The net code is also less optimized and | 392 // well as hosts like "a.localhost". The net code is also less optimized and |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 return IsSameSchemeHostPort(other) && same_suborigins; | 568 return IsSameSchemeHostPort(other) && same_suborigins; |
| 569 } | 569 } |
| 570 | 570 |
| 571 bool SecurityOrigin::AreSameSchemeHostPort(const KURL& a, const KURL& b) { | 571 bool SecurityOrigin::AreSameSchemeHostPort(const KURL& a, const KURL& b) { |
| 572 RefPtr<SecurityOrigin> origin_a = SecurityOrigin::Create(a); | 572 RefPtr<SecurityOrigin> origin_a = SecurityOrigin::Create(a); |
| 573 RefPtr<SecurityOrigin> origin_b = SecurityOrigin::Create(b); | 573 RefPtr<SecurityOrigin> origin_b = SecurityOrigin::Create(b); |
| 574 return origin_b->IsSameSchemeHostPort(origin_a.Get()); | 574 return origin_b->IsSameSchemeHostPort(origin_a.Get()); |
| 575 } | 575 } |
| 576 | 576 |
| 577 const KURL& SecurityOrigin::UrlWithUniqueSecurityOrigin() { | 577 const KURL& SecurityOrigin::UrlWithUniqueSecurityOrigin() { |
| 578 ASSERT(IsMainThread()); | 578 DCHECK(IsMainThread()); |
| 579 DEFINE_STATIC_LOCAL(const KURL, unique_security_origin_url, | 579 DEFINE_STATIC_LOCAL(const KURL, unique_security_origin_url, |
| 580 (kParsedURLString, "data:,")); | 580 (kParsedURLString, "data:,")); |
| 581 return unique_security_origin_url; | 581 return unique_security_origin_url; |
| 582 } | 582 } |
| 583 | 583 |
| 584 std::unique_ptr<SecurityOrigin::PrivilegeData> | 584 std::unique_ptr<SecurityOrigin::PrivilegeData> |
| 585 SecurityOrigin::CreatePrivilegeData() const { | 585 SecurityOrigin::CreatePrivilegeData() const { |
| 586 std::unique_ptr<PrivilegeData> privilege_data = | 586 std::unique_ptr<PrivilegeData> privilege_data = |
| 587 WTF::WrapUnique(new PrivilegeData); | 587 WTF::WrapUnique(new PrivilegeData); |
| 588 privilege_data->universal_access_ = universal_access_; | 588 privilege_data->universal_access_ = universal_access_; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 617 &canon_output, &out_host); | 617 &canon_output, &out_host); |
| 618 } else { | 618 } else { |
| 619 *success = url::CanonicalizeHost(host.Characters16(), | 619 *success = url::CanonicalizeHost(host.Characters16(), |
| 620 url::Component(0, host.length()), | 620 url::Component(0, host.length()), |
| 621 &canon_output, &out_host); | 621 &canon_output, &out_host); |
| 622 } | 622 } |
| 623 return String::FromUTF8(canon_output.data(), canon_output.length()); | 623 return String::FromUTF8(canon_output.data(), canon_output.length()); |
| 624 } | 624 } |
| 625 | 625 |
| 626 } // namespace blink | 626 } // namespace blink |
| OLD | NEW |