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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" |
6 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
7 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
10 #include "chrome/browser/chrome_notification_types.h" | 11 #include "chrome/browser/chrome_notification_types.h" |
11 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" | 12 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" |
12 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsert
est_util.h" | 13 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsert
est_util.h" |
13 #include "chrome/browser/ui/browser.h" | 14 #include "chrome/browser/ui/browser.h" |
14 #include "chrome/browser/ui/browser_commands.h" | 15 #include "chrome/browser/ui/browser_commands.h" |
15 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 16 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
16 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
17 #include "chrome/test/base/in_process_browser_test.h" | 18 #include "chrome/test/base/in_process_browser_test.h" |
18 #include "chrome/test/base/ui_test_utils.h" | 19 #include "chrome/test/base/ui_test_utils.h" |
19 #include "content/public/browser/navigation_controller.h" | 20 #include "content/public/browser/navigation_controller.h" |
20 #include "content/public/browser/navigation_entry.h" | 21 #include "content/public/browser/navigation_entry.h" |
21 #include "content/public/browser/notification_service.h" | 22 #include "content/public/browser/notification_service.h" |
22 #include "content/public/browser/render_view_host.h" | 23 #include "content/public/browser/render_view_host.h" |
23 #include "content/public/browser/web_contents.h" | 24 #include "content/public/browser/web_contents.h" |
| 25 #include "content/public/common/content_switches.h" |
24 #include "content/public/test/browser_test_utils.h" | 26 #include "content/public/test/browser_test_utils.h" |
25 #include "net/test/spawned_test_server/spawned_test_server.h" | 27 #include "net/test/spawned_test_server/spawned_test_server.h" |
26 #include "third_party/WebKit/public/web/WebInputEvent.h" | 28 #include "third_party/WebKit/public/web/WebInputEvent.h" |
27 | 29 |
28 namespace { | 30 namespace { |
29 | 31 |
30 const base::FilePath::CharType kDocRoot[] = | 32 const base::FilePath::CharType kDocRoot[] = |
31 FILE_PATH_LITERAL("chrome/test/data/referrer_policy"); | 33 FILE_PATH_LITERAL("chrome/test/data/referrer_policy"); |
32 | 34 |
33 } // namespace | 35 } // namespace |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 title_watcher->AlsoWaitForTitle( | 89 title_watcher->AlsoWaitForTitle( |
88 GetExpectedTitle(url, EXPECT_FULL_REFERRER)); | 90 GetExpectedTitle(url, EXPECT_FULL_REFERRER)); |
89 title_watcher->AlsoWaitForTitle( | 91 title_watcher->AlsoWaitForTitle( |
90 GetExpectedTitle(url, EXPECT_ORIGIN_AS_REFERRER)); | 92 GetExpectedTitle(url, EXPECT_ORIGIN_AS_REFERRER)); |
91 } | 93 } |
92 | 94 |
93 // Returns a string representation of a given |referrer_policy|. | 95 // Returns a string representation of a given |referrer_policy|. |
94 std::string ReferrerPolicyToString(blink::WebReferrerPolicy referrer_policy) { | 96 std::string ReferrerPolicyToString(blink::WebReferrerPolicy referrer_policy) { |
95 switch (referrer_policy) { | 97 switch (referrer_policy) { |
96 case blink::WebReferrerPolicyDefault: | 98 case blink::WebReferrerPolicyDefault: |
| 99 return "no-meta"; |
| 100 case blink::WebReferrerPolicyNoReferrerWhenDowngrade: |
97 return "default"; | 101 return "default"; |
98 case blink::WebReferrerPolicyOrigin: | 102 case blink::WebReferrerPolicyOrigin: |
99 return "origin"; | 103 return "origin"; |
100 case blink::WebReferrerPolicyAlways: | 104 case blink::WebReferrerPolicyAlways: |
101 return "always"; | 105 return "always"; |
102 case blink::WebReferrerPolicyNever: | 106 case blink::WebReferrerPolicyNever: |
103 return "never"; | 107 return "never"; |
104 default: | 108 default: |
105 NOTREACHED(); | 109 NOTREACHED(); |
106 return ""; | 110 return ""; |
107 } | 111 } |
108 } | 112 } |
109 | 113 |
110 enum StartOnProtocol { START_ON_HTTP, START_ON_HTTPS, }; | 114 enum StartOnProtocol { START_ON_HTTP, START_ON_HTTPS, }; |
111 | 115 |
112 enum LinkType { REGULAR_LINK, LINK_WITH_TARGET_BLANK, }; | 116 enum LinkType { REGULAR_LINK, LINK_WITH_TARGET_BLANK, }; |
113 | 117 |
114 enum RedirectType { NO_REDIRECT, SERVER_REDIRECT, SERVER_REDIRECT_ON_HTTP, }; | 118 enum RedirectType { |
| 119 NO_REDIRECT, |
| 120 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, |
| 121 SERVER_REDIRECT_FROM_HTTP_TO_HTTP, |
| 122 SERVER_REDIRECT_FROM_HTTP_TO_HTTPS |
| 123 }; |
115 | 124 |
116 std::string RedirectTypeToString(RedirectType redirect) { | 125 std::string RedirectTypeToString(RedirectType redirect) { |
117 switch (redirect) { | 126 switch (redirect) { |
118 case NO_REDIRECT: | 127 case NO_REDIRECT: |
119 return "none"; | 128 return "none"; |
120 case SERVER_REDIRECT: | 129 case SERVER_REDIRECT_FROM_HTTPS_TO_HTTP: |
121 return "https"; | 130 return "https2http"; |
122 case SERVER_REDIRECT_ON_HTTP: | 131 case SERVER_REDIRECT_FROM_HTTP_TO_HTTP: |
123 return "http"; | 132 return "http2http"; |
| 133 case SERVER_REDIRECT_FROM_HTTP_TO_HTTPS: |
| 134 return "http2https"; |
124 } | 135 } |
125 NOTREACHED(); | 136 NOTREACHED(); |
126 return ""; | 137 return ""; |
127 } | 138 } |
128 | 139 |
129 // Navigates from a page with a given |referrer_policy| and checks that the | 140 // Navigates from a page with a given |referrer_policy| and checks that the |
130 // reported referrer matches the expectation. | 141 // reported referrer matches the expectation. |
131 // Parameters: | 142 // Parameters: |
132 // referrer_policy: The referrer policy to test. | 143 // referrer_policy: The referrer policy to test. |
133 // start_protocol: The protocol the test should start on. | 144 // start_protocol: The protocol the test should start on. |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 START_ON_HTTPS, | 360 START_ON_HTTPS, |
350 REGULAR_LINK, | 361 REGULAR_LINK, |
351 NO_REDIRECT, | 362 NO_REDIRECT, |
352 NEW_FOREGROUND_TAB, | 363 NEW_FOREGROUND_TAB, |
353 blink::WebMouseEvent::ButtonRight, | 364 blink::WebMouseEvent::ButtonRight, |
354 EXPECT_ORIGIN_AS_REFERRER); | 365 EXPECT_ORIGIN_AS_REFERRER); |
355 } | 366 } |
356 | 367 |
357 // Content initiated navigation, from HTTP to HTTP via server redirect. | 368 // Content initiated navigation, from HTTP to HTTP via server redirect. |
358 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, Redirect) { | 369 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, Redirect) { |
359 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 370 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTP, REGULAR_LINK, |
360 START_ON_HTTP, | 371 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, CURRENT_TAB, |
361 REGULAR_LINK, | 372 blink::WebMouseEvent::ButtonNone, EXPECT_ORIGIN_AS_REFERRER); |
362 SERVER_REDIRECT, | |
363 CURRENT_TAB, | |
364 blink::WebMouseEvent::ButtonNone, | |
365 EXPECT_ORIGIN_AS_REFERRER); | |
366 } | 373 } |
367 | 374 |
368 // Content initiated navigation, from HTTPS to HTTP via server redirect. | 375 // Content initiated navigation, from HTTPS to HTTP via server redirect. |
369 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsRedirect) { | 376 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsRedirect) { |
370 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 377 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTPS, REGULAR_LINK, |
371 START_ON_HTTPS, | 378 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, CURRENT_TAB, |
372 REGULAR_LINK, | 379 blink::WebMouseEvent::ButtonNone, EXPECT_ORIGIN_AS_REFERRER); |
373 SERVER_REDIRECT, | |
374 CURRENT_TAB, | |
375 blink::WebMouseEvent::ButtonNone, | |
376 EXPECT_ORIGIN_AS_REFERRER); | |
377 } | 380 } |
378 | 381 |
379 // User initiated navigation, from HTTP to HTTP via server redirect. | 382 // User initiated navigation, from HTTP to HTTP via server redirect. |
380 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, LeftClickRedirect) { | 383 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, LeftClickRedirect) { |
381 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 384 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTP, REGULAR_LINK, |
382 START_ON_HTTP, | 385 SERVER_REDIRECT_FROM_HTTP_TO_HTTP, CURRENT_TAB, |
383 REGULAR_LINK, | 386 blink::WebMouseEvent::ButtonLeft, EXPECT_ORIGIN_AS_REFERRER); |
384 SERVER_REDIRECT, | |
385 CURRENT_TAB, | |
386 blink::WebMouseEvent::ButtonLeft, | |
387 EXPECT_ORIGIN_AS_REFERRER); | |
388 } | 387 } |
389 | 388 |
390 // User initiated navigation, from HTTPS to HTTP via server redirect. | 389 // User initiated navigation, from HTTPS to HTTP via server redirect. |
391 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsLeftClickRedirect) { | 390 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsLeftClickRedirect) { |
392 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 391 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTPS, REGULAR_LINK, |
393 START_ON_HTTPS, | 392 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, CURRENT_TAB, |
394 REGULAR_LINK, | 393 blink::WebMouseEvent::ButtonLeft, EXPECT_ORIGIN_AS_REFERRER); |
395 SERVER_REDIRECT, | |
396 CURRENT_TAB, | |
397 blink::WebMouseEvent::ButtonLeft, | |
398 EXPECT_ORIGIN_AS_REFERRER); | |
399 } | 394 } |
400 | 395 |
401 // User initiated navigation, middle click, from HTTP to HTTP via server | 396 // User initiated navigation, middle click, from HTTP to HTTP via server |
402 // redirect. | 397 // redirect. |
403 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickRedirect) { | 398 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickRedirect) { |
404 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 399 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTP, REGULAR_LINK, |
405 START_ON_HTTP, | 400 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, NEW_BACKGROUND_TAB, |
406 REGULAR_LINK, | |
407 SERVER_REDIRECT, | |
408 NEW_BACKGROUND_TAB, | |
409 blink::WebMouseEvent::ButtonMiddle, | 401 blink::WebMouseEvent::ButtonMiddle, |
410 EXPECT_ORIGIN_AS_REFERRER); | 402 EXPECT_ORIGIN_AS_REFERRER); |
411 } | 403 } |
412 | 404 |
413 // User initiated navigation, middle click, from HTTPS to HTTP via server | 405 // User initiated navigation, middle click, from HTTPS to HTTP via server |
414 // redirect. | 406 // redirect. |
415 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickRedirect) { | 407 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickRedirect) { |
416 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 408 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTPS, REGULAR_LINK, |
417 START_ON_HTTPS, | 409 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, NEW_BACKGROUND_TAB, |
418 REGULAR_LINK, | |
419 SERVER_REDIRECT, | |
420 NEW_BACKGROUND_TAB, | |
421 blink::WebMouseEvent::ButtonMiddle, | 410 blink::WebMouseEvent::ButtonMiddle, |
422 EXPECT_ORIGIN_AS_REFERRER); | 411 EXPECT_ORIGIN_AS_REFERRER); |
423 } | 412 } |
424 | 413 |
425 // User initiated navigation, target blank, from HTTP to HTTP via server | 414 // User initiated navigation, target blank, from HTTP to HTTP via server |
426 // redirect. | 415 // redirect. |
427 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, TargetBlankRedirect) { | 416 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, TargetBlankRedirect) { |
428 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 417 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTP, |
429 START_ON_HTTP, | 418 LINK_WITH_TARGET_BLANK, SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, |
430 LINK_WITH_TARGET_BLANK, | 419 NEW_FOREGROUND_TAB, blink::WebMouseEvent::ButtonLeft, |
431 SERVER_REDIRECT, | |
432 NEW_FOREGROUND_TAB, | |
433 blink::WebMouseEvent::ButtonLeft, | |
434 EXPECT_ORIGIN_AS_REFERRER); | 420 EXPECT_ORIGIN_AS_REFERRER); |
435 } | 421 } |
436 | 422 |
437 // User initiated navigation, target blank, from HTTPS to HTTP via server | 423 // User initiated navigation, target blank, from HTTPS to HTTP via server |
438 // redirect. | 424 // redirect. |
439 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsTargetBlankRedirect) { | 425 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsTargetBlankRedirect) { |
440 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 426 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTPS, |
441 START_ON_HTTPS, | 427 LINK_WITH_TARGET_BLANK, SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, |
442 LINK_WITH_TARGET_BLANK, | 428 NEW_FOREGROUND_TAB, blink::WebMouseEvent::ButtonLeft, |
443 SERVER_REDIRECT, | |
444 NEW_FOREGROUND_TAB, | |
445 blink::WebMouseEvent::ButtonLeft, | |
446 EXPECT_ORIGIN_AS_REFERRER); | 429 EXPECT_ORIGIN_AS_REFERRER); |
447 } | 430 } |
448 | 431 |
449 // User initiated navigation, middle click, target blank, from HTTP to HTTP via | 432 // User initiated navigation, middle click, target blank, from HTTP to HTTP via |
450 // server redirect. | 433 // server redirect. |
451 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickTargetBlankRedirect) { | 434 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickTargetBlankRedirect) { |
452 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 435 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTP, |
453 START_ON_HTTP, | 436 LINK_WITH_TARGET_BLANK, SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, |
454 LINK_WITH_TARGET_BLANK, | 437 NEW_FOREGROUND_TAB, blink::WebMouseEvent::ButtonMiddle, |
455 SERVER_REDIRECT, | |
456 NEW_FOREGROUND_TAB, | |
457 blink::WebMouseEvent::ButtonMiddle, | |
458 EXPECT_ORIGIN_AS_REFERRER); | 438 EXPECT_ORIGIN_AS_REFERRER); |
459 } | 439 } |
460 | 440 |
461 // User initiated navigation, middle click, target blank, from HTTPS to HTTP | 441 // User initiated navigation, middle click, target blank, from HTTPS to HTTP |
462 // via server redirect. | 442 // via server redirect. |
463 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, | 443 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, |
464 HttpsMiddleClickTargetBlankRedirect) { | 444 HttpsMiddleClickTargetBlankRedirect) { |
465 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 445 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTPS, |
466 START_ON_HTTPS, | 446 LINK_WITH_TARGET_BLANK, SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, |
467 LINK_WITH_TARGET_BLANK, | 447 NEW_FOREGROUND_TAB, blink::WebMouseEvent::ButtonMiddle, |
468 SERVER_REDIRECT, | |
469 NEW_FOREGROUND_TAB, | |
470 blink::WebMouseEvent::ButtonMiddle, | |
471 EXPECT_ORIGIN_AS_REFERRER); | 448 EXPECT_ORIGIN_AS_REFERRER); |
472 } | 449 } |
473 | 450 |
474 // Context menu, from HTTP to HTTP via server redirect. | 451 // Context menu, from HTTP to HTTP via server redirect. |
475 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, ContextMenuRedirect) { | 452 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, ContextMenuRedirect) { |
476 ContextMenuNotificationObserver context_menu_observer( | 453 ContextMenuNotificationObserver context_menu_observer( |
477 IDC_CONTENT_CONTEXT_OPENLINKNEWTAB); | 454 IDC_CONTENT_CONTEXT_OPENLINKNEWTAB); |
478 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 455 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTP, REGULAR_LINK, |
479 START_ON_HTTP, | 456 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, NEW_FOREGROUND_TAB, |
480 REGULAR_LINK, | 457 blink::WebMouseEvent::ButtonRight, EXPECT_ORIGIN_AS_REFERRER); |
481 SERVER_REDIRECT, | |
482 NEW_FOREGROUND_TAB, | |
483 blink::WebMouseEvent::ButtonRight, | |
484 EXPECT_ORIGIN_AS_REFERRER); | |
485 } | 458 } |
486 | 459 |
487 // Context menu, from HTTPS to HTTP via server redirect. | 460 // Context menu, from HTTPS to HTTP via server redirect. |
488 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsContextMenuRedirect) { | 461 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsContextMenuRedirect) { |
489 ContextMenuNotificationObserver context_menu_observer( | 462 ContextMenuNotificationObserver context_menu_observer( |
490 IDC_CONTENT_CONTEXT_OPENLINKNEWTAB); | 463 IDC_CONTENT_CONTEXT_OPENLINKNEWTAB); |
491 RunReferrerTest(blink::WebReferrerPolicyOrigin, | 464 RunReferrerTest(blink::WebReferrerPolicyOrigin, START_ON_HTTPS, REGULAR_LINK, |
492 START_ON_HTTPS, | 465 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, NEW_FOREGROUND_TAB, |
493 REGULAR_LINK, | 466 blink::WebMouseEvent::ButtonRight, EXPECT_ORIGIN_AS_REFERRER); |
494 SERVER_REDIRECT, | |
495 NEW_FOREGROUND_TAB, | |
496 blink::WebMouseEvent::ButtonRight, | |
497 EXPECT_ORIGIN_AS_REFERRER); | |
498 } | 467 } |
499 | 468 |
500 // Tests history navigation actions: Navigate from A to B with a referrer | 469 // Tests history navigation actions: Navigate from A to B with a referrer |
501 // policy, then navigate to C, back to B, and reload. | 470 // policy, then navigate to C, back to B, and reload. |
502 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, History) { | 471 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, History) { |
503 // Navigate from A to B. | 472 // Navigate from A to B. |
504 GURL start_url = RunReferrerTest(blink::WebReferrerPolicyOrigin, | 473 GURL start_url = RunReferrerTest( |
505 START_ON_HTTPS, | 474 blink::WebReferrerPolicyOrigin, START_ON_HTTPS, REGULAR_LINK, |
506 REGULAR_LINK, | 475 SERVER_REDIRECT_FROM_HTTPS_TO_HTTP, CURRENT_TAB, |
507 SERVER_REDIRECT, | 476 blink::WebMouseEvent::ButtonLeft, EXPECT_ORIGIN_AS_REFERRER); |
508 CURRENT_TAB, | |
509 blink::WebMouseEvent::ButtonLeft, | |
510 EXPECT_ORIGIN_AS_REFERRER); | |
511 | 477 |
512 // Navigate to C. | 478 // Navigate to C. |
513 ui_test_utils::NavigateToURL(browser(), test_server_->GetURL(std::string())); | 479 ui_test_utils::NavigateToURL(browser(), test_server_->GetURL(std::string())); |
514 | 480 |
515 base::string16 expected_title = | 481 base::string16 expected_title = |
516 GetExpectedTitle(start_url, EXPECT_ORIGIN_AS_REFERRER); | 482 GetExpectedTitle(start_url, EXPECT_ORIGIN_AS_REFERRER); |
517 content::WebContents* tab = | 483 content::WebContents* tab = |
518 browser()->tab_strip_model()->GetActiveWebContents(); | 484 browser()->tab_strip_model()->GetActiveWebContents(); |
519 scoped_ptr<content::TitleWatcher> title_watcher( | 485 scoped_ptr<content::TitleWatcher> title_watcher( |
520 new content::TitleWatcher(tab, expected_title)); | 486 new content::TitleWatcher(tab, expected_title)); |
(...skipping 16 matching lines...) Expand all Loading... |
537 AddAllPossibleTitles(start_url, title_watcher.get()); | 503 AddAllPossibleTitles(start_url, title_watcher.get()); |
538 | 504 |
539 // Shift-reload to B. | 505 // Shift-reload to B. |
540 chrome::ReloadIgnoringCache(browser(), CURRENT_TAB); | 506 chrome::ReloadIgnoringCache(browser(), CURRENT_TAB); |
541 EXPECT_EQ(expected_title, title_watcher->WaitAndGetTitle()); | 507 EXPECT_EQ(expected_title, title_watcher->WaitAndGetTitle()); |
542 } | 508 } |
543 | 509 |
544 // Tests that reloading a site for "request tablet version" correctly clears | 510 // Tests that reloading a site for "request tablet version" correctly clears |
545 // the referrer. | 511 // the referrer. |
546 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, RequestTabletSite) { | 512 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, RequestTabletSite) { |
547 GURL start_url = RunReferrerTest(blink::WebReferrerPolicyOrigin, | 513 GURL start_url = RunReferrerTest( |
548 START_ON_HTTPS, | 514 blink::WebReferrerPolicyOrigin, START_ON_HTTPS, REGULAR_LINK, |
549 REGULAR_LINK, | 515 SERVER_REDIRECT_FROM_HTTP_TO_HTTP, CURRENT_TAB, |
550 SERVER_REDIRECT_ON_HTTP, | 516 blink::WebMouseEvent::ButtonLeft, EXPECT_ORIGIN_AS_REFERRER); |
551 CURRENT_TAB, | |
552 blink::WebMouseEvent::ButtonLeft, | |
553 EXPECT_ORIGIN_AS_REFERRER); | |
554 | 517 |
555 base::string16 expected_title = | 518 base::string16 expected_title = |
556 GetExpectedTitle(start_url, EXPECT_EMPTY_REFERRER); | 519 GetExpectedTitle(start_url, EXPECT_EMPTY_REFERRER); |
557 content::WebContents* tab = | 520 content::WebContents* tab = |
558 browser()->tab_strip_model()->GetActiveWebContents(); | 521 browser()->tab_strip_model()->GetActiveWebContents(); |
559 content::TitleWatcher title_watcher(tab, expected_title); | 522 content::TitleWatcher title_watcher(tab, expected_title); |
560 | 523 |
561 // Watch for all possible outcomes to avoid timeouts if something breaks. | 524 // Watch for all possible outcomes to avoid timeouts if something breaks. |
562 AddAllPossibleTitles(start_url, &title_watcher); | 525 AddAllPossibleTitles(start_url, &title_watcher); |
563 | 526 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 | 574 |
612 // Verify that the full url of the iframe was used as referrer. | 575 // Verify that the full url of the iframe was used as referrer. |
613 EXPECT_TRUE(content::ExecuteScriptAndExtractString( | 576 EXPECT_TRUE(content::ExecuteScriptAndExtractString( |
614 frame, | 577 frame, |
615 "window.domAutomationController.send(document.title)", | 578 "window.domAutomationController.send(document.title)", |
616 &title)); | 579 &title)); |
617 EXPECT_EQ("Referrer is " + | 580 EXPECT_EQ("Referrer is " + |
618 test_server_->GetURL("files/referrer-policy-log.html").spec(), | 581 test_server_->GetURL("files/referrer-policy-log.html").spec(), |
619 title); | 582 title); |
620 } | 583 } |
| 584 |
| 585 // Reduced 'referer' granularity flag tests. |
| 586 |
| 587 // User initiated navigation, from HTTP to HTTPS via server redirect. |
| 588 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpLeftClickRedirectDefaultNoFlag) { |
| 589 RunReferrerTest(blink::WebReferrerPolicyDefault, START_ON_HTTP, REGULAR_LINK, |
| 590 SERVER_REDIRECT_FROM_HTTP_TO_HTTPS, CURRENT_TAB, |
| 591 blink::WebMouseEvent::ButtonLeft, EXPECT_FULL_REFERRER); |
| 592 } |
| 593 |
| 594 IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpLeftClickRedirectDefaultFlag) { |
| 595 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 596 switches::kReducedReferrerGranularity); |
| 597 RunReferrerTest(blink::WebReferrerPolicyDefault, START_ON_HTTP, REGULAR_LINK, |
| 598 SERVER_REDIRECT_FROM_HTTP_TO_HTTPS, CURRENT_TAB, |
| 599 blink::WebMouseEvent::ButtonLeft, EXPECT_ORIGIN_AS_REFERRER); |
| 600 } |
OLD | NEW |