Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/site_instance_impl.h" | 5 #include "content/browser/site_instance_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 787 EXPECT_TRUE(instance->HasSite()); | 787 EXPECT_TRUE(instance->HasSite()); |
| 788 EXPECT_TRUE(instance->GetSiteURL().is_empty()); | 788 EXPECT_TRUE(instance->GetSiteURL().is_empty()); |
| 789 host.reset(instance->GetProcess()); | 789 host.reset(instance->GetProcess()); |
| 790 | 790 |
| 791 EXPECT_FALSE(RenderProcessHostImpl::GetProcessHostForSite( | 791 EXPECT_FALSE(RenderProcessHostImpl::GetProcessHostForSite( |
| 792 browser_context.get(), GURL())); | 792 browser_context.get(), GURL())); |
| 793 | 793 |
| 794 DrainMessageLoop(); | 794 DrainMessageLoop(); |
| 795 } | 795 } |
| 796 | 796 |
| 797 // Check that an URL is considered same-site with blob: and filesystem: URLs | |
| 798 // with a matching inner origin. See https://crbug.com/726370. | |
| 799 TEST_F(SiteInstanceTest, IsSameWebsiteForNestedURLs) { | |
| 800 GURL foo_url("http://foo.com/"); | |
| 801 GURL bar_url("http://bar.com/"); | |
| 802 GURL blob_foo_url("blob:http://foo.com/uuid"); | |
| 803 GURL blob_bar_url("blob:http://bar.com/uuid"); | |
| 804 GURL fs_foo_url("filesystem:http://foo.com/path/"); | |
| 805 GURL fs_bar_url("filesystem:http://bar.com/path/"); | |
|
ncarter (slow)
2017/05/31 17:32:54
This test maybe ought to exercise a case with www.
alexmos
2017/05/31 23:02:26
Done. Also added a case to make sure the inner sc
| |
| 806 | |
| 807 EXPECT_TRUE(SiteInstance::IsSameWebSite(nullptr, foo_url, blob_foo_url)); | |
| 808 EXPECT_TRUE(SiteInstance::IsSameWebSite(nullptr, blob_foo_url, foo_url)); | |
| 809 EXPECT_FALSE(SiteInstance::IsSameWebSite(nullptr, foo_url, blob_bar_url)); | |
| 810 EXPECT_FALSE(SiteInstance::IsSameWebSite(nullptr, blob_foo_url, bar_url)); | |
| 811 | |
| 812 EXPECT_TRUE(SiteInstance::IsSameWebSite(nullptr, foo_url, fs_foo_url)); | |
| 813 EXPECT_TRUE(SiteInstance::IsSameWebSite(nullptr, fs_foo_url, foo_url)); | |
| 814 EXPECT_FALSE(SiteInstance::IsSameWebSite(nullptr, foo_url, fs_bar_url)); | |
| 815 EXPECT_FALSE(SiteInstance::IsSameWebSite(nullptr, fs_foo_url, bar_url)); | |
| 816 | |
| 817 EXPECT_TRUE(SiteInstance::IsSameWebSite(nullptr, blob_foo_url, fs_foo_url)); | |
| 818 EXPECT_FALSE(SiteInstance::IsSameWebSite(nullptr, blob_foo_url, fs_bar_url)); | |
| 819 EXPECT_FALSE( | |
| 820 SiteInstance::IsSameWebSite(nullptr, blob_foo_url, blob_bar_url)); | |
| 821 EXPECT_FALSE(SiteInstance::IsSameWebSite(nullptr, fs_foo_url, fs_bar_url)); | |
| 822 } | |
| 823 | |
| 797 TEST_F(SiteInstanceTest, DefaultSubframeSiteInstance) { | 824 TEST_F(SiteInstanceTest, DefaultSubframeSiteInstance) { |
| 798 if (AreAllSitesIsolatedForTesting()) | 825 if (AreAllSitesIsolatedForTesting()) |
| 799 return; // --top-document-isolation is not possible. | 826 return; // --top-document-isolation is not possible. |
| 800 | 827 |
| 801 base::test::ScopedFeatureList scoped_feature_list; | 828 base::test::ScopedFeatureList scoped_feature_list; |
| 802 scoped_feature_list.InitAndEnableFeature(features::kTopDocumentIsolation); | 829 scoped_feature_list.InitAndEnableFeature(features::kTopDocumentIsolation); |
| 803 | 830 |
| 804 std::unique_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); | 831 std::unique_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); |
| 805 scoped_refptr<SiteInstanceImpl> main_instance = | 832 scoped_refptr<SiteInstanceImpl> main_instance = |
| 806 SiteInstanceImpl::Create(browser_context.get()); | 833 SiteInstanceImpl::Create(browser_context.get()); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 903 nullptr, isolated_foo_url)); | 930 nullptr, isolated_foo_url)); |
| 904 EXPECT_TRUE(SiteInstanceImpl::DoesSiteRequireDedicatedProcess( | 931 EXPECT_TRUE(SiteInstanceImpl::DoesSiteRequireDedicatedProcess( |
| 905 nullptr, isolated_bar_url)); | 932 nullptr, isolated_bar_url)); |
| 906 EXPECT_TRUE(SiteInstanceImpl::DoesSiteRequireDedicatedProcess( | 933 EXPECT_TRUE(SiteInstanceImpl::DoesSiteRequireDedicatedProcess( |
| 907 nullptr, isolated_blob_foo_url)); | 934 nullptr, isolated_blob_foo_url)); |
| 908 EXPECT_TRUE(SiteInstanceImpl::DoesSiteRequireDedicatedProcess( | 935 EXPECT_TRUE(SiteInstanceImpl::DoesSiteRequireDedicatedProcess( |
| 909 nullptr, isolated_filesystem_foo_url)); | 936 nullptr, isolated_filesystem_foo_url)); |
| 910 } | 937 } |
| 911 | 938 |
| 912 } // namespace content | 939 } // namespace content |
| OLD | NEW |