Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(878)

Unified Diff: content/browser/site_instance_unittest.cc

Issue 9146028: Define the public interface for content browser SiteInstance. This interface is implemented by th... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/site_instance_unittest.cc
===================================================================
--- content/browser/site_instance_unittest.cc (revision 118703)
+++ content/browser/site_instance_unittest.cc (working copy)
@@ -12,7 +12,7 @@
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/renderer_host/test_render_view_host.h"
-#include "content/browser/site_instance.h"
+#include "content/browser/site_instance_impl.h"
#include "content/browser/tab_contents/navigation_entry_impl.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/webui/empty_web_ui_factory.h"
@@ -152,7 +152,7 @@
int* delete_counter_;
};
-class TestSiteInstance : public SiteInstance {
+class TestSiteInstance : public SiteInstanceImpl {
public:
static TestSiteInstance* CreateTestSiteInstance(
content::BrowserContext* browser_context,
@@ -165,7 +165,7 @@
private:
TestSiteInstance(BrowsingInstance* browsing_instance, int* delete_counter)
- : SiteInstance(browsing_instance), delete_counter_(delete_counter) {}
+ : SiteInstanceImpl(browsing_instance), delete_counter_(delete_counter) {}
virtual ~TestSiteInstance() {
(*delete_counter_)++;
}
@@ -248,10 +248,10 @@
int browsing_delete_counter = 0;
const GURL url("test:foo");
- SiteInstance* instance1 =
+ content::SiteInstance* instance1 =
TestSiteInstance::CreateTestSiteInstance(NULL, &site_delete_counter1,
&browsing_delete_counter);
- SiteInstance* instance2 =
+ content::SiteInstance* instance2 =
TestSiteInstance::CreateTestSiteInstance(NULL, &site_delete_counter2,
&browsing_delete_counter);
@@ -284,14 +284,14 @@
// Ensure that GetProcess returns a process.
scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext());
scoped_ptr<content::RenderProcessHost> host1;
- scoped_refptr<SiteInstance> instance(
- SiteInstance::CreateSiteInstance(browser_context.get()));
+ scoped_refptr<content::SiteInstance> instance(
+ content::SiteInstance::CreateSiteInstance(browser_context.get()));
host1.reset(instance->GetProcess());
EXPECT_TRUE(host1.get() != NULL);
// Ensure that GetProcess creates a new process.
- scoped_refptr<SiteInstance> instance2(
- SiteInstance::CreateSiteInstance(browser_context.get()));
+ scoped_refptr<content::SiteInstance> instance2(
+ content::SiteInstance::CreateSiteInstance(browser_context.get()));
scoped_ptr<content::RenderProcessHost> host2(instance2->GetProcess());
EXPECT_TRUE(host2.get() != NULL);
EXPECT_NE(host1.get(), host2.get());
@@ -299,14 +299,15 @@
// Test to ensure SetSite and site() work properly.
TEST_F(SiteInstanceTest, SetSite) {
- scoped_refptr<SiteInstance> instance(SiteInstance::CreateSiteInstance(NULL));
- EXPECT_FALSE(instance->has_site());
- EXPECT_TRUE(instance->site().is_empty());
+ scoped_refptr<content::SiteInstance> instance(
+ content::SiteInstance::CreateSiteInstance(NULL));
+ EXPECT_FALSE(instance->HasSite());
+ EXPECT_TRUE(instance->GetSite().is_empty());
instance->SetSite(GURL("http://www.google.com/index.html"));
- EXPECT_EQ(GURL("http://google.com"), instance->site());
+ EXPECT_EQ(GURL("http://google.com"), instance->GetSite());
- EXPECT_TRUE(instance->has_site());
+ EXPECT_TRUE(instance->HasSite());
}
// Test to ensure GetSiteForURL properly returns sites for URLs.
@@ -314,22 +315,23 @@
// Pages are irrelevant.
GURL test_url = GURL("http://www.google.com/index.html");
EXPECT_EQ(GURL("http://google.com"),
- SiteInstance::GetSiteForURL(NULL, test_url));
+ content::SiteInstance::GetSiteForURL(NULL, test_url));
// Ports are irrlevant.
test_url = GURL("https://www.google.com:8080");
EXPECT_EQ(GURL("https://google.com"),
- SiteInstance::GetSiteForURL(NULL, test_url));
+ content::SiteInstance::GetSiteForURL(NULL, test_url));
// Javascript URLs have no site.
test_url = GURL("javascript:foo();");
- EXPECT_EQ(GURL(), SiteInstance::GetSiteForURL(NULL, test_url));
+ EXPECT_EQ(GURL(), content::SiteInstance::GetSiteForURL(NULL, test_url));
test_url = GURL("http://foo/a.html");
- EXPECT_EQ(GURL("http://foo"), SiteInstance::GetSiteForURL(NULL, test_url));
+ EXPECT_EQ(GURL("http://foo"), content::SiteInstance::GetSiteForURL(
+ NULL, test_url));
test_url = GURL("file:///C:/Downloads/");
- EXPECT_EQ(GURL(), SiteInstance::GetSiteForURL(NULL, test_url));
+ EXPECT_EQ(GURL(), content::SiteInstance::GetSiteForURL(NULL, test_url));
// TODO(creis): Do we want to special case file URLs to ensure they have
// either no site or a special "file://" site? We currently return
@@ -351,25 +353,32 @@
GURL url_browser_specified = GURL(kSameAsAnyInstanceURL);
// Same scheme and port -> same site.
- EXPECT_TRUE(SiteInstance::IsSameWebSite(NULL, url_foo, url_foo2));
+ EXPECT_TRUE(content::SiteInstance::IsSameWebSite(NULL, url_foo, url_foo2));
// Different scheme -> different site.
- EXPECT_FALSE(SiteInstance::IsSameWebSite(NULL, url_foo, url_foo_https));
+ EXPECT_FALSE(content::SiteInstance::IsSameWebSite(NULL, url_foo,
+ url_foo_https));
// Different port -> same site.
// (Changes to document.domain make renderer ignore the port.)
- EXPECT_TRUE(SiteInstance::IsSameWebSite(NULL, url_foo, url_foo_port));
+ EXPECT_TRUE(content::SiteInstance::IsSameWebSite(NULL, url_foo,
+ url_foo_port));
// JavaScript links should be considered same site for anything.
- EXPECT_TRUE(SiteInstance::IsSameWebSite(NULL, url_javascript, url_foo));
- EXPECT_TRUE(SiteInstance::IsSameWebSite(NULL, url_javascript, url_foo_https));
- EXPECT_TRUE(SiteInstance::IsSameWebSite(NULL, url_javascript, url_foo_port));
+ EXPECT_TRUE(content::SiteInstance::IsSameWebSite(NULL, url_javascript,
+ url_foo));
+ EXPECT_TRUE(content::SiteInstance::IsSameWebSite(NULL, url_javascript,
+ url_foo_https));
+ EXPECT_TRUE(content::SiteInstance::IsSameWebSite(NULL, url_javascript,
+ url_foo_port));
// The URLs specified by the ContentBrowserClient should also be treated as
// same site.
- EXPECT_TRUE(SiteInstance::IsSameWebSite(NULL, url_crash, url_foo));
+ EXPECT_TRUE(content::SiteInstance::IsSameWebSite(NULL, url_crash,
+ url_foo));
EXPECT_TRUE(
- SiteInstance::IsSameWebSite(NULL, url_browser_specified, url_foo));
+ content::SiteInstance::IsSameWebSite(NULL, url_browser_specified,
+ url_foo));
}
// Test to ensure that there is only one SiteInstance per site in a given
@@ -381,13 +390,13 @@
browsing_instance->set_use_process_per_site(false);
const GURL url_a1("http://www.google.com/1.html");
- scoped_refptr<SiteInstance> site_instance_a1(
+ scoped_refptr<content::SiteInstance> site_instance_a1(
browsing_instance->GetSiteInstanceForURL(url_a1));
EXPECT_TRUE(site_instance_a1.get() != NULL);
// A separate site should create a separate SiteInstance.
const GURL url_b1("http://www.yahoo.com/");
- scoped_refptr<SiteInstance> site_instance_b1(
+ scoped_refptr<content::SiteInstance> site_instance_b1(
browsing_instance->GetSiteInstanceForURL(url_b1));
EXPECT_NE(site_instance_a1.get(), site_instance_b1.get());
@@ -409,7 +418,7 @@
new TestBrowsingInstance(NULL, &delete_counter);
browsing_instance2->set_use_process_per_site(false);
// Ensure the new SiteInstance is ref counted so that it gets deleted.
- scoped_refptr<SiteInstance> site_instance_a2_2(
+ scoped_refptr<content::SiteInstance> site_instance_a2_2(
browsing_instance2->GetSiteInstanceForURL(url_a2));
EXPECT_NE(site_instance_a1.get(), site_instance_a2_2.get());
@@ -439,13 +448,13 @@
browsing_instance->set_use_process_per_site(true);
const GURL url_a1("http://www.google.com/1.html");
- scoped_refptr<SiteInstance> site_instance_a1(
+ scoped_refptr<content::SiteInstance> site_instance_a1(
browsing_instance->GetSiteInstanceForURL(url_a1));
EXPECT_TRUE(site_instance_a1.get() != NULL);
// A separate site should create a separate SiteInstance.
const GURL url_b1("http://www.yahoo.com/");
- scoped_refptr<SiteInstance> site_instance_b1(
+ scoped_refptr<content::SiteInstance> site_instance_b1(
browsing_instance->GetSiteInstanceForURL(url_b1));
EXPECT_NE(site_instance_a1.get(), site_instance_b1.get());
@@ -479,7 +488,7 @@
new TestBrowsingInstance(browser_context.get(), &delete_counter);
browsing_instance3->set_use_process_per_site(true);
// Ensure the new SiteInstance is ref counted so that it gets deleted.
- scoped_refptr<SiteInstance> site_instance_a2_3(
+ scoped_refptr<content::SiteInstance> site_instance_a2_3(
browsing_instance3->GetSiteInstanceForURL(url_a2));
EXPECT_NE(site_instance_a1.get(), site_instance_a2_3.get());
@@ -502,9 +511,11 @@
// browsing_instances will be deleted when their SiteInstances are deleted
}
-static SiteInstance* CreateSiteInstance(
+static SiteInstanceImpl* CreateSiteInstance(
content::RenderProcessHostFactory* factory, const GURL& url) {
- SiteInstance* instance = SiteInstance::CreateSiteInstanceForURL(NULL, url);
+ SiteInstanceImpl* instance =
+ reinterpret_cast<SiteInstanceImpl*>(
+ content::SiteInstance::CreateSiteInstanceForURL(NULL, url));
instance->set_render_process_host_factory(factory);
return instance;
}
@@ -522,14 +533,14 @@
hosts.push_back(new MockRenderProcessHost(NULL));
// Create some extension instances and make sure they share a process.
- scoped_refptr<SiteInstance> extension1_instance(
+ scoped_refptr<content::SiteInstance> extension1_instance(
CreateSiteInstance(&rph_factory,
- GURL(kPrivilegedScheme + std::string("://foo/bar"))));
+ GURL(kPrivilegedScheme + std::string("://foo/bar"))));
set_privileged_process_id(extension1_instance->GetProcess()->GetID());
- scoped_refptr<SiteInstance> extension2_instance(
+ scoped_refptr<content::SiteInstance> extension2_instance(
CreateSiteInstance(&rph_factory,
- GURL(kPrivilegedScheme + std::string("://baz/bar"))));
+ GURL(kPrivilegedScheme + std::string("://baz/bar"))));
scoped_ptr<content::RenderProcessHost> extension_host(
extension1_instance->GetProcess());
@@ -537,11 +548,13 @@
extension2_instance->GetProcess());
// Create some WebUI instances and make sure they share a process.
- scoped_refptr<SiteInstance> webui1_instance(CreateSiteInstance(&rph_factory,
+ scoped_refptr<content::SiteInstance> webui1_instance(CreateSiteInstance(
+ &rph_factory,
GURL(chrome::kChromeUIScheme + std::string("://newtab"))));
policy->GrantWebUIBindings(webui1_instance->GetProcess()->GetID());
- scoped_refptr<SiteInstance> webui2_instance(CreateSiteInstance(&rph_factory,
+ scoped_refptr<content::SiteInstance> webui2_instance(CreateSiteInstance(
+ &rph_factory,
GURL(chrome::kChromeUIScheme + std::string("://history"))));
scoped_ptr<content::RenderProcessHost> dom_host(
@@ -564,14 +577,14 @@
TEST_F(SiteInstanceTest, HasWrongProcessForURL) {
scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext());
scoped_ptr<content::RenderProcessHost> host;
- scoped_refptr<SiteInstance> instance(
- SiteInstance::CreateSiteInstance(browser_context.get()));
+ scoped_refptr<content::SiteInstance> instance(
+ content::SiteInstance::CreateSiteInstance(browser_context.get()));
- EXPECT_FALSE(instance->has_site());
- EXPECT_TRUE(instance->site().is_empty());
+ EXPECT_FALSE(instance->HasSite());
+ EXPECT_TRUE(instance->GetSite().is_empty());
instance->SetSite(GURL("http://evernote.com/"));
- EXPECT_TRUE(instance->has_site());
+ EXPECT_TRUE(instance->HasSite());
// Check prior to "assigning" a process to the instance, which is expected
// to return false due to not being attached to any process yet.

Powered by Google App Engine
This is Rietveld 408576698