| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <set> | 5 #include <set> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "content/browser/child_process_security_policy_impl.h" | 10 #include "content/browser/child_process_security_policy_impl.h" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 | 148 |
| 149 EXPECT_FALSE(p->IsPseudoScheme(kChromeUIScheme)); | 149 EXPECT_FALSE(p->IsPseudoScheme(kChromeUIScheme)); |
| 150 } | 150 } |
| 151 | 151 |
| 152 TEST_F(ChildProcessSecurityPolicyTest, StandardSchemesTest) { | 152 TEST_F(ChildProcessSecurityPolicyTest, StandardSchemesTest) { |
| 153 ChildProcessSecurityPolicyImpl* p = | 153 ChildProcessSecurityPolicyImpl* p = |
| 154 ChildProcessSecurityPolicyImpl::GetInstance(); | 154 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 155 | 155 |
| 156 p->Add(kRendererID); | 156 p->Add(kRendererID); |
| 157 | 157 |
| 158 // Safe | 158 // Safe to request or commit. |
| 159 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("http://www.google.com/"))); | 159 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("http://www.google.com/"))); |
| 160 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("https://www.paypal.com/"))); | 160 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("https://www.paypal.com/"))); |
| 161 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("ftp://ftp.gnu.org/"))); | 161 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("ftp://ftp.gnu.org/"))); |
| 162 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("data:text/html,<b>Hi</b>"))); | 162 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("data:text/html,<b>Hi</b>"))); |
| 163 EXPECT_TRUE(p->CanRequestURL( |
| 164 kRendererID, GURL("filesystem:http://localhost/temporary/a.gif"))); |
| 165 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("http://www.google.com/"))); |
| 166 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("https://www.paypal.com/"))); |
| 167 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("ftp://ftp.gnu.org/"))); |
| 168 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("data:text/html,<b>Hi</b>"))); |
| 169 EXPECT_TRUE(p->CanCommitURL( |
| 170 kRendererID, GURL("filesystem:http://localhost/temporary/a.gif"))); |
| 171 |
| 172 // Safe to request but not commit. |
| 163 EXPECT_TRUE(p->CanRequestURL(kRendererID, | 173 EXPECT_TRUE(p->CanRequestURL(kRendererID, |
| 164 GURL("view-source:http://www.google.com/"))); | 174 GURL("view-source:http://www.google.com/"))); |
| 165 EXPECT_TRUE(p->CanRequestURL( | 175 EXPECT_FALSE(p->CanCommitURL(kRendererID, |
| 166 kRendererID, GURL("filesystem:http://localhost/temporary/a.gif"))); | 176 GURL("view-source:http://www.google.com/"))); |
| 167 | 177 |
| 168 // Dangerous | 178 // Dangerous to request or commit. |
| 169 EXPECT_FALSE(p->CanRequestURL(kRendererID, | 179 EXPECT_FALSE(p->CanRequestURL(kRendererID, |
| 170 GURL("file:///etc/passwd"))); | 180 GURL("file:///etc/passwd"))); |
| 171 EXPECT_FALSE(p->CanRequestURL(kRendererID, | 181 EXPECT_FALSE(p->CanRequestURL(kRendererID, |
| 172 GURL("chrome://foo/bar"))); | 182 GURL("chrome://foo/bar"))); |
| 183 EXPECT_FALSE(p->CanCommitURL(kRendererID, |
| 184 GURL("file:///etc/passwd"))); |
| 185 EXPECT_FALSE(p->CanCommitURL(kRendererID, |
| 186 GURL("chrome://foo/bar"))); |
| 173 | 187 |
| 174 p->Remove(kRendererID); | 188 p->Remove(kRendererID); |
| 175 } | 189 } |
| 176 | 190 |
| 177 TEST_F(ChildProcessSecurityPolicyTest, AboutTest) { | 191 TEST_F(ChildProcessSecurityPolicyTest, AboutTest) { |
| 178 ChildProcessSecurityPolicyImpl* p = | 192 ChildProcessSecurityPolicyImpl* p = |
| 179 ChildProcessSecurityPolicyImpl::GetInstance(); | 193 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 180 | 194 |
| 181 p->Add(kRendererID); | 195 p->Add(kRendererID); |
| 182 | 196 |
| 183 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("about:blank"))); | 197 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("about:blank"))); |
| 184 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("about:BlAnK"))); | 198 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("about:BlAnK"))); |
| 185 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("aBouT:BlAnK"))); | 199 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("aBouT:BlAnK"))); |
| 186 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("aBouT:blank"))); | 200 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("aBouT:blank"))); |
| 201 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("about:blank"))); |
| 202 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("about:BlAnK"))); |
| 203 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("aBouT:BlAnK"))); |
| 204 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("aBouT:blank"))); |
| 187 | 205 |
| 188 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:memory"))); | 206 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:memory"))); |
| 189 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:crash"))); | 207 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:crash"))); |
| 190 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:cache"))); | 208 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:cache"))); |
| 191 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:hang"))); | 209 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:hang"))); |
| 210 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:memory"))); |
| 211 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:crash"))); |
| 212 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:cache"))); |
| 213 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:hang"))); |
| 192 | 214 |
| 193 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("aBoUt:memory"))); | 215 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("aBoUt:memory"))); |
| 194 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:CrASh"))); | 216 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:CrASh"))); |
| 195 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("abOuT:cAChe"))); | 217 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("abOuT:cAChe"))); |
| 218 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("aBoUt:memory"))); |
| 219 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:CrASh"))); |
| 220 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("abOuT:cAChe"))); |
| 196 | 221 |
| 197 // Requests for about: pages should be denied. | 222 // Requests for about: pages should be denied. |
| 198 p->GrantRequestURL(kRendererID, GURL("about:crash")); | 223 p->GrantRequestURL(kRendererID, GURL("about:crash")); |
| 199 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:crash"))); | 224 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("about:crash"))); |
| 225 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("about:crash"))); |
| 200 | 226 |
| 201 // These requests for chrome:// pages should be granted. | 227 // These requests for chrome:// pages should be granted. |
| 202 GURL chrome_url("chrome://foo"); | 228 GURL chrome_url("chrome://foo"); |
| 203 p->GrantRequestURL(kRendererID, chrome_url); | 229 p->GrantRequestURL(kRendererID, chrome_url); |
| 204 EXPECT_TRUE(p->CanRequestURL(kRendererID, chrome_url)); | 230 EXPECT_TRUE(p->CanRequestURL(kRendererID, chrome_url)); |
| 231 EXPECT_TRUE(p->CanCommitURL(kRendererID, chrome_url)); |
| 205 | 232 |
| 206 p->Remove(kRendererID); | 233 p->Remove(kRendererID); |
| 207 } | 234 } |
| 208 | 235 |
| 209 TEST_F(ChildProcessSecurityPolicyTest, JavaScriptTest) { | 236 TEST_F(ChildProcessSecurityPolicyTest, JavaScriptTest) { |
| 210 ChildProcessSecurityPolicyImpl* p = | 237 ChildProcessSecurityPolicyImpl* p = |
| 211 ChildProcessSecurityPolicyImpl::GetInstance(); | 238 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 212 | 239 |
| 213 p->Add(kRendererID); | 240 p->Add(kRendererID); |
| 214 | 241 |
| 215 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("javascript:alert('xss')"))); | 242 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("javascript:alert('xss')"))); |
| 243 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("javascript:alert('xss')"))); |
| 216 p->GrantRequestURL(kRendererID, GURL("javascript:alert('xss')")); | 244 p->GrantRequestURL(kRendererID, GURL("javascript:alert('xss')")); |
| 217 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("javascript:alert('xss')"))); | 245 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("javascript:alert('xss')"))); |
| 246 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("javascript:alert('xss')"))); |
| 218 | 247 |
| 219 p->Remove(kRendererID); | 248 p->Remove(kRendererID); |
| 220 } | 249 } |
| 221 | 250 |
| 222 TEST_F(ChildProcessSecurityPolicyTest, RegisterWebSafeSchemeTest) { | 251 TEST_F(ChildProcessSecurityPolicyTest, RegisterWebSafeSchemeTest) { |
| 223 ChildProcessSecurityPolicyImpl* p = | 252 ChildProcessSecurityPolicyImpl* p = |
| 224 ChildProcessSecurityPolicyImpl::GetInstance(); | 253 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 225 | 254 |
| 226 p->Add(kRendererID); | 255 p->Add(kRendererID); |
| 227 | 256 |
| 228 // Currently, "asdf" is destined for ShellExecute, so it is allowed. | 257 // Currently, "asdf" is destined for ShellExecute, so it is allowed to be |
| 258 // requested but not committed. |
| 229 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); | 259 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); |
| 260 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("asdf:rockers"))); |
| 230 | 261 |
| 231 // Once we register "asdf", we default to deny. | 262 // Once we register "asdf", we default to deny. |
| 232 RegisterTestScheme("asdf"); | 263 RegisterTestScheme("asdf"); |
| 233 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); | 264 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); |
| 265 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("asdf:rockers"))); |
| 234 | 266 |
| 235 // We can allow new schemes by adding them to the whitelist. | 267 // We can allow new schemes by adding them to the whitelist. |
| 236 p->RegisterWebSafeScheme("asdf"); | 268 p->RegisterWebSafeScheme("asdf"); |
| 237 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); | 269 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("asdf:rockers"))); |
| 270 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("asdf:rockers"))); |
| 238 | 271 |
| 239 // Cleanup. | 272 // Cleanup. |
| 240 p->Remove(kRendererID); | 273 p->Remove(kRendererID); |
| 241 } | 274 } |
| 242 | 275 |
| 243 TEST_F(ChildProcessSecurityPolicyTest, CanServiceCommandsTest) { | 276 TEST_F(ChildProcessSecurityPolicyTest, CanServiceCommandsTest) { |
| 244 ChildProcessSecurityPolicyImpl* p = | 277 ChildProcessSecurityPolicyImpl* p = |
| 245 ChildProcessSecurityPolicyImpl::GetInstance(); | 278 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 246 | 279 |
| 247 p->Add(kRendererID); | 280 p->Add(kRendererID); |
| 248 | 281 |
| 249 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 282 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); |
| 283 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); |
| 250 p->GrantRequestURL(kRendererID, GURL("file:///etc/passwd")); | 284 p->GrantRequestURL(kRendererID, GURL("file:///etc/passwd")); |
| 251 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 285 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); |
| 286 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); |
| 252 | 287 |
| 253 // We should forget our state if we repeat a renderer id. | 288 // We should forget our state if we repeat a renderer id. |
| 254 p->Remove(kRendererID); | 289 p->Remove(kRendererID); |
| 255 p->Add(kRendererID); | 290 p->Add(kRendererID); |
| 256 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 291 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); |
| 292 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); |
| 257 p->Remove(kRendererID); | 293 p->Remove(kRendererID); |
| 258 } | 294 } |
| 259 | 295 |
| 260 TEST_F(ChildProcessSecurityPolicyTest, ViewSource) { | 296 TEST_F(ChildProcessSecurityPolicyTest, ViewSource) { |
| 261 ChildProcessSecurityPolicyImpl* p = | 297 ChildProcessSecurityPolicyImpl* p = |
| 262 ChildProcessSecurityPolicyImpl::GetInstance(); | 298 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 263 | 299 |
| 264 p->Add(kRendererID); | 300 p->Add(kRendererID); |
| 265 | 301 |
| 266 // View source is determined by the embedded scheme. | 302 // View source is determined by the embedded scheme. |
| 267 EXPECT_TRUE(p->CanRequestURL(kRendererID, | 303 EXPECT_TRUE(p->CanRequestURL(kRendererID, |
| 268 GURL("view-source:http://www.google.com/"))); | 304 GURL("view-source:http://www.google.com/"))); |
| 269 EXPECT_FALSE(p->CanRequestURL(kRendererID, | 305 EXPECT_FALSE(p->CanRequestURL(kRendererID, |
| 270 GURL("view-source:file:///etc/passwd"))); | 306 GURL("view-source:file:///etc/passwd"))); |
| 271 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 307 EXPECT_FALSE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); |
| 272 EXPECT_FALSE(p->CanRequestURL( | 308 EXPECT_FALSE(p->CanRequestURL( |
| 273 kRendererID, GURL("view-source:view-source:http://www.google.com/"))); | 309 kRendererID, GURL("view-source:view-source:http://www.google.com/"))); |
| 274 | 310 |
| 311 // View source URLs don't actually commit; the renderer is put into view |
| 312 // source mode, and the inner URL commits. |
| 313 EXPECT_FALSE(p->CanCommitURL(kRendererID, |
| 314 GURL("view-source:http://www.google.com/"))); |
| 315 EXPECT_FALSE(p->CanCommitURL(kRendererID, |
| 316 GURL("view-source:file:///etc/passwd"))); |
| 317 EXPECT_FALSE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); |
| 318 EXPECT_FALSE(p->CanCommitURL( |
| 319 kRendererID, GURL("view-source:view-source:http://www.google.com/"))); |
| 320 |
| 321 |
| 275 p->GrantRequestURL(kRendererID, GURL("view-source:file:///etc/passwd")); | 322 p->GrantRequestURL(kRendererID, GURL("view-source:file:///etc/passwd")); |
| 276 // View source needs to be able to request the embedded scheme. | 323 // View source needs to be able to request the embedded scheme. |
| 324 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); |
| 325 EXPECT_TRUE(p->CanCommitURL(kRendererID, GURL("file:///etc/passwd"))); |
| 277 EXPECT_TRUE(p->CanRequestURL(kRendererID, | 326 EXPECT_TRUE(p->CanRequestURL(kRendererID, |
| 278 GURL("view-source:file:///etc/passwd"))); | 327 GURL("view-source:file:///etc/passwd"))); |
| 279 EXPECT_TRUE(p->CanRequestURL(kRendererID, GURL("file:///etc/passwd"))); | 328 EXPECT_FALSE(p->CanCommitURL(kRendererID, |
| 329 GURL("view-source:file:///etc/passwd"))); |
| 280 | 330 |
| 281 p->Remove(kRendererID); | 331 p->Remove(kRendererID); |
| 282 } | 332 } |
| 283 | 333 |
| 284 TEST_F(ChildProcessSecurityPolicyTest, SpecificFile) { | 334 TEST_F(ChildProcessSecurityPolicyTest, SpecificFile) { |
| 285 ChildProcessSecurityPolicyImpl* p = | 335 ChildProcessSecurityPolicyImpl* p = |
| 286 ChildProcessSecurityPolicyImpl::GetInstance(); | 336 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 287 | 337 |
| 288 p->Add(kRendererID); | 338 p->Add(kRendererID); |
| 289 | 339 |
| 290 GURL icon_url("file:///tmp/foo.png"); | 340 GURL icon_url("file:///tmp/foo.png"); |
| 291 GURL sensitive_url("file:///etc/passwd"); | 341 GURL sensitive_url("file:///etc/passwd"); |
| 292 EXPECT_FALSE(p->CanRequestURL(kRendererID, icon_url)); | 342 EXPECT_FALSE(p->CanRequestURL(kRendererID, icon_url)); |
| 293 EXPECT_FALSE(p->CanRequestURL(kRendererID, sensitive_url)); | 343 EXPECT_FALSE(p->CanRequestURL(kRendererID, sensitive_url)); |
| 344 EXPECT_FALSE(p->CanCommitURL(kRendererID, icon_url)); |
| 345 EXPECT_FALSE(p->CanCommitURL(kRendererID, sensitive_url)); |
| 294 | 346 |
| 295 p->GrantRequestSpecificFileURL(kRendererID, icon_url); | 347 p->GrantRequestSpecificFileURL(kRendererID, icon_url); |
| 296 EXPECT_TRUE(p->CanRequestURL(kRendererID, icon_url)); | 348 EXPECT_TRUE(p->CanRequestURL(kRendererID, icon_url)); |
| 297 EXPECT_FALSE(p->CanRequestURL(kRendererID, sensitive_url)); | 349 EXPECT_FALSE(p->CanRequestURL(kRendererID, sensitive_url)); |
| 350 EXPECT_TRUE(p->CanCommitURL(kRendererID, icon_url)); |
| 351 EXPECT_FALSE(p->CanCommitURL(kRendererID, sensitive_url)); |
| 298 | 352 |
| 299 p->GrantRequestURL(kRendererID, icon_url); | 353 p->GrantRequestURL(kRendererID, icon_url); |
| 300 EXPECT_TRUE(p->CanRequestURL(kRendererID, icon_url)); | 354 EXPECT_TRUE(p->CanRequestURL(kRendererID, icon_url)); |
| 301 EXPECT_TRUE(p->CanRequestURL(kRendererID, sensitive_url)); | 355 EXPECT_TRUE(p->CanRequestURL(kRendererID, sensitive_url)); |
| 356 EXPECT_TRUE(p->CanCommitURL(kRendererID, icon_url)); |
| 357 EXPECT_TRUE(p->CanCommitURL(kRendererID, sensitive_url)); |
| 302 | 358 |
| 303 p->Remove(kRendererID); | 359 p->Remove(kRendererID); |
| 304 } | 360 } |
| 305 | 361 |
| 306 TEST_F(ChildProcessSecurityPolicyTest, FileSystemGrantsTest) { | 362 TEST_F(ChildProcessSecurityPolicyTest, FileSystemGrantsTest) { |
| 307 ChildProcessSecurityPolicyImpl* p = | 363 ChildProcessSecurityPolicyImpl* p = |
| 308 ChildProcessSecurityPolicyImpl::GetInstance(); | 364 ChildProcessSecurityPolicyImpl::GetInstance(); |
| 309 | 365 |
| 310 p->Add(kRendererID); | 366 p->Add(kRendererID); |
| 311 std::string read_id = | 367 std::string read_id = |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 // queried on the IO thread. The ChildProcessSecurityPolicy needs to be | 691 // queried on the IO thread. The ChildProcessSecurityPolicy needs to be |
| 636 // prepared to answer policy questions about renderers who no longer exist. | 692 // prepared to answer policy questions about renderers who no longer exist. |
| 637 | 693 |
| 638 // In this case, we default to secure behavior. | 694 // In this case, we default to secure behavior. |
| 639 EXPECT_FALSE(p->CanRequestURL(kRendererID, url)); | 695 EXPECT_FALSE(p->CanRequestURL(kRendererID, url)); |
| 640 EXPECT_FALSE(p->CanReadFile(kRendererID, file)); | 696 EXPECT_FALSE(p->CanReadFile(kRendererID, file)); |
| 641 EXPECT_FALSE(p->HasWebUIBindings(kRendererID)); | 697 EXPECT_FALSE(p->HasWebUIBindings(kRendererID)); |
| 642 } | 698 } |
| 643 | 699 |
| 644 } // namespace content | 700 } // namespace content |
| OLD | NEW |