| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 http_url.spec())); | 541 http_url.spec())); |
| 542 std::set<GURL> allowed_urls; | 542 std::set<GURL> allowed_urls; |
| 543 allowed_urls.insert(http_url); | 543 allowed_urls.insert(http_url); |
| 544 // http_url_with_path() will also be allowed, because Extension should be | 544 // http_url_with_path() will also be allowed, because Extension should be |
| 545 // considering the security origin of the URL not the URL itself, and | 545 // considering the security origin of the URL not the URL itself, and |
| 546 // http_url is in allowed_hosts. | 546 // http_url is in allowed_hosts. |
| 547 allowed_urls.insert(http_url_with_path); | 547 allowed_urls.insert(http_url_with_path); |
| 548 | 548 |
| 549 { | 549 { |
| 550 scoped_refptr<PermissionSet> permissions( | 550 scoped_refptr<PermissionSet> permissions( |
| 551 new PermissionSet(APIPermissionSet(), allowed_hosts, URLPatternSet())); | 551 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), |
| 552 allowed_hosts, URLPatternSet())); |
| 552 PermissionsData::UpdateTabSpecificPermissions( | 553 PermissionsData::UpdateTabSpecificPermissions( |
| 553 extension.get(), 0, permissions); | 554 extension.get(), 0, permissions); |
| 554 EXPECT_EQ(permissions->explicit_hosts(), | 555 EXPECT_EQ(permissions->explicit_hosts(), |
| 555 PermissionsData::GetTabSpecificPermissions(extension.get(), 0) | 556 PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
| 556 ->explicit_hosts()); | 557 ->explicit_hosts()); |
| 557 } | 558 } |
| 558 | 559 |
| 559 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); | 560 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
| 560 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 561 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| 561 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 562 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| 562 | 563 |
| 563 PermissionsData::ClearTabSpecificPermissions(extension.get(), 0); | 564 PermissionsData::ClearTabSpecificPermissions(extension.get(), 0); |
| 564 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 0) | 565 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
| 565 .get()); | 566 .get()); |
| 566 | 567 |
| 567 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); | 568 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| 568 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 569 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| 569 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 570 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| 570 | 571 |
| 571 std::set<GURL> more_allowed_urls = allowed_urls; | 572 std::set<GURL> more_allowed_urls = allowed_urls; |
| 572 more_allowed_urls.insert(https_url); | 573 more_allowed_urls.insert(https_url); |
| 573 URLPatternSet more_allowed_hosts = allowed_hosts; | 574 URLPatternSet more_allowed_hosts = allowed_hosts; |
| 574 more_allowed_hosts.AddPattern(URLPattern(URLPattern::SCHEME_ALL, | 575 more_allowed_hosts.AddPattern(URLPattern(URLPattern::SCHEME_ALL, |
| 575 https_url.spec())); | 576 https_url.spec())); |
| 576 | 577 |
| 577 { | 578 { |
| 578 scoped_refptr<PermissionSet> permissions( | 579 scoped_refptr<PermissionSet> permissions( |
| 579 new PermissionSet(APIPermissionSet(), allowed_hosts, URLPatternSet())); | 580 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), |
| 581 allowed_hosts, URLPatternSet())); |
| 580 PermissionsData::UpdateTabSpecificPermissions( | 582 PermissionsData::UpdateTabSpecificPermissions( |
| 581 extension.get(), 0, permissions); | 583 extension.get(), 0, permissions); |
| 582 EXPECT_EQ(permissions->explicit_hosts(), | 584 EXPECT_EQ(permissions->explicit_hosts(), |
| 583 PermissionsData::GetTabSpecificPermissions(extension.get(), 0) | 585 PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
| 584 ->explicit_hosts()); | 586 ->explicit_hosts()); |
| 585 | 587 |
| 586 permissions = new PermissionSet(APIPermissionSet(), | 588 permissions = new PermissionSet(APIPermissionSet(), |
| 589 ManifestPermissionSet(), |
| 587 more_allowed_hosts, | 590 more_allowed_hosts, |
| 588 URLPatternSet()); | 591 URLPatternSet()); |
| 589 PermissionsData::UpdateTabSpecificPermissions( | 592 PermissionsData::UpdateTabSpecificPermissions( |
| 590 extension.get(), 1, permissions); | 593 extension.get(), 1, permissions); |
| 591 EXPECT_EQ(permissions->explicit_hosts(), | 594 EXPECT_EQ(permissions->explicit_hosts(), |
| 592 PermissionsData::GetTabSpecificPermissions(extension.get(), 1) | 595 PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
| 593 ->explicit_hosts()); | 596 ->explicit_hosts()); |
| 594 } | 597 } |
| 595 | 598 |
| 596 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); | 599 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 608 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); | 611 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
| 609 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) | 612 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
| 610 .get()); | 613 .get()); |
| 611 | 614 |
| 612 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); | 615 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| 613 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 616 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| 614 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 617 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| 615 } | 618 } |
| 616 | 619 |
| 617 } // namespace extensions | 620 } // namespace extensions |
| OLD | NEW |