| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/compiler_specific.h" | 5 #include "base/compiler_specific.h" |
| 6 #include "base/stl_util-inl.h" | 6 #include "base/stl_util-inl.h" |
| 7 #include "base/string16.h" | 7 #include "base/string16.h" |
| 8 #include "chrome/test/testing_profile.h" | 8 #include "chrome/test/testing_profile.h" |
| 9 #include "content/browser/browser_thread.h" | 9 #include "content/browser/browser_thread.h" |
| 10 #include "content/browser/browsing_instance.h" | 10 #include "content/browser/browsing_instance.h" |
| (...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 // Make sure none of differing privilege processes are mixed. | 511 // Make sure none of differing privilege processes are mixed. |
| 512 EXPECT_NE(extension1_instance->GetProcess(), webui1_instance->GetProcess()); | 512 EXPECT_NE(extension1_instance->GetProcess(), webui1_instance->GetProcess()); |
| 513 | 513 |
| 514 for (size_t i = 0; i < content::kMaxRendererProcessCount; ++i) { | 514 for (size_t i = 0; i < content::kMaxRendererProcessCount; ++i) { |
| 515 EXPECT_NE(extension1_instance->GetProcess(), hosts[i]); | 515 EXPECT_NE(extension1_instance->GetProcess(), hosts[i]); |
| 516 EXPECT_NE(webui1_instance->GetProcess(), hosts[i]); | 516 EXPECT_NE(webui1_instance->GetProcess(), hosts[i]); |
| 517 } | 517 } |
| 518 | 518 |
| 519 STLDeleteContainerPointers(hosts.begin(), hosts.end()); | 519 STLDeleteContainerPointers(hosts.begin(), hosts.end()); |
| 520 } | 520 } |
| 521 | |
| 522 // Test to ensure that profiles that derive from each other share site | |
| 523 // information. | |
| 524 TEST_F(SiteInstanceTest, GetSiteInstanceMap) { | |
| 525 int deleteCounter = 0; | |
| 526 | |
| 527 scoped_ptr<Profile> p1(new TestingProfile()); | |
| 528 scoped_ptr<Profile> p2(new TestingProfile()); | |
| 529 scoped_ptr<Profile> p3(new DerivedTestingProfile(p1.get())); | |
| 530 | |
| 531 // In this test, instances 1 and 2 will be deleted automatically when the | |
| 532 // SiteInstance objects they return are deleted. However, instance 3 never | |
| 533 // returns any SitesIntance objects in this test, so will not be automatically | |
| 534 // deleted. It must be deleted manually. | |
| 535 TestBrowsingInstance* instance1(new TestBrowsingInstance(p1.get(), | |
| 536 &deleteCounter)); | |
| 537 TestBrowsingInstance* instance2(new TestBrowsingInstance(p2.get(), | |
| 538 &deleteCounter)); | |
| 539 scoped_refptr<TestBrowsingInstance> instance3( | |
| 540 new TestBrowsingInstance(p3.get(), &deleteCounter)); | |
| 541 | |
| 542 instance1->use_process_per_site = true; | |
| 543 instance2->use_process_per_site = true; | |
| 544 instance3->use_process_per_site = true; | |
| 545 | |
| 546 // The same profile with the same site. | |
| 547 scoped_refptr<SiteInstance> s1a(instance1->GetSiteInstanceForURL( | |
| 548 GURL("chrome-extension://baz/bar"))); | |
| 549 scoped_refptr<SiteInstance> s1b(instance1->GetSiteInstanceForURL( | |
| 550 GURL("chrome-extension://baz/bar"))); | |
| 551 EXPECT_EQ(s1a, s1b); | |
| 552 | |
| 553 // The same profile with different sites. | |
| 554 scoped_refptr<SiteInstance> s2a(instance1->GetSiteInstanceForURL( | |
| 555 GURL("chrome-extension://baz/bar"))); | |
| 556 scoped_refptr<SiteInstance> s2b(instance1->GetSiteInstanceForURL( | |
| 557 GURL("chrome-extension://foo/boo"))); | |
| 558 EXPECT_NE(s2a, s2b); | |
| 559 | |
| 560 // The different profiles with the same site. | |
| 561 scoped_refptr<SiteInstance> s3a(instance1->GetSiteInstanceForURL( | |
| 562 GURL("chrome-extension://baz/bar"))); | |
| 563 scoped_refptr<SiteInstance> s3b(instance2->GetSiteInstanceForURL( | |
| 564 GURL("chrome-extension://baz/bar"))); | |
| 565 EXPECT_NE(s3a, s3b); | |
| 566 | |
| 567 // The different profiles with different sites. | |
| 568 scoped_refptr<SiteInstance> s4a(instance1->GetSiteInstanceForURL( | |
| 569 GURL("chrome-extension://baz/bar"))); | |
| 570 scoped_refptr<SiteInstance> s4b(instance2->GetSiteInstanceForURL( | |
| 571 GURL("chrome-extension://foo/boo"))); | |
| 572 EXPECT_NE(s4a, s4b); | |
| 573 | |
| 574 // The derived profiles with the same site. | |
| 575 scoped_refptr<SiteInstance> s5a(instance1->GetSiteInstanceForURL( | |
| 576 GURL("chrome-extension://baz/bar"))); | |
| 577 scoped_refptr<SiteInstance> s5b(instance3->GetSiteInstanceForURL( | |
| 578 GURL("chrome-extension://baz/bar"))); | |
| 579 EXPECT_EQ(s5a, s5b); | |
| 580 | |
| 581 // The derived profiles with the different sites. | |
| 582 scoped_refptr<SiteInstance> s6a(instance1->GetSiteInstanceForURL( | |
| 583 GURL("chrome-extension://baz/bar"))); | |
| 584 scoped_refptr<SiteInstance> s6b(instance3->GetSiteInstanceForURL( | |
| 585 GURL("chrome-extension://foo/boo"))); | |
| 586 EXPECT_NE(s6a, s6b); | |
| 587 } | |
| OLD | NEW |