OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/time.h" | 6 #include "base/time.h" |
7 #include "chrome/app/chrome_command_ids.h" | 7 #include "chrome/app/chrome_command_ids.h" |
8 #include "chrome/browser/tabs/tab_strip_model.h" | 8 #include "chrome/browser/tabs/tab_strip_model.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/browser/ui/browser_navigator.h" | 10 #include "chrome/browser/ui/browser_navigator.h" |
11 #include "chrome/browser/ui/constrained_window_tab_helper.h" | 11 #include "chrome/browser/ui/constrained_window_tab_helper.h" |
12 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 12 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
13 #include "chrome/common/chrome_notification_types.h" | 13 #include "chrome/common/chrome_notification_types.h" |
14 #include "chrome/common/chrome_switches.h" | 14 #include "chrome/common/chrome_switches.h" |
15 #include "chrome/test/base/in_process_browser_test.h" | 15 #include "chrome/test/base/in_process_browser_test.h" |
16 #include "chrome/test/base/ui_test_utils.h" | 16 #include "chrome/test/base/ui_test_utils.h" |
17 #include "content/browser/renderer_host/render_view_host.h" | 17 #include "content/browser/renderer_host/render_view_host.h" |
18 #include "content/browser/tab_contents/interstitial_page.h" | 18 #include "content/browser/tab_contents/interstitial_page.h" |
19 #include "content/browser/tab_contents/tab_contents.h" | 19 #include "content/browser/tab_contents/tab_contents.h" |
20 #include "content/public/browser/navigation_entry.h" | 20 #include "content/public/browser/navigation_entry.h" |
21 #include "content/public/browser/notification_service.h" | 21 #include "content/public/browser/notification_service.h" |
22 #include "content/public/browser/ssl_status.h" | 22 #include "content/public/browser/ssl_status.h" |
23 #include "content/public/common/security_style.h" | 23 #include "content/public/common/security_style.h" |
24 #include "net/base/cert_status_flags.h" | 24 #include "net/base/cert_status_flags.h" |
25 #include "net/test/test_server.h" | 25 #include "net/test/test_server.h" |
26 | 26 |
| 27 using content::NavigationEntry; |
27 using content::SSLStatus; | 28 using content::SSLStatus; |
28 | 29 |
29 const FilePath::CharType kDocRoot[] = FILE_PATH_LITERAL("chrome/test/data"); | 30 const FilePath::CharType kDocRoot[] = FILE_PATH_LITERAL("chrome/test/data"); |
30 | 31 |
31 class SSLUITest : public InProcessBrowserTest { | 32 class SSLUITest : public InProcessBrowserTest { |
32 typedef net::TestServer::HTTPSOptions HTTPSOptions; | 33 typedef net::TestServer::HTTPSOptions HTTPSOptions; |
33 | 34 |
34 public: | 35 public: |
35 SSLUITest() | 36 SSLUITest() |
36 : https_server_( | 37 : https_server_( |
37 HTTPSOptions(HTTPSOptions::CERT_OK), FilePath(kDocRoot)), | 38 HTTPSOptions(HTTPSOptions::CERT_OK), FilePath(kDocRoot)), |
38 https_server_expired_( | 39 https_server_expired_( |
39 HTTPSOptions(HTTPSOptions::CERT_EXPIRED), FilePath(kDocRoot)), | 40 HTTPSOptions(HTTPSOptions::CERT_EXPIRED), FilePath(kDocRoot)), |
40 https_server_mismatched_( | 41 https_server_mismatched_( |
41 HTTPSOptions(HTTPSOptions::CERT_MISMATCHED_NAME), | 42 HTTPSOptions(HTTPSOptions::CERT_MISMATCHED_NAME), |
42 FilePath(kDocRoot)) { | 43 FilePath(kDocRoot)) { |
43 EnableDOMAutomation(); | 44 EnableDOMAutomation(); |
44 } | 45 } |
45 | 46 |
46 // Browser will both run and display insecure content. | 47 // Browser will both run and display insecure content. |
47 virtual void SetUpCommandLine(CommandLine* command_line) { | 48 virtual void SetUpCommandLine(CommandLine* command_line) { |
48 command_line->AppendSwitch(switches::kAllowRunningInsecureContent); | 49 command_line->AppendSwitch(switches::kAllowRunningInsecureContent); |
49 } | 50 } |
50 | 51 |
51 void CheckAuthenticatedState(TabContents* tab, | 52 void CheckAuthenticatedState(TabContents* tab, |
52 bool displayed_insecure_content) { | 53 bool displayed_insecure_content) { |
53 ASSERT_FALSE(tab->IsCrashed()); | 54 ASSERT_FALSE(tab->IsCrashed()); |
54 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); | 55 NavigationEntry* entry = tab->GetController().GetActiveEntry(); |
55 ASSERT_TRUE(entry); | 56 ASSERT_TRUE(entry); |
56 EXPECT_EQ(content::PAGE_TYPE_NORMAL, entry->GetPageType()); | 57 EXPECT_EQ(content::PAGE_TYPE_NORMAL, entry->GetPageType()); |
57 EXPECT_EQ(content::SECURITY_STYLE_AUTHENTICATED, | 58 EXPECT_EQ(content::SECURITY_STYLE_AUTHENTICATED, |
58 entry->GetSSL().security_style); | 59 entry->GetSSL().security_style); |
59 EXPECT_EQ(0U, entry->GetSSL().cert_status & net::CERT_STATUS_ALL_ERRORS); | 60 EXPECT_EQ(0U, entry->GetSSL().cert_status & net::CERT_STATUS_ALL_ERRORS); |
60 EXPECT_EQ(displayed_insecure_content, | 61 EXPECT_EQ(displayed_insecure_content, |
61 !!(entry->GetSSL().content_status & | 62 !!(entry->GetSSL().content_status & |
62 SSLStatus::DISPLAYED_INSECURE_CONTENT)); | 63 SSLStatus::DISPLAYED_INSECURE_CONTENT)); |
63 EXPECT_FALSE( | 64 EXPECT_FALSE( |
64 !!(entry->GetSSL().content_status & SSLStatus::RAN_INSECURE_CONTENT)); | 65 !!(entry->GetSSL().content_status & SSLStatus::RAN_INSECURE_CONTENT)); |
65 } | 66 } |
66 | 67 |
67 void CheckUnauthenticatedState(TabContents* tab) { | 68 void CheckUnauthenticatedState(TabContents* tab) { |
68 ASSERT_FALSE(tab->IsCrashed()); | 69 ASSERT_FALSE(tab->IsCrashed()); |
69 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); | 70 NavigationEntry* entry = tab->GetController().GetActiveEntry(); |
70 ASSERT_TRUE(entry); | 71 ASSERT_TRUE(entry); |
71 EXPECT_EQ(content::PAGE_TYPE_NORMAL, entry->GetPageType()); | 72 EXPECT_EQ(content::PAGE_TYPE_NORMAL, entry->GetPageType()); |
72 EXPECT_EQ(content::SECURITY_STYLE_UNAUTHENTICATED, | 73 EXPECT_EQ(content::SECURITY_STYLE_UNAUTHENTICATED, |
73 entry->GetSSL().security_style); | 74 entry->GetSSL().security_style); |
74 EXPECT_EQ(0U, entry->GetSSL().cert_status & net::CERT_STATUS_ALL_ERRORS); | 75 EXPECT_EQ(0U, entry->GetSSL().cert_status & net::CERT_STATUS_ALL_ERRORS); |
75 EXPECT_FALSE(!!(entry->GetSSL().content_status & | 76 EXPECT_FALSE(!!(entry->GetSSL().content_status & |
76 SSLStatus::DISPLAYED_INSECURE_CONTENT)); | 77 SSLStatus::DISPLAYED_INSECURE_CONTENT)); |
77 EXPECT_FALSE( | 78 EXPECT_FALSE( |
78 !!(entry->GetSSL().content_status & SSLStatus::RAN_INSECURE_CONTENT)); | 79 !!(entry->GetSSL().content_status & SSLStatus::RAN_INSECURE_CONTENT)); |
79 } | 80 } |
80 | 81 |
81 void CheckAuthenticationBrokenState(TabContents* tab, | 82 void CheckAuthenticationBrokenState(TabContents* tab, |
82 net::CertStatus error, | 83 net::CertStatus error, |
83 bool ran_insecure_content, | 84 bool ran_insecure_content, |
84 bool interstitial) { | 85 bool interstitial) { |
85 ASSERT_FALSE(tab->IsCrashed()); | 86 ASSERT_FALSE(tab->IsCrashed()); |
86 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); | 87 NavigationEntry* entry = tab->GetController().GetActiveEntry(); |
87 ASSERT_TRUE(entry); | 88 ASSERT_TRUE(entry); |
88 EXPECT_EQ(interstitial ? | 89 EXPECT_EQ(interstitial ? |
89 content::PAGE_TYPE_INTERSTITIAL : content::PAGE_TYPE_NORMAL, | 90 content::PAGE_TYPE_INTERSTITIAL : content::PAGE_TYPE_NORMAL, |
90 entry->GetPageType()); | 91 entry->GetPageType()); |
91 EXPECT_EQ(content::SECURITY_STYLE_AUTHENTICATION_BROKEN, | 92 EXPECT_EQ(content::SECURITY_STYLE_AUTHENTICATION_BROKEN, |
92 entry->GetSSL().security_style); | 93 entry->GetSSL().security_style); |
93 // CERT_STATUS_UNABLE_TO_CHECK_REVOCATION doesn't lower the security style | 94 // CERT_STATUS_UNABLE_TO_CHECK_REVOCATION doesn't lower the security style |
94 // to SECURITY_STYLE_AUTHENTICATION_BROKEN. | 95 // to SECURITY_STYLE_AUTHENTICATION_BROKEN. |
95 ASSERT_NE(net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, error); | 96 ASSERT_NE(net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, error); |
96 EXPECT_EQ(error, | 97 EXPECT_EQ(error, |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 IN_PROC_BROWSER_TEST_F(SSLUITest, MAYBE_TestHTTPSExpiredCertAndDontProceed) { | 322 IN_PROC_BROWSER_TEST_F(SSLUITest, MAYBE_TestHTTPSExpiredCertAndDontProceed) { |
322 ASSERT_TRUE(test_server()->Start()); | 323 ASSERT_TRUE(test_server()->Start()); |
323 ASSERT_TRUE(https_server_.Start()); | 324 ASSERT_TRUE(https_server_.Start()); |
324 ASSERT_TRUE(https_server_expired_.Start()); | 325 ASSERT_TRUE(https_server_expired_.Start()); |
325 | 326 |
326 // First navigate to an OK page. | 327 // First navigate to an OK page. |
327 ui_test_utils::NavigateToURL(browser(), | 328 ui_test_utils::NavigateToURL(browser(), |
328 https_server_.GetURL("files/ssl/google.html")); | 329 https_server_.GetURL("files/ssl/google.html")); |
329 | 330 |
330 TabContents* tab = browser()->GetSelectedTabContents(); | 331 TabContents* tab = browser()->GetSelectedTabContents(); |
331 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); | 332 NavigationEntry* entry = tab->GetController().GetActiveEntry(); |
332 ASSERT_TRUE(entry); | 333 ASSERT_TRUE(entry); |
333 | 334 |
334 GURL cross_site_url = | 335 GURL cross_site_url = |
335 https_server_expired_.GetURL("files/ssl/google.html"); | 336 https_server_expired_.GetURL("files/ssl/google.html"); |
336 // Change the host name from 127.0.0.1 to localhost so it triggers a | 337 // Change the host name from 127.0.0.1 to localhost so it triggers a |
337 // cross-site navigation so we can test http://crbug.com/5800 is gone. | 338 // cross-site navigation so we can test http://crbug.com/5800 is gone. |
338 ASSERT_EQ("127.0.0.1", cross_site_url.host()); | 339 ASSERT_EQ("127.0.0.1", cross_site_url.host()); |
339 GURL::Replacements replacements; | 340 GURL::Replacements replacements; |
340 std::string new_host("localhost"); | 341 std::string new_host("localhost"); |
341 replacements.SetHostStr(new_host); | 342 replacements.SetHostStr(new_host); |
(...skipping 24 matching lines...) Expand all Loading... |
366 // Marked as flaky, see bug 40932. | 367 // Marked as flaky, see bug 40932. |
367 IN_PROC_BROWSER_TEST_F(SSLUITest, | 368 IN_PROC_BROWSER_TEST_F(SSLUITest, |
368 FLAKY_TestHTTPSExpiredCertAndGoBackViaButton) { | 369 FLAKY_TestHTTPSExpiredCertAndGoBackViaButton) { |
369 ASSERT_TRUE(test_server()->Start()); | 370 ASSERT_TRUE(test_server()->Start()); |
370 ASSERT_TRUE(https_server_expired_.Start()); | 371 ASSERT_TRUE(https_server_expired_.Start()); |
371 | 372 |
372 // First navigate to an HTTP page. | 373 // First navigate to an HTTP page. |
373 ui_test_utils::NavigateToURL(browser(), | 374 ui_test_utils::NavigateToURL(browser(), |
374 test_server()->GetURL("files/ssl/google.html")); | 375 test_server()->GetURL("files/ssl/google.html")); |
375 TabContents* tab = browser()->GetSelectedTabContents(); | 376 TabContents* tab = browser()->GetSelectedTabContents(); |
376 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); | 377 NavigationEntry* entry = tab->GetController().GetActiveEntry(); |
377 ASSERT_TRUE(entry); | 378 ASSERT_TRUE(entry); |
378 | 379 |
379 // Now go to a bad HTTPS page that shows an interstitial. | 380 // Now go to a bad HTTPS page that shows an interstitial. |
380 ui_test_utils::NavigateToURL(browser(), | 381 ui_test_utils::NavigateToURL(browser(), |
381 https_server_expired_.GetURL("files/ssl/google.html")); | 382 https_server_expired_.GetURL("files/ssl/google.html")); |
382 CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, | 383 CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, |
383 true); // Interstitial showing | 384 true); // Interstitial showing |
384 | 385 |
385 ui_test_utils::WindowedNotificationObserver load_failed_observer( | 386 ui_test_utils::WindowedNotificationObserver load_failed_observer( |
386 content::NOTIFICATION_FAIL_PROVISIONAL_LOAD_WITH_ERROR, | 387 content::NOTIFICATION_FAIL_PROVISIONAL_LOAD_WITH_ERROR, |
(...skipping 15 matching lines...) Expand all Loading... |
402 // Visits a page with https error and then goes back using GoToOffset. | 403 // Visits a page with https error and then goes back using GoToOffset. |
403 // Marked as flaky, see bug 40932. | 404 // Marked as flaky, see bug 40932. |
404 IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestHTTPSExpiredCertAndGoBackViaMenu) { | 405 IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestHTTPSExpiredCertAndGoBackViaMenu) { |
405 ASSERT_TRUE(test_server()->Start()); | 406 ASSERT_TRUE(test_server()->Start()); |
406 ASSERT_TRUE(https_server_expired_.Start()); | 407 ASSERT_TRUE(https_server_expired_.Start()); |
407 | 408 |
408 // First navigate to an HTTP page. | 409 // First navigate to an HTTP page. |
409 ui_test_utils::NavigateToURL(browser(), | 410 ui_test_utils::NavigateToURL(browser(), |
410 test_server()->GetURL("files/ssl/google.html")); | 411 test_server()->GetURL("files/ssl/google.html")); |
411 TabContents* tab = browser()->GetSelectedTabContents(); | 412 TabContents* tab = browser()->GetSelectedTabContents(); |
412 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); | 413 NavigationEntry* entry = tab->GetController().GetActiveEntry(); |
413 ASSERT_TRUE(entry); | 414 ASSERT_TRUE(entry); |
414 | 415 |
415 // Now go to a bad HTTPS page that shows an interstitial. | 416 // Now go to a bad HTTPS page that shows an interstitial. |
416 ui_test_utils::NavigateToURL(browser(), | 417 ui_test_utils::NavigateToURL(browser(), |
417 https_server_expired_.GetURL("files/ssl/google.html")); | 418 https_server_expired_.GetURL("files/ssl/google.html")); |
418 CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, | 419 CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, |
419 true); // Interstitial showing | 420 true); // Interstitial showing |
420 | 421 |
421 // Simulate user clicking and holding on back button (crbug.com/37215). | 422 // Simulate user clicking and holding on back button (crbug.com/37215). |
422 tab->GetController().GoToOffset(-1); | 423 tab->GetController().GoToOffset(-1); |
423 | 424 |
424 // We should be back at the original good page. | 425 // We should be back at the original good page. |
425 EXPECT_FALSE(browser()->GetSelectedTabContents()->GetInterstitialPage()); | 426 EXPECT_FALSE(browser()->GetSelectedTabContents()->GetInterstitialPage()); |
426 CheckUnauthenticatedState(tab); | 427 CheckUnauthenticatedState(tab); |
427 } | 428 } |
428 | 429 |
429 // Visits a page with https error and then goes forward using GoToOffset. | 430 // Visits a page with https error and then goes forward using GoToOffset. |
430 // Marked as flaky, see bug 40932. | 431 // Marked as flaky, see bug 40932. |
431 IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestHTTPSExpiredCertAndGoForward) { | 432 IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestHTTPSExpiredCertAndGoForward) { |
432 ASSERT_TRUE(test_server()->Start()); | 433 ASSERT_TRUE(test_server()->Start()); |
433 ASSERT_TRUE(https_server_expired_.Start()); | 434 ASSERT_TRUE(https_server_expired_.Start()); |
434 | 435 |
435 // First navigate to two HTTP pages. | 436 // First navigate to two HTTP pages. |
436 ui_test_utils::NavigateToURL(browser(), | 437 ui_test_utils::NavigateToURL(browser(), |
437 test_server()->GetURL("files/ssl/google.html")); | 438 test_server()->GetURL("files/ssl/google.html")); |
438 TabContents* tab = browser()->GetSelectedTabContents(); | 439 TabContents* tab = browser()->GetSelectedTabContents(); |
439 content::NavigationEntry* entry1 = tab->GetController().GetActiveEntry(); | 440 NavigationEntry* entry1 = tab->GetController().GetActiveEntry(); |
440 ASSERT_TRUE(entry1); | 441 ASSERT_TRUE(entry1); |
441 ui_test_utils::NavigateToURL(browser(), | 442 ui_test_utils::NavigateToURL(browser(), |
442 test_server()->GetURL("files/ssl/blank_page.html")); | 443 test_server()->GetURL("files/ssl/blank_page.html")); |
443 content::NavigationEntry* entry2 = tab->GetController().GetActiveEntry(); | 444 NavigationEntry* entry2 = tab->GetController().GetActiveEntry(); |
444 ASSERT_TRUE(entry2); | 445 ASSERT_TRUE(entry2); |
445 | 446 |
446 // Now go back so that a page is in the forward history. | 447 // Now go back so that a page is in the forward history. |
447 { | 448 { |
448 ui_test_utils::WindowedNotificationObserver observer( | 449 ui_test_utils::WindowedNotificationObserver observer( |
449 content::NOTIFICATION_LOAD_STOP, | 450 content::NOTIFICATION_LOAD_STOP, |
450 content::Source<NavigationController>(&tab->GetController())); | 451 content::Source<NavigationController>(&tab->GetController())); |
451 tab->GetController().GoBack(); | 452 tab->GetController().GoBack(); |
452 observer.Wait(); | 453 observer.Wait(); |
453 } | 454 } |
454 ASSERT_TRUE(tab->GetController().CanGoForward()); | 455 ASSERT_TRUE(tab->GetController().CanGoForward()); |
455 content::NavigationEntry* entry3 = tab->GetController().GetActiveEntry(); | 456 NavigationEntry* entry3 = tab->GetController().GetActiveEntry(); |
456 ASSERT_TRUE(entry1 == entry3); | 457 ASSERT_TRUE(entry1 == entry3); |
457 | 458 |
458 // Now go to a bad HTTPS page that shows an interstitial. | 459 // Now go to a bad HTTPS page that shows an interstitial. |
459 ui_test_utils::NavigateToURL(browser(), | 460 ui_test_utils::NavigateToURL(browser(), |
460 https_server_expired_.GetURL("files/ssl/google.html")); | 461 https_server_expired_.GetURL("files/ssl/google.html")); |
461 CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, | 462 CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, |
462 true); // Interstitial showing | 463 true); // Interstitial showing |
463 | 464 |
464 // Simulate user clicking and holding on forward button. | 465 // Simulate user clicking and holding on forward button. |
465 { | 466 { |
466 ui_test_utils::WindowedNotificationObserver observer( | 467 ui_test_utils::WindowedNotificationObserver observer( |
467 content::NOTIFICATION_LOAD_STOP, | 468 content::NOTIFICATION_LOAD_STOP, |
468 content::Source<NavigationController>(&tab->GetController())); | 469 content::Source<NavigationController>(&tab->GetController())); |
469 tab->GetController().GoToOffset(1); | 470 tab->GetController().GoToOffset(1); |
470 observer.Wait(); | 471 observer.Wait(); |
471 } | 472 } |
472 | 473 |
473 // We should be showing the second good page. | 474 // We should be showing the second good page. |
474 EXPECT_FALSE(browser()->GetSelectedTabContents()->GetInterstitialPage()); | 475 EXPECT_FALSE(browser()->GetSelectedTabContents()->GetInterstitialPage()); |
475 CheckUnauthenticatedState(tab); | 476 CheckUnauthenticatedState(tab); |
476 EXPECT_FALSE(tab->GetController().CanGoForward()); | 477 EXPECT_FALSE(tab->GetController().CanGoForward()); |
477 content::NavigationEntry* entry4 = tab->GetController().GetActiveEntry(); | 478 NavigationEntry* entry4 = tab->GetController().GetActiveEntry(); |
478 EXPECT_TRUE(entry2 == entry4); | 479 EXPECT_TRUE(entry2 == entry4); |
479 } | 480 } |
480 | 481 |
481 // Flaky on CrOS http://crbug.com/92292 | 482 // Flaky on CrOS http://crbug.com/92292 |
482 #if defined(OS_CHROMEOS) | 483 #if defined(OS_CHROMEOS) |
483 #define MAYBE_TestHTTPSErrorWithNoNavEntry \ | 484 #define MAYBE_TestHTTPSErrorWithNoNavEntry \ |
484 DISABLED_TestHTTPSErrorWithNoNavEntry | 485 DISABLED_TestHTTPSErrorWithNoNavEntry |
485 #else | 486 #else |
486 #define MAYBE_TestHTTPSErrorWithNoNavEntry TestHTTPSErrorWithNoNavEntry | 487 #define MAYBE_TestHTTPSErrorWithNoNavEntry TestHTTPSErrorWithNoNavEntry |
487 #endif // defined(OS_CHROMEOS) | 488 #endif // defined(OS_CHROMEOS) |
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1336 | 1337 |
1337 // Visit a page over https that contains a frame with a redirect. | 1338 // Visit a page over https that contains a frame with a redirect. |
1338 | 1339 |
1339 // XMLHttpRequest insecure content in synchronous mode. | 1340 // XMLHttpRequest insecure content in synchronous mode. |
1340 | 1341 |
1341 // XMLHttpRequest insecure content in asynchronous mode. | 1342 // XMLHttpRequest insecure content in asynchronous mode. |
1342 | 1343 |
1343 // XMLHttpRequest over bad ssl in synchronous mode. | 1344 // XMLHttpRequest over bad ssl in synchronous mode. |
1344 | 1345 |
1345 // XMLHttpRequest over OK ssl in synchronous mode. | 1346 // XMLHttpRequest over OK ssl in synchronous mode. |
OLD | NEW |