| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "chrome/common/render_messages.h" | 7 #include "chrome/common/render_messages.h" |
| 8 #include "chrome/renderer/content_settings_observer.h" | 8 #include "chrome/renderer/content_settings_observer.h" |
| 9 #include "chrome/test/base/chrome_render_view_test.h" | 9 #include "chrome/test/base/chrome_render_view_test.h" |
| 10 #include "components/content_settings/core/common/content_settings.h" | 10 #include "components/content_settings/core/common/content_settings.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 "<body>" | 96 "<body>" |
| 97 "</body>" | 97 "</body>" |
| 98 "</html>"; | 98 "</html>"; |
| 99 render_thread_->sink().ClearMessages(); | 99 render_thread_->sink().ClearMessages(); |
| 100 LoadHTML(kHtml); | 100 LoadHTML(kHtml); |
| 101 | 101 |
| 102 // 2. Block JavaScript. | 102 // 2. Block JavaScript. |
| 103 RendererContentSettingRules content_setting_rules; | 103 RendererContentSettingRules content_setting_rules; |
| 104 ContentSettingsForOneType& script_setting_rules = | 104 ContentSettingsForOneType& script_setting_rules = |
| 105 content_setting_rules.script_rules; | 105 content_setting_rules.script_rules; |
| 106 script_setting_rules.push_back( | 106 script_setting_rules.push_back(ContentSettingPatternSource( |
| 107 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 107 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 108 ContentSettingsPattern::Wildcard(), | 108 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 109 CONTENT_SETTING_BLOCK, | |
| 110 std::string(), | |
| 111 false)); | |
| 112 ContentSettingsObserver* observer = ContentSettingsObserver::Get( | 109 ContentSettingsObserver* observer = ContentSettingsObserver::Get( |
| 113 view_->GetMainRenderFrame()); | 110 view_->GetMainRenderFrame()); |
| 114 observer->SetContentSettingRules(&content_setting_rules); | 111 observer->SetContentSettingRules(&content_setting_rules); |
| 115 | 112 |
| 116 // Make sure no pending messages are in the queue. | 113 // Make sure no pending messages are in the queue. |
| 117 ProcessPendingMessages(); | 114 ProcessPendingMessages(); |
| 118 render_thread_->sink().ClearMessages(); | 115 render_thread_->sink().ClearMessages(); |
| 119 | 116 |
| 120 // 3. Reload page. | 117 // 3. Reload page. |
| 121 std::string url_str = "data:text/html;charset=utf-8,"; | 118 std::string url_str = "data:text/html;charset=utf-8,"; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 TEST_F(ChromeRenderViewTest, ImagesBlockedByDefault) { | 172 TEST_F(ChromeRenderViewTest, ImagesBlockedByDefault) { |
| 176 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); | 173 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); |
| 177 | 174 |
| 178 // Load some HTML. | 175 // Load some HTML. |
| 179 LoadHTML("<html>Foo</html>"); | 176 LoadHTML("<html>Foo</html>"); |
| 180 | 177 |
| 181 // Set the default image blocking setting. | 178 // Set the default image blocking setting. |
| 182 RendererContentSettingRules content_setting_rules; | 179 RendererContentSettingRules content_setting_rules; |
| 183 ContentSettingsForOneType& image_setting_rules = | 180 ContentSettingsForOneType& image_setting_rules = |
| 184 content_setting_rules.image_rules; | 181 content_setting_rules.image_rules; |
| 185 image_setting_rules.push_back( | 182 image_setting_rules.push_back(ContentSettingPatternSource( |
| 186 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 183 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 187 ContentSettingsPattern::Wildcard(), | 184 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 188 CONTENT_SETTING_BLOCK, | |
| 189 std::string(), | |
| 190 false)); | |
| 191 | 185 |
| 192 ContentSettingsObserver* observer = ContentSettingsObserver::Get( | 186 ContentSettingsObserver* observer = ContentSettingsObserver::Get( |
| 193 view_->GetMainRenderFrame()); | 187 view_->GetMainRenderFrame()); |
| 194 observer->SetContentSettingRules(&content_setting_rules); | 188 observer->SetContentSettingRules(&content_setting_rules); |
| 195 EXPECT_CALL(mock_observer, | 189 EXPECT_CALL(mock_observer, |
| 196 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, base::string16())); | 190 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, base::string16())); |
| 197 EXPECT_FALSE(observer->AllowImage(true, mock_observer.image_url_)); | 191 EXPECT_FALSE(observer->AllowImage(true, mock_observer.image_url_)); |
| 198 ::testing::Mock::VerifyAndClearExpectations(&observer); | 192 ::testing::Mock::VerifyAndClearExpectations(&observer); |
| 199 | 193 |
| 200 // Create an exception which allows the image. | 194 // Create an exception which allows the image. |
| 201 image_setting_rules.insert( | 195 image_setting_rules.insert( |
| 202 image_setting_rules.begin(), | 196 image_setting_rules.begin(), |
| 203 ContentSettingPatternSource( | 197 ContentSettingPatternSource( |
| 204 ContentSettingsPattern::Wildcard(), | 198 ContentSettingsPattern::Wildcard(), |
| 205 ContentSettingsPattern::FromString(mock_observer.image_origin_), | 199 ContentSettingsPattern::FromString(mock_observer.image_origin_), |
| 206 CONTENT_SETTING_ALLOW, | 200 CONTENT_SETTING_ALLOW, base::Time(), std::string(), false)); |
| 207 std::string(), | |
| 208 false)); | |
| 209 | 201 |
| 210 EXPECT_CALL(mock_observer, OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, | 202 EXPECT_CALL(mock_observer, OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, |
| 211 base::string16())).Times(0); | 203 base::string16())).Times(0); |
| 212 EXPECT_TRUE(observer->AllowImage(true, mock_observer.image_url_)); | 204 EXPECT_TRUE(observer->AllowImage(true, mock_observer.image_url_)); |
| 213 ::testing::Mock::VerifyAndClearExpectations(&observer); | 205 ::testing::Mock::VerifyAndClearExpectations(&observer); |
| 214 } | 206 } |
| 215 | 207 |
| 216 TEST_F(ChromeRenderViewTest, ImagesAllowedByDefault) { | 208 TEST_F(ChromeRenderViewTest, ImagesAllowedByDefault) { |
| 217 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); | 209 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); |
| 218 | 210 |
| 219 // Load some HTML. | 211 // Load some HTML. |
| 220 LoadHTML("<html>Foo</html>"); | 212 LoadHTML("<html>Foo</html>"); |
| 221 | 213 |
| 222 // Set the default image blocking setting. | 214 // Set the default image blocking setting. |
| 223 RendererContentSettingRules content_setting_rules; | 215 RendererContentSettingRules content_setting_rules; |
| 224 ContentSettingsForOneType& image_setting_rules = | 216 ContentSettingsForOneType& image_setting_rules = |
| 225 content_setting_rules.image_rules; | 217 content_setting_rules.image_rules; |
| 226 image_setting_rules.push_back( | 218 image_setting_rules.push_back(ContentSettingPatternSource( |
| 227 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 219 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 228 ContentSettingsPattern::Wildcard(), | 220 CONTENT_SETTING_ALLOW, base::Time(), std::string(), false)); |
| 229 CONTENT_SETTING_ALLOW, | |
| 230 std::string(), | |
| 231 false)); | |
| 232 | 221 |
| 233 ContentSettingsObserver* observer = | 222 ContentSettingsObserver* observer = |
| 234 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 223 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 235 observer->SetContentSettingRules(&content_setting_rules); | 224 observer->SetContentSettingRules(&content_setting_rules); |
| 236 EXPECT_CALL(mock_observer, OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, | 225 EXPECT_CALL(mock_observer, OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, |
| 237 base::string16())).Times(0); | 226 base::string16())).Times(0); |
| 238 EXPECT_TRUE(observer->AllowImage(true, mock_observer.image_url_)); | 227 EXPECT_TRUE(observer->AllowImage(true, mock_observer.image_url_)); |
| 239 ::testing::Mock::VerifyAndClearExpectations(&observer); | 228 ::testing::Mock::VerifyAndClearExpectations(&observer); |
| 240 | 229 |
| 241 // Create an exception which blocks the image. | 230 // Create an exception which blocks the image. |
| 242 image_setting_rules.insert( | 231 image_setting_rules.insert( |
| 243 image_setting_rules.begin(), | 232 image_setting_rules.begin(), |
| 244 ContentSettingPatternSource( | 233 ContentSettingPatternSource( |
| 245 ContentSettingsPattern::Wildcard(), | 234 ContentSettingsPattern::Wildcard(), |
| 246 ContentSettingsPattern::FromString(mock_observer.image_origin_), | 235 ContentSettingsPattern::FromString(mock_observer.image_origin_), |
| 247 CONTENT_SETTING_BLOCK, | 236 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 248 std::string(), | |
| 249 false)); | |
| 250 EXPECT_CALL(mock_observer, | 237 EXPECT_CALL(mock_observer, |
| 251 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, base::string16())); | 238 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, base::string16())); |
| 252 EXPECT_FALSE(observer->AllowImage(true, mock_observer.image_url_)); | 239 EXPECT_FALSE(observer->AllowImage(true, mock_observer.image_url_)); |
| 253 ::testing::Mock::VerifyAndClearExpectations(&observer); | 240 ::testing::Mock::VerifyAndClearExpectations(&observer); |
| 254 } | 241 } |
| 255 | 242 |
| 256 TEST_F(ChromeRenderViewTest, ContentSettingsBlockScripts) { | 243 TEST_F(ChromeRenderViewTest, ContentSettingsBlockScripts) { |
| 257 // Set the content settings for scripts. | 244 // Set the content settings for scripts. |
| 258 RendererContentSettingRules content_setting_rules; | 245 RendererContentSettingRules content_setting_rules; |
| 259 ContentSettingsForOneType& script_setting_rules = | 246 ContentSettingsForOneType& script_setting_rules = |
| 260 content_setting_rules.script_rules; | 247 content_setting_rules.script_rules; |
| 261 script_setting_rules.push_back( | 248 script_setting_rules.push_back(ContentSettingPatternSource( |
| 262 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 249 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 263 ContentSettingsPattern::Wildcard(), | 250 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 264 CONTENT_SETTING_BLOCK, | |
| 265 std::string(), | |
| 266 false)); | |
| 267 | 251 |
| 268 ContentSettingsObserver* observer = | 252 ContentSettingsObserver* observer = |
| 269 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 253 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 270 observer->SetContentSettingRules(&content_setting_rules); | 254 observer->SetContentSettingRules(&content_setting_rules); |
| 271 | 255 |
| 272 // Load a page which contains a script. | 256 // Load a page which contains a script. |
| 273 const char kHtml[] = | 257 const char kHtml[] = |
| 274 "<html>" | 258 "<html>" |
| 275 "<head>" | 259 "<head>" |
| 276 "<script src='data:foo'></script>" | 260 "<script src='data:foo'></script>" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 288 was_blocked = true; | 272 was_blocked = true; |
| 289 } | 273 } |
| 290 EXPECT_TRUE(was_blocked); | 274 EXPECT_TRUE(was_blocked); |
| 291 } | 275 } |
| 292 | 276 |
| 293 TEST_F(ChromeRenderViewTest, ContentSettingsAllowScripts) { | 277 TEST_F(ChromeRenderViewTest, ContentSettingsAllowScripts) { |
| 294 // Set the content settings for scripts. | 278 // Set the content settings for scripts. |
| 295 RendererContentSettingRules content_setting_rules; | 279 RendererContentSettingRules content_setting_rules; |
| 296 ContentSettingsForOneType& script_setting_rules = | 280 ContentSettingsForOneType& script_setting_rules = |
| 297 content_setting_rules.script_rules; | 281 content_setting_rules.script_rules; |
| 298 script_setting_rules.push_back( | 282 script_setting_rules.push_back(ContentSettingPatternSource( |
| 299 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 283 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 300 ContentSettingsPattern::Wildcard(), | 284 CONTENT_SETTING_ALLOW, base::Time(), std::string(), false)); |
| 301 CONTENT_SETTING_ALLOW, | |
| 302 std::string(), | |
| 303 false)); | |
| 304 | 285 |
| 305 ContentSettingsObserver* observer = | 286 ContentSettingsObserver* observer = |
| 306 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 287 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 307 observer->SetContentSettingRules(&content_setting_rules); | 288 observer->SetContentSettingRules(&content_setting_rules); |
| 308 | 289 |
| 309 // Load a page which contains a script. | 290 // Load a page which contains a script. |
| 310 const char kHtml[] = | 291 const char kHtml[] = |
| 311 "<html>" | 292 "<html>" |
| 312 "<head>" | 293 "<head>" |
| 313 "<script src='data:foo'></script>" | 294 "<script src='data:foo'></script>" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 330 // Regression test for crbug.com/232410: Load a page with JS blocked. Then, | 311 // Regression test for crbug.com/232410: Load a page with JS blocked. Then, |
| 331 // allow JS and reload the page. In each case, only one of noscript or script | 312 // allow JS and reload the page. In each case, only one of noscript or script |
| 332 // tags should be enabled, but never both. | 313 // tags should be enabled, but never both. |
| 333 TEST_F(ChromeRenderViewTest, ContentSettingsNoscriptTag) { | 314 TEST_F(ChromeRenderViewTest, ContentSettingsNoscriptTag) { |
| 334 // 1. Block JavaScript. | 315 // 1. Block JavaScript. |
| 335 RendererContentSettingRules content_setting_rules; | 316 RendererContentSettingRules content_setting_rules; |
| 336 ContentSettingsForOneType& script_setting_rules = | 317 ContentSettingsForOneType& script_setting_rules = |
| 337 content_setting_rules.script_rules; | 318 content_setting_rules.script_rules; |
| 338 script_setting_rules.push_back(ContentSettingPatternSource( | 319 script_setting_rules.push_back(ContentSettingPatternSource( |
| 339 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), | 320 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 340 CONTENT_SETTING_BLOCK, std::string(), false)); | 321 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 341 | 322 |
| 342 ContentSettingsObserver* observer = | 323 ContentSettingsObserver* observer = |
| 343 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 324 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 344 observer->SetContentSettingRules(&content_setting_rules); | 325 observer->SetContentSettingRules(&content_setting_rules); |
| 345 | 326 |
| 346 // 2. Load a page which contains a noscript tag and a script tag. Note that | 327 // 2. Load a page which contains a noscript tag and a script tag. Note that |
| 347 // the page doesn't have a body tag. | 328 // the page doesn't have a body tag. |
| 348 const char kHtml[] = | 329 const char kHtml[] = |
| 349 "<html>" | 330 "<html>" |
| 350 "<noscript>JS_DISABLED</noscript>" | 331 "<noscript>JS_DISABLED</noscript>" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 361 std::string::npos, | 342 std::string::npos, |
| 362 blink::WebFrameContentDumper::DumpLayoutTreeAsText( | 343 blink::WebFrameContentDumper::DumpLayoutTreeAsText( |
| 363 GetMainFrame(), blink::WebFrameContentDumper::kLayoutAsTextNormal) | 344 GetMainFrame(), blink::WebFrameContentDumper::kLayoutAsTextNormal) |
| 364 .Utf8() | 345 .Utf8() |
| 365 .find("JS_ENABLED")); | 346 .find("JS_ENABLED")); |
| 366 | 347 |
| 367 // 3. Allow JavaScript. | 348 // 3. Allow JavaScript. |
| 368 script_setting_rules.clear(); | 349 script_setting_rules.clear(); |
| 369 script_setting_rules.push_back(ContentSettingPatternSource( | 350 script_setting_rules.push_back(ContentSettingPatternSource( |
| 370 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), | 351 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 371 CONTENT_SETTING_ALLOW, std::string(), false)); | 352 CONTENT_SETTING_ALLOW, base::Time(), std::string(), false)); |
| 372 observer->SetContentSettingRules(&content_setting_rules); | 353 observer->SetContentSettingRules(&content_setting_rules); |
| 373 | 354 |
| 374 // 4. Reload the page. | 355 // 4. Reload the page. |
| 375 std::string url_str = "data:text/html;charset=utf-8,"; | 356 std::string url_str = "data:text/html;charset=utf-8,"; |
| 376 url_str.append(kHtml); | 357 url_str.append(kHtml); |
| 377 GURL url(url_str); | 358 GURL url(url_str); |
| 378 Reload(url); | 359 Reload(url); |
| 379 EXPECT_NE( | 360 EXPECT_NE( |
| 380 std::string::npos, | 361 std::string::npos, |
| 381 blink::WebFrameContentDumper::DumpLayoutTreeAsText( | 362 blink::WebFrameContentDumper::DumpLayoutTreeAsText( |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 was_blocked = true; | 394 was_blocked = true; |
| 414 } | 395 } |
| 415 EXPECT_FALSE(was_blocked); | 396 EXPECT_FALSE(was_blocked); |
| 416 | 397 |
| 417 // Block JavaScript. | 398 // Block JavaScript. |
| 418 RendererContentSettingRules content_setting_rules; | 399 RendererContentSettingRules content_setting_rules; |
| 419 ContentSettingsForOneType& script_setting_rules = | 400 ContentSettingsForOneType& script_setting_rules = |
| 420 content_setting_rules.script_rules; | 401 content_setting_rules.script_rules; |
| 421 script_setting_rules.push_back(ContentSettingPatternSource( | 402 script_setting_rules.push_back(ContentSettingPatternSource( |
| 422 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), | 403 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 423 CONTENT_SETTING_BLOCK, std::string(), false)); | 404 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 424 | 405 |
| 425 ContentSettingsObserver* observer = | 406 ContentSettingsObserver* observer = |
| 426 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 407 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 427 observer->SetContentSettingRules(&content_setting_rules); | 408 observer->SetContentSettingRules(&content_setting_rules); |
| 428 | 409 |
| 429 // The page shouldn't see the change to script blocking setting after a | 410 // The page shouldn't see the change to script blocking setting after a |
| 430 // same document navigation. | 411 // same document navigation. |
| 431 OnSameDocumentNavigation(GetMainFrame(), true, true); | 412 OnSameDocumentNavigation(GetMainFrame(), true, true); |
| 432 EXPECT_TRUE(observer->AllowScript(true)); | 413 EXPECT_TRUE(observer->AllowScript(true)); |
| 433 } | 414 } |
| 434 | 415 |
| 435 TEST_F(ChromeRenderViewTest, ContentSettingsInterstitialPages) { | 416 TEST_F(ChromeRenderViewTest, ContentSettingsInterstitialPages) { |
| 436 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); | 417 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); |
| 437 // Block scripts. | 418 // Block scripts. |
| 438 RendererContentSettingRules content_setting_rules; | 419 RendererContentSettingRules content_setting_rules; |
| 439 ContentSettingsForOneType& script_setting_rules = | 420 ContentSettingsForOneType& script_setting_rules = |
| 440 content_setting_rules.script_rules; | 421 content_setting_rules.script_rules; |
| 441 script_setting_rules.push_back( | 422 script_setting_rules.push_back(ContentSettingPatternSource( |
| 442 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 423 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 443 ContentSettingsPattern::Wildcard(), | 424 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 444 CONTENT_SETTING_BLOCK, | |
| 445 std::string(), | |
| 446 false)); | |
| 447 // Block images. | 425 // Block images. |
| 448 ContentSettingsForOneType& image_setting_rules = | 426 ContentSettingsForOneType& image_setting_rules = |
| 449 content_setting_rules.image_rules; | 427 content_setting_rules.image_rules; |
| 450 image_setting_rules.push_back( | 428 image_setting_rules.push_back(ContentSettingPatternSource( |
| 451 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 429 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 452 ContentSettingsPattern::Wildcard(), | 430 CONTENT_SETTING_BLOCK, base::Time(), std::string(), false)); |
| 453 CONTENT_SETTING_BLOCK, | |
| 454 std::string(), | |
| 455 false)); | |
| 456 | 431 |
| 457 ContentSettingsObserver* observer = | 432 ContentSettingsObserver* observer = |
| 458 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 433 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 459 observer->SetContentSettingRules(&content_setting_rules); | 434 observer->SetContentSettingRules(&content_setting_rules); |
| 460 observer->OnSetAsInterstitial(); | 435 observer->OnSetAsInterstitial(); |
| 461 | 436 |
| 462 // Load a page which contains a script. | 437 // Load a page which contains a script. |
| 463 const char kHtml[] = | 438 const char kHtml[] = |
| 464 "<html>" | 439 "<html>" |
| 465 "<head>" | 440 "<head>" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 489 TEST_F(ChromeRenderViewTest, AutoplayContentSettings) { | 464 TEST_F(ChromeRenderViewTest, AutoplayContentSettings) { |
| 490 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); | 465 MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame()); |
| 491 | 466 |
| 492 // Load some HTML. | 467 // Load some HTML. |
| 493 LoadHTML("<html>Foo</html>"); | 468 LoadHTML("<html>Foo</html>"); |
| 494 | 469 |
| 495 // Set the default setting. | 470 // Set the default setting. |
| 496 RendererContentSettingRules content_setting_rules; | 471 RendererContentSettingRules content_setting_rules; |
| 497 ContentSettingsForOneType& autoplay_setting_rules = | 472 ContentSettingsForOneType& autoplay_setting_rules = |
| 498 content_setting_rules.autoplay_rules; | 473 content_setting_rules.autoplay_rules; |
| 499 autoplay_setting_rules.push_back( | 474 autoplay_setting_rules.push_back(ContentSettingPatternSource( |
| 500 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), | 475 ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), |
| 501 ContentSettingsPattern::Wildcard(), | 476 CONTENT_SETTING_ALLOW, base::Time(), std::string(), false)); |
| 502 CONTENT_SETTING_ALLOW, | |
| 503 std::string(), | |
| 504 false)); | |
| 505 | 477 |
| 506 ContentSettingsObserver* observer = | 478 ContentSettingsObserver* observer = |
| 507 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); | 479 ContentSettingsObserver::Get(view_->GetMainRenderFrame()); |
| 508 observer->SetContentSettingRules(&content_setting_rules); | 480 observer->SetContentSettingRules(&content_setting_rules); |
| 509 | 481 |
| 510 EXPECT_TRUE(observer->AllowAutoplay(false)); | 482 EXPECT_TRUE(observer->AllowAutoplay(false)); |
| 511 ::testing::Mock::VerifyAndClearExpectations(&observer); | 483 ::testing::Mock::VerifyAndClearExpectations(&observer); |
| 512 | 484 |
| 513 // Add rule to block autoplay. | 485 // Add rule to block autoplay. |
| 514 autoplay_setting_rules.insert( | 486 autoplay_setting_rules.insert( |
| 515 autoplay_setting_rules.begin(), | 487 autoplay_setting_rules.begin(), |
| 516 ContentSettingPatternSource( | 488 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), |
| 517 ContentSettingsPattern::Wildcard(), | 489 ContentSettingsPattern::Wildcard(), |
| 518 ContentSettingsPattern::Wildcard(), | 490 CONTENT_SETTING_BLOCK, base::Time(), |
| 519 CONTENT_SETTING_BLOCK, | 491 std::string(), false)); |
| 520 std::string(), | |
| 521 false)); | |
| 522 | 492 |
| 523 EXPECT_FALSE(observer->AllowAutoplay(true)); | 493 EXPECT_FALSE(observer->AllowAutoplay(true)); |
| 524 ::testing::Mock::VerifyAndClearExpectations(&observer); | 494 ::testing::Mock::VerifyAndClearExpectations(&observer); |
| 525 } | 495 } |
| OLD | NEW |