diff options
Diffstat (limited to 'content/browser/site_instance_impl_unittest.cc')
-rw-r--r-- | content/browser/site_instance_impl_unittest.cc | 119 |
1 files changed, 71 insertions, 48 deletions
diff --git a/content/browser/site_instance_impl_unittest.cc b/content/browser/site_instance_impl_unittest.cc index ee14b16..21e6914 100644 --- a/content/browser/site_instance_impl_unittest.cc +++ b/content/browser/site_instance_impl_unittest.cc @@ -28,7 +28,17 @@ #include "googleurl/src/url_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace content { +using content::BrowserContext; +using content::BrowserThread; +using content::BrowserThreadImpl; +using content::MockRenderProcessHost; +using content::MockRenderProcessHostFactory; +using content::NavigationEntry; +using content::NavigationEntryImpl; +using content::SiteInstance; +using content::WebContentsImpl; +using content::WebUI; +using content::WebUIController; namespace { @@ -36,7 +46,8 @@ const char kSameAsAnyInstanceURL[] = "about:internets"; const char kPrivilegedScheme[] = "privileged"; -class SiteInstanceTestWebUIControllerFactory : public WebUIControllerFactory { +class SiteInstanceTestWebUIControllerFactory + : public content::WebUIControllerFactory { public: virtual WebUIController* CreateWebUIControllerForURL( WebUI* web_ui, const GURL& url) const OVERRIDE { @@ -48,11 +59,11 @@ class SiteInstanceTestWebUIControllerFactory : public WebUIControllerFactory { } virtual bool UseWebUIForURL(BrowserContext* browser_context, const GURL& url) const OVERRIDE { - return GetContentClient()->HasWebUIScheme(url); + return content::GetContentClient()->HasWebUIScheme(url); } virtual bool UseWebUIBindingsForURL(BrowserContext* browser_context, const GURL& url) const OVERRIDE { - return GetContentClient()->HasWebUIScheme(url); + return content::GetContentClient()->HasWebUIScheme(url); } virtual bool IsURLAcceptableForWebUI( BrowserContext* browser_context, @@ -72,17 +83,18 @@ class SiteInstanceTestClient : public TestContentClient { } }; -class SiteInstanceTestBrowserClient : public TestContentBrowserClient { +class SiteInstanceTestBrowserClient : public content::TestContentBrowserClient { public: SiteInstanceTestBrowserClient() : privileged_process_id_(-1) { } - virtual WebUIControllerFactory* GetWebUIControllerFactory() OVERRIDE { + virtual content::WebUIControllerFactory* + GetWebUIControllerFactory() OVERRIDE { return &factory_; } - virtual bool IsSuitableHost(RenderProcessHost* process_host, + virtual bool IsSuitableHost(content::RenderProcessHost* process_host, const GURL& site_url) OVERRIDE { return (privileged_process_id_ == process_host->GetID()) == site_url.SchemeIs(kPrivilegedScheme); @@ -101,28 +113,28 @@ class SiteInstanceTest : public testing::Test { public: SiteInstanceTest() : ui_thread_(BrowserThread::UI, &message_loop_), - file_user_blocking_thread_(BrowserThread::FILE_USER_BLOCKING, + file_user_blocking_thread_(content::BrowserThread::FILE_USER_BLOCKING, &message_loop_), - io_thread_(BrowserThread::IO, &message_loop_), + io_thread_(content::BrowserThread::IO, &message_loop_), old_client_(NULL), old_browser_client_(NULL) { } virtual void SetUp() { - old_client_ = GetContentClient(); - old_browser_client_ = GetContentClient()->browser(); - SetContentClient(&client_); - GetContentClient()->set_browser_for_testing(&browser_client_); + old_client_ = content::GetContentClient(); + old_browser_client_ = content::GetContentClient()->browser(); + content::SetContentClient(&client_); + content::GetContentClient()->set_browser_for_testing(&browser_client_); url_util::AddStandardScheme(kPrivilegedScheme); url_util::AddStandardScheme(chrome::kChromeUIScheme); } virtual void TearDown() { // Ensure that no RenderProcessHosts are left over after the tests. - EXPECT_TRUE(RenderProcessHost::AllHostsIterator().IsAtEnd()); + EXPECT_TRUE(content::RenderProcessHost::AllHostsIterator().IsAtEnd()); - GetContentClient()->set_browser_for_testing(old_browser_client_); - SetContentClient(old_client_); + content::GetContentClient()->set_browser_for_testing(old_browser_client_); + content::SetContentClient(old_client_); // http://crbug.com/143565 found SiteInstanceTest leaking an // AppCacheDatabase. This happens because some part of the test indirectly @@ -150,14 +162,14 @@ class SiteInstanceTest : public testing::Test { private: MessageLoopForUI message_loop_; - TestBrowserThread ui_thread_; - TestBrowserThread file_user_blocking_thread_; - TestBrowserThread io_thread_; + content::TestBrowserThread ui_thread_; + content::TestBrowserThread file_user_blocking_thread_; + content::TestBrowserThread io_thread_; SiteInstanceTestClient client_; SiteInstanceTestBrowserClient browser_client_; - ContentClient* old_client_; - ContentBrowserClient* old_browser_client_; + content::ContentClient* old_client_; + content::ContentBrowserClient* old_browser_client_; }; // Subclass of BrowsingInstance that updates a counter when deleted and @@ -212,7 +224,7 @@ class TestSiteInstance : public SiteInstanceImpl { TEST_F(SiteInstanceTest, SiteInstanceDestructor) { // The existence of this object will cause WebContentsImpl to create our // test one instead of the real one. - RenderViewHostTestEnabler rvh_test_enabler; + content::RenderViewHostTestEnabler rvh_test_enabler; int site_delete_counter = 0; int browsing_delete_counter = 0; const GURL url("test:foo"); @@ -224,7 +236,8 @@ TEST_F(SiteInstanceTest, SiteInstanceDestructor) { EXPECT_EQ(0, site_delete_counter); NavigationEntryImpl* e1 = new NavigationEntryImpl( - instance, 0, url, Referrer(), string16(), PAGE_TRANSITION_LINK, false); + instance, 0, url, content::Referrer(), string16(), + content::PAGE_TRANSITION_LINK, false); // Redundantly setting e1's SiteInstance shouldn't affect the ref count. e1->set_site_instance(instance); @@ -232,7 +245,8 @@ TEST_F(SiteInstanceTest, SiteInstanceDestructor) { // Add a second reference NavigationEntryImpl* e2 = new NavigationEntryImpl( - instance, 0, url, Referrer(), string16(), PAGE_TRANSITION_LINK, false); + instance, 0, url, content::Referrer(), string16(), + content::PAGE_TRANSITION_LINK, false); // Now delete both entries and be sure the SiteInstance goes away. delete e1; @@ -245,7 +259,8 @@ TEST_F(SiteInstanceTest, SiteInstanceDestructor) { // browsing_instance is now deleted // Ensure that instances are deleted when their RenderViewHosts are gone. - scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); + scoped_ptr<content::TestBrowserContext> browser_context( + new content::TestBrowserContext()); instance = TestSiteInstance::CreateTestSiteInstance(browser_context.get(), &site_delete_counter, @@ -284,7 +299,8 @@ TEST_F(SiteInstanceTest, CloneNavigationEntry) { &browsing_delete_counter); NavigationEntryImpl* e1 = new NavigationEntryImpl( - instance1, 0, url, Referrer(), string16(), PAGE_TRANSITION_LINK, false); + instance1, 0, url, content::Referrer(), string16(), + content::PAGE_TRANSITION_LINK, false); // Clone the entry NavigationEntryImpl* e2 = new NavigationEntryImpl(*e1); @@ -311,8 +327,9 @@ TEST_F(SiteInstanceTest, CloneNavigationEntry) { // Test to ensure GetProcess returns and creates processes correctly. TEST_F(SiteInstanceTest, GetProcess) { // Ensure that GetProcess returns a process. - scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); - scoped_ptr<RenderProcessHost> host1; + scoped_ptr<content::TestBrowserContext> browser_context( + new content::TestBrowserContext()); + scoped_ptr<content::RenderProcessHost> host1; scoped_refptr<SiteInstanceImpl> instance(static_cast<SiteInstanceImpl*>( SiteInstance::Create(browser_context.get()))); host1.reset(instance->GetProcess()); @@ -321,7 +338,7 @@ TEST_F(SiteInstanceTest, GetProcess) { // Ensure that GetProcess creates a new process. scoped_refptr<SiteInstanceImpl> instance2(static_cast<SiteInstanceImpl*>( SiteInstance::Create(browser_context.get()))); - scoped_ptr<RenderProcessHost> host2(instance2->GetProcess()); + scoped_ptr<content::RenderProcessHost> host2(instance2->GetProcess()); EXPECT_TRUE(host2.get() != NULL); EXPECT_NE(host1.get(), host2.get()); @@ -412,7 +429,8 @@ TEST_F(SiteInstanceTest, OneSiteInstancePerSite) { ASSERT_FALSE(CommandLine::ForCurrentProcess()->HasSwitch( switches::kProcessPerSite)); int delete_counter = 0; - scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); + scoped_ptr<content::TestBrowserContext> browser_context( + new content::TestBrowserContext()); TestBrowsingInstance* browsing_instance = new TestBrowsingInstance(browser_context.get(), &delete_counter); @@ -455,8 +473,9 @@ TEST_F(SiteInstanceTest, OneSiteInstancePerSite) { // The two SiteInstances for http://google.com should not use the same process // if process-per-site is not enabled. - scoped_ptr<RenderProcessHost> process_a1(site_instance_a1->GetProcess()); - scoped_ptr<RenderProcessHost> process_a2_2( + scoped_ptr<content::RenderProcessHost> process_a1( + site_instance_a1->GetProcess()); + scoped_ptr<content::RenderProcessHost> process_a2_2( site_instance_a2_2->GetProcess()); EXPECT_NE(process_a1.get(), process_a2_2.get()); @@ -486,7 +505,8 @@ TEST_F(SiteInstanceTest, OneSiteInstancePerSiteInBrowserContext) { CommandLine::ForCurrentProcess()->AppendSwitch( switches::kProcessPerSite); int delete_counter = 0; - scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); + scoped_ptr<content::TestBrowserContext> browser_context( + new content::TestBrowserContext()); TestBrowsingInstance* browsing_instance = new TestBrowsingInstance(browser_context.get(), &delete_counter); @@ -495,7 +515,7 @@ TEST_F(SiteInstanceTest, OneSiteInstancePerSiteInBrowserContext) { static_cast<SiteInstanceImpl*>( browsing_instance->GetSiteInstanceForURL(url_a1))); EXPECT_TRUE(site_instance_a1.get() != NULL); - scoped_ptr<RenderProcessHost> process_a1( + scoped_ptr<content::RenderProcessHost> process_a1( site_instance_a1->GetProcess()); // A separate site should create a separate SiteInstance. @@ -531,14 +551,15 @@ TEST_F(SiteInstanceTest, OneSiteInstancePerSiteInBrowserContext) { // A visit to the original site in a new BrowsingInstance (different browser // context) should return a different SiteInstance with a different process. - scoped_ptr<TestBrowserContext> browser_context2(new TestBrowserContext()); + scoped_ptr<content::TestBrowserContext> browser_context2( + new content::TestBrowserContext()); TestBrowsingInstance* browsing_instance3 = new TestBrowsingInstance(browser_context2.get(), &delete_counter); scoped_refptr<SiteInstanceImpl> site_instance_a2_3( static_cast<SiteInstanceImpl*>( browsing_instance3->GetSiteInstanceForURL(url_a2))); EXPECT_TRUE(site_instance_a2_3.get() != NULL); - scoped_ptr<RenderProcessHost> process_a2_3( + scoped_ptr<content::RenderProcessHost> process_a2_3( site_instance_a2_3->GetProcess()); EXPECT_NE(site_instance_a1.get(), site_instance_a2_3.get()); EXPECT_NE(process_a1.get(), process_a2_3.get()); @@ -565,9 +586,10 @@ TEST_F(SiteInstanceTest, OneSiteInstancePerSiteInBrowserContext) { DrainMessageLoops(); } -static SiteInstanceImpl* CreateSiteInstance(BrowserContext* browser_context, - RenderProcessHostFactory* factory, - const GURL& url) { +static SiteInstanceImpl* CreateSiteInstance( + content::BrowserContext* browser_context, + content::RenderProcessHostFactory* factory, + const GURL& url) { SiteInstanceImpl* instance = reinterpret_cast<SiteInstanceImpl*>( SiteInstance::CreateForURL(browser_context, url)); @@ -583,9 +605,10 @@ TEST_F(SiteInstanceTest, ProcessSharingByType) { ChildProcessSecurityPolicyImpl::GetInstance(); // Make a bunch of mock renderers so that we hit the limit. - scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); + scoped_ptr<content::TestBrowserContext> browser_context( + new content::TestBrowserContext()); std::vector<MockRenderProcessHost*> hosts; - for (size_t i = 0; i < kMaxRendererProcessCount; ++i) + for (size_t i = 0; i < content::kMaxRendererProcessCount; ++i) hosts.push_back(new MockRenderProcessHost(browser_context.get())); // Create some extension instances and make sure they share a process. @@ -598,7 +621,7 @@ TEST_F(SiteInstanceTest, ProcessSharingByType) { CreateSiteInstance(browser_context.get(), &rph_factory, GURL(kPrivilegedScheme + std::string("://baz/bar")))); - scoped_ptr<RenderProcessHost> extension_host( + scoped_ptr<content::RenderProcessHost> extension_host( extension1_instance->GetProcess()); EXPECT_EQ(extension1_instance->GetProcess(), extension2_instance->GetProcess()); @@ -613,13 +636,14 @@ TEST_F(SiteInstanceTest, ProcessSharingByType) { browser_context.get(), &rph_factory, GURL(chrome::kChromeUIScheme + std::string("://history")))); - scoped_ptr<RenderProcessHost> dom_host(webui1_instance->GetProcess()); + scoped_ptr<content::RenderProcessHost> dom_host( + webui1_instance->GetProcess()); EXPECT_EQ(webui1_instance->GetProcess(), webui2_instance->GetProcess()); // Make sure none of differing privilege processes are mixed. EXPECT_NE(extension1_instance->GetProcess(), webui1_instance->GetProcess()); - for (size_t i = 0; i < kMaxRendererProcessCount; ++i) { + for (size_t i = 0; i < content::kMaxRendererProcessCount; ++i) { EXPECT_NE(extension1_instance->GetProcess(), hosts[i]); EXPECT_NE(webui1_instance->GetProcess(), hosts[i]); } @@ -632,8 +656,9 @@ TEST_F(SiteInstanceTest, ProcessSharingByType) { // Test to ensure that HasWrongProcessForURL behaves properly for different // types of URLs. TEST_F(SiteInstanceTest, HasWrongProcessForURL) { - scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); - scoped_ptr<RenderProcessHost> host; + scoped_ptr<content::TestBrowserContext> browser_context( + new content::TestBrowserContext()); + scoped_ptr<content::RenderProcessHost> host; scoped_refptr<SiteInstanceImpl> instance(static_cast<SiteInstanceImpl*>( SiteInstance::Create(browser_context.get()))); @@ -661,5 +686,3 @@ TEST_F(SiteInstanceTest, HasWrongProcessForURL) { DrainMessageLoops(); } - -} // namespace content |