| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/macros.h" | 6 #include "base/macros.h" |
| 7 #include "base/strings/pattern.h" | 7 #include "base/strings/pattern.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/test/histogram_tester.h" | 10 #include "base/test/histogram_tester.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 "valid.xml", | 143 "valid.xml", |
| 144 "xml.txt", | 144 "xml.txt", |
| 145 }; | 145 }; |
| 146 | 146 |
| 147 for (const char* resource : blocked_resources) { | 147 for (const char* resource : blocked_resources) { |
| 148 SCOPED_TRACE(base::StringPrintf("... while testing page: %s", resource)); | 148 SCOPED_TRACE(base::StringPrintf("... while testing page: %s", resource)); |
| 149 base::HistogramTester histograms; | 149 base::HistogramTester histograms; |
| 150 | 150 |
| 151 bool was_blocked; | 151 bool was_blocked; |
| 152 ASSERT_TRUE(ExecuteScriptAndExtractBool( | 152 ASSERT_TRUE(ExecuteScriptAndExtractBool( |
| 153 shell()->web_contents(), | 153 shell(), base::StringPrintf("sendRequest(\"%s\");", resource), |
| 154 base::StringPrintf("sendRequest(\"%s\");", resource), &was_blocked)); | 154 &was_blocked)); |
| 155 ASSERT_FALSE(was_blocked); | 155 ASSERT_FALSE(was_blocked); |
| 156 | 156 |
| 157 InspectHistograms(histograms, true, resource); | 157 InspectHistograms(histograms, true, resource); |
| 158 } | 158 } |
| 159 | 159 |
| 160 // These files should be allowed for XHR under the document blocking policy. | 160 // These files should be allowed for XHR under the document blocking policy. |
| 161 const char* allowed_resources[] = {"js.html", | 161 const char* allowed_resources[] = {"js.html", |
| 162 "comment_js.html", | 162 "comment_js.html", |
| 163 "js.xml", | 163 "js.xml", |
| 164 "js.json", | 164 "js.json", |
| 165 "js.txt", | 165 "js.txt", |
| 166 "img.html", | 166 "img.html", |
| 167 "img.xml", | 167 "img.xml", |
| 168 "img.json", | 168 "img.json", |
| 169 "img.txt", | 169 "img.txt", |
| 170 "comment_js.html"}; | 170 "comment_js.html"}; |
| 171 for (const char* resource : allowed_resources) { | 171 for (const char* resource : allowed_resources) { |
| 172 SCOPED_TRACE(base::StringPrintf("... while testing page: %s", resource)); | 172 SCOPED_TRACE(base::StringPrintf("... while testing page: %s", resource)); |
| 173 base::HistogramTester histograms; | 173 base::HistogramTester histograms; |
| 174 | 174 |
| 175 bool was_blocked; | 175 bool was_blocked; |
| 176 ASSERT_TRUE(ExecuteScriptAndExtractBool( | 176 ASSERT_TRUE(ExecuteScriptAndExtractBool( |
| 177 shell()->web_contents(), | 177 shell(), base::StringPrintf("sendRequest(\"%s\");", resource), |
| 178 base::StringPrintf("sendRequest(\"%s\");", resource), &was_blocked)); | 178 &was_blocked)); |
| 179 ASSERT_FALSE(was_blocked); | 179 ASSERT_FALSE(was_blocked); |
| 180 | 180 |
| 181 InspectHistograms(histograms, false, resource); | 181 InspectHistograms(histograms, false, resource); |
| 182 } | 182 } |
| 183 } | 183 } |
| 184 | 184 |
| 185 IN_PROC_BROWSER_TEST_F(SiteIsolationStatsGathererBrowserTest, | 185 IN_PROC_BROWSER_TEST_F(SiteIsolationStatsGathererBrowserTest, |
| 186 CrossSiteDocumentBlockingForDifferentTargets) { | 186 CrossSiteDocumentBlockingForDifferentTargets) { |
| 187 // This webpage loads a cross-site HTML page in different targets such as | 187 // This webpage loads a cross-site HTML page in different targets such as |
| 188 // <img>,<link>,<embed>, etc. Since the requested document is blocked, and one | 188 // <img>,<link>,<embed>, etc. Since the requested document is blocked, and one |
| 189 // character string (' ') is returned instead, this tests that the renderer | 189 // character string (' ') is returned instead, this tests that the renderer |
| 190 // does not crash even when it receives a response body which is " ", whose | 190 // does not crash even when it receives a response body which is " ", whose |
| 191 // length is different from what's described in "content-length" for such | 191 // length is different from what's described in "content-length" for such |
| 192 // different targets. | 192 // different targets. |
| 193 | 193 |
| 194 // TODO(nick): Split up these cases, and add positive assertions here about | 194 // TODO(nick): Split up these cases, and add positive assertions here about |
| 195 // what actually happens in these various resource-block cases. | 195 // what actually happens in these various resource-block cases. |
| 196 GURL foo("http://foo.com/cross_site_document_request_target.html"); | 196 GURL foo("http://foo.com/cross_site_document_request_target.html"); |
| 197 NavigateToURL(shell(), foo); | 197 NavigateToURL(shell(), foo); |
| 198 } | 198 } |
| 199 | 199 |
| 200 } // namespace content | 200 } // namespace content |
| OLD | NEW |