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

Side by Side Diff: chrome/renderer/content_settings_observer_browsertest.cc

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

Powered by Google App Engine
This is Rietveld 408576698