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

Side by Side Diff: chrome/browser/ssl/ssl_browser_tests.cc

Issue 8956059: Rename NavigationController to NavigationControllerImpl and put it into the content namespace. Al... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 12 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 | Annotate | Revision Log
OLDNEW
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
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
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
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
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.
OLDNEW
« no previous file with comments | « chrome/browser/ssl/ssl_blocking_page.cc ('k') | chrome/browser/sync/glue/session_model_associator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698