| Index: content/browser/child_process_security_policy_unittest.cc | 
| diff --git a/content/browser/child_process_security_policy_unittest.cc b/content/browser/child_process_security_policy_unittest.cc | 
| index c45919d0c866b6d07a29d1216e2681c8a0a50119..3da1c80538f613ad05326142e705106f36385bf4 100644 | 
| --- a/content/browser/child_process_security_policy_unittest.cc | 
| +++ b/content/browser/child_process_security_policy_unittest.cc | 
| @@ -157,19 +157,13 @@ | 
|  | 
| p->Add(kRendererID); | 
|  | 
| -  // Safe to request, redirect or commit. | 
| +  // Safe to request or commit. | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("http://www.google.com/"))); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("https://www.paypal.com/"))); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("ftp://ftp.gnu.org/"))); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("data:text/html,<b>Hi</b>"))); | 
| EXPECT_TRUE(p->CanRequestURL( | 
| kRendererID, GURL("filesystem:http://localhost/temporary/a.gif"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("http://www.google.com/"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("https://www.paypal.com/"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("ftp://ftp.gnu.org/"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("data:text/html,<b>Hi</b>"))); | 
| -  EXPECT_TRUE( | 
| -      p->CanRedirectToURL(GURL("filesystem:http://localhost/temporary/a.gif"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("http://www.google.com/"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("https://www.paypal.com/"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("ftp://ftp.gnu.org/"))); | 
| @@ -193,9 +187,6 @@ | 
| GURL("chrome://foo/bar"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, | 
| GURL("view-source:http://www.google.com/"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("file:///etc/passwd"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("chrome://foo/bar"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("view-source:http://www.google.com/"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, | 
| GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, | 
| @@ -239,24 +230,6 @@ | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, | 
| GURL("filesystem:blob:http://localhost/guid"))); | 
|  | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:http://localhost/some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:null/some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:http://localhost/some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:NulL/some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:NulL/some-guid#fragment"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:NulL/some-guid?query"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:blobinternal://some-guid"))); | 
| -  EXPECT_TRUE( | 
| -      p->CanRedirectToURL(GURL("blob:http://username@localhost/some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL( | 
| -      GURL("blob:http://username     @localhost/some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:blob:some-guid"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("blob:some-guid"))); | 
| -  EXPECT_TRUE( | 
| -      p->CanRedirectToURL(GURL("blob:filesystem:http://localhost/path"))); | 
| -  EXPECT_FALSE( | 
| -      p->CanRedirectToURL(GURL("filesystem:blob:http://localhost/guid"))); | 
| - | 
| EXPECT_TRUE( | 
| p->CanCommitURL(kRendererID, GURL("blob:http://localhost/some-guid"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("blob:null/some-guid"))); | 
| @@ -291,10 +264,6 @@ | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:BlAnK"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("aBouT:BlAnK"))); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("aBouT:blank"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("about:blank"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:BlAnK"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("aBouT:BlAnK"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("aBouT:blank"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("about:blank"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:BlAnK"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("aBouT:BlAnK"))); | 
| @@ -305,7 +274,6 @@ | 
| EXPECT_TRUE(p->CanSetAsOriginHeader(kRendererID, GURL("aBouT:blank"))); | 
|  | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("about:srcdoc"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:srcdoc"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("about:srcdoc"))); | 
| EXPECT_FALSE(p->CanSetAsOriginHeader(kRendererID, GURL("about:srcdoc"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:SRCDOC"))); | 
| @@ -316,10 +284,6 @@ | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:cache"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:hang"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:version"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:crash"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:cache"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:hang"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:version"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:crash"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:cache"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:hang"))); | 
| @@ -332,9 +296,6 @@ | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("aBoUt:version"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:CrASh"))); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("abOuT:cAChe"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("aBoUt:version"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:CrASh"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("abOuT:cAChe"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("aBoUt:version"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:CrASh"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("abOuT:cAChe"))); | 
| @@ -347,7 +308,6 @@ | 
| // Requests for about: pages should be denied. | 
| p->GrantRequestURL(kRendererID, GURL("about:crash")); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:crash"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("about:crash"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:crash"))); | 
| EXPECT_FALSE(p->CanSetAsOriginHeader(kRendererID, GURL("about:crash"))); | 
|  | 
| @@ -355,7 +315,6 @@ | 
| GURL chrome_url("chrome://foo"); | 
| p->GrantRequestURL(kRendererID, chrome_url); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, chrome_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL(chrome_url))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, chrome_url)); | 
| EXPECT_TRUE(p->CanSetAsOriginHeader(kRendererID, chrome_url)); | 
|  | 
| @@ -369,13 +328,11 @@ | 
| p->Add(kRendererID); | 
|  | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("javascript:alert('xss')"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("javascript:alert('xss')"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("javascript:alert('xss')"))); | 
| EXPECT_FALSE( | 
| p->CanSetAsOriginHeader(kRendererID, GURL("javascript:alert('xss')"))); | 
| p->GrantRequestURL(kRendererID, GURL("javascript:alert('xss')")); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("javascript:alert('xss')"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("javascript:alert('xss')"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("javascript:alert('xss')"))); | 
| EXPECT_FALSE( | 
| p->CanSetAsOriginHeader(kRendererID, GURL("javascript:alert('xss')"))); | 
| @@ -394,8 +351,6 @@ | 
| p->CanRequestURL(kRendererID, GURL("http-so://foobar.example.com"))); | 
| EXPECT_FALSE( | 
| p->CanRequestURL(kRendererID, GURL("https-so://foobar.example.com"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("http-so://foobar.example.com"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("https-so://foobar.example.com"))); | 
| EXPECT_FALSE( | 
| p->CanCommitURL(kRendererID, GURL("http-so://foobar.example.com"))); | 
| EXPECT_FALSE( | 
| @@ -424,21 +379,18 @@ | 
| // Currently, "asdf" is destined for ShellExecute, so it is allowed to be | 
| // requested but not committed. | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("asdf:rockers"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("asdf:rockers"))); | 
| EXPECT_FALSE(p->CanSetAsOriginHeader(kRendererID, GURL("asdf:rockers"))); | 
|  | 
| // Once we register "asdf", we default to deny. | 
| RegisterTestScheme("asdf"); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("asdf:rockers"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("asdf:rockers"))); | 
| EXPECT_FALSE(p->CanSetAsOriginHeader(kRendererID, GURL("asdf:rockers"))); | 
|  | 
| // We can allow new schemes by adding them to the whitelist. | 
| p->RegisterWebSafeScheme("asdf"); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("asdf:rockers"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("asdf:rockers"))); | 
| EXPECT_TRUE(p->CanSetAsOriginHeader(kRendererID, GURL("asdf:rockers"))); | 
|  | 
| @@ -453,13 +405,11 @@ | 
| p->Add(kRendererID); | 
|  | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE( | 
| p->CanSetAsOriginHeader(kRendererID, GURL("file:///etc/passwd"))); | 
| p->GrantRequestURL(kRendererID, GURL("file:///etc/passwd")); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("file:///etc/passwd"))); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); | 
| EXPECT_TRUE(p->CanSetAsOriginHeader(kRendererID, GURL("file:///etc/passwd"))); | 
|  | 
| @@ -467,7 +417,6 @@ | 
| p->Remove(kRendererID); | 
| p->Add(kRendererID); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE( | 
| p->CanSetAsOriginHeader(kRendererID, GURL("file:///etc/passwd"))); | 
| @@ -488,13 +437,6 @@ | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanRequestURL( | 
| kRendererID, GURL("view-source:view-source:http://www.google.com/"))); | 
| - | 
| -  // Child processes cannot be redirected to view source URLs. | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("view-source:http://www.google.com/"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("view-source:file:///etc/passwd"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("file:///etc/passwd"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL( | 
| -      GURL("view-source:view-source:http://www.google.com/"))); | 
|  | 
| // View source URLs don't actually commit; the renderer is put into view | 
| // source mode, and the inner URL commits. | 
| @@ -518,13 +460,11 @@ | 
|  | 
| p->GrantRequestURL(kRendererID, GURL("view-source:file:///etc/passwd")); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE( | 
| p->CanSetAsOriginHeader(kRendererID, GURL("file:///etc/passwd"))); | 
| EXPECT_FALSE( | 
| p->CanRequestURL(kRendererID, GURL("view-source:file:///etc/passwd"))); | 
| -  EXPECT_FALSE(p->CanRedirectToURL(GURL("view-source:file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, | 
| GURL("view-source:file:///etc/passwd"))); | 
| EXPECT_FALSE(p->CanSetAsOriginHeader(kRendererID, | 
| @@ -542,8 +482,6 @@ | 
| GURL sensitive_url("file:///etc/passwd"); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, icon_url)); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, sensitive_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(icon_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(sensitive_url)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, icon_url)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, sensitive_url)); | 
| EXPECT_FALSE(p->CanSetAsOriginHeader(kRendererID, icon_url)); | 
| @@ -552,8 +490,6 @@ | 
| p->GrantRequestSpecificFileURL(kRendererID, icon_url); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, icon_url)); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, sensitive_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(icon_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(sensitive_url)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, icon_url)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, sensitive_url)); | 
| EXPECT_TRUE(p->CanSetAsOriginHeader(kRendererID, icon_url)); | 
| @@ -562,8 +498,6 @@ | 
| p->GrantRequestURL(kRendererID, icon_url); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, icon_url)); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, sensitive_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(icon_url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(sensitive_url)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, icon_url)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, sensitive_url)); | 
| EXPECT_TRUE(p->CanSetAsOriginHeader(kRendererID, icon_url)); | 
| @@ -874,11 +808,9 @@ | 
|  | 
| EXPECT_FALSE(p->HasWebUIBindings(kRendererID)); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url)); | 
| p->GrantWebUIBindings(kRendererID); | 
| EXPECT_TRUE(p->HasWebUIBindings(kRendererID)); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url)); | 
|  | 
| p->Remove(kRendererID); | 
| } | 
| @@ -897,7 +829,6 @@ | 
| p->GrantWebUIBindings(kRendererID); | 
|  | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url)); | 
| EXPECT_TRUE(p->CanReadFile(kRendererID, file)); | 
| EXPECT_TRUE(p->HasWebUIBindings(kRendererID)); | 
|  | 
| @@ -909,7 +840,6 @@ | 
|  | 
| // In this case, we default to secure behavior. | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, url)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url)); | 
| EXPECT_FALSE(p->CanReadFile(kRendererID, file)); | 
| EXPECT_FALSE(p->HasWebUIBindings(kRendererID)); | 
| } | 
| @@ -929,9 +859,6 @@ | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, url_foo1)); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, url_foo2)); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, url_bar)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_foo1)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_foo2)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_bar)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, url_foo1)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, url_foo2)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, url_bar)); | 
| @@ -944,9 +871,6 @@ | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url_foo1)); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url_foo2)); | 
| EXPECT_FALSE(p->CanRequestURL(kRendererID, url_bar)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_foo1)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_foo2)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_bar)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, url_foo1)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, url_foo2)); | 
| EXPECT_FALSE(p->CanCommitURL(kRendererID, url_bar)); | 
| @@ -959,9 +883,6 @@ | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url_foo1)); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url_foo2)); | 
| EXPECT_TRUE(p->CanRequestURL(kRendererID, url_bar)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_foo1)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_foo2)); | 
| -  EXPECT_TRUE(p->CanRedirectToURL(url_bar)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, url_foo1)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, url_foo2)); | 
| EXPECT_TRUE(p->CanCommitURL(kRendererID, url_bar)); | 
|  |