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

Unified Diff: content/browser/site_instance_unittest.cc

Issue 9147051: Don't swap processes for javascript: URLs. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Addressing feedback from creis. 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
« content/browser/site_instance.h ('K') | « content/browser/site_instance.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/site_instance_unittest.cc
diff --git a/content/browser/site_instance_unittest.cc b/content/browser/site_instance_unittest.cc
index dcfcd3efbfb01f380891f7330c078f75f2a3c91c..a30a97548a0f2087f2c382cbcfd1f82f9336fb09 100644
--- a/content/browser/site_instance_unittest.cc
+++ b/content/browser/site_instance_unittest.cc
@@ -151,6 +151,12 @@ class TestSiteInstance : public SiteInstance {
return new TestSiteInstance(browsing_instance, siteDeleteCounter);
}
+ bool HasProcess() const OVERRIDE {
+ return hasProcess;
+ }
+
+ bool hasProcess;
awong 2012/01/12 22:56:41 incorrect naming convention. :( http://google-sty
nasko 2012/01/13 01:34:50 Moved to a different test that doesn't require mod
+
private:
TestSiteInstance(BrowsingInstance* browsing_instance, int* deleteCounter)
: SiteInstance(browsing_instance), deleteCounter_(deleteCounter) {}
@@ -546,3 +552,31 @@ TEST_F(SiteInstanceTest, ProcessSharingByType) {
STLDeleteContainerPointers(hosts.begin(), hosts.end());
}
+
+// Test to ensure that javascript URLs always run in the same process.
+TEST_F(SiteInstanceTest, HasWrongProcessForURL) {
+
+ int siteDeleteCounter = 0;
+ int browsingDeleteCounter = 0;
+ const GURL url_javascript = GURL("javascript:alert(document.location.href);");
+ const GURL goog = GURL("http://google.com");
+
+ TestSiteInstance* instance = TestSiteInstance::CreateTestSiteInstance(
awong 2012/01/12 22:56:41 Line indent on wrapping should be 4 spaces. http:
nasko 2012/01/13 01:34:50 Done.
+ NULL, &siteDeleteCounter,
+ &browsingDeleteCounter);
+
+ EXPECT_FALSE(instance->has_site());
+ EXPECT_TRUE(instance->site().is_empty());
+
+ instance->SetSite(GURL("http://www.evernote.com/"));
+ EXPECT_TRUE(instance->has_site());
+
+ // Check prior to "assigning" a process to the instance, which is expected
+ // to return false due to not being attached to any process yet.
+ EXPECT_FALSE(instance->HasWrongProcessForURL(goog));
+
+ instance->hasProcess = true;
+ EXPECT_TRUE(instance->HasProcess());
+
+ EXPECT_FALSE(instance->HasWrongProcessForURL(url_javascript));
+}
« content/browser/site_instance.h ('K') | « content/browser/site_instance.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698