| 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 "chrome/browser/captive_portal/captive_portal_tab_helper.h" | 5 #include "chrome/browser/captive_portal/captive_portal_tab_helper.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "chrome/browser/captive_portal/captive_portal_service.h" | 9 #include "chrome/browser/captive_portal/captive_portal_service.h" |
| 10 #include "chrome/browser/captive_portal/captive_portal_tab_reloader.h" | 10 #include "chrome/browser/captive_portal/captive_portal_tab_reloader.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 void TearDown() override { | 81 void TearDown() override { |
| 82 web_contents2_.reset(NULL); | 82 web_contents2_.reset(NULL); |
| 83 web_contents1_.reset(NULL); | 83 web_contents1_.reset(NULL); |
| 84 ChromeRenderViewHostTestHarness::TearDown(); | 84 ChromeRenderViewHostTestHarness::TearDown(); |
| 85 } | 85 } |
| 86 | 86 |
| 87 // Simulates a successful load of |url|. | 87 // Simulates a successful load of |url|. |
| 88 void SimulateSuccess(const GURL& url, | 88 void SimulateSuccess(const GURL& url, |
| 89 content::RenderViewHost* render_view_host) { | 89 content::RenderViewHost* render_view_host) { |
| 90 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); | 90 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsCryptographic())) |
| 91 .Times(1); |
| 91 tab_helper().DidStartProvisionalLoadForFrame( | 92 tab_helper().DidStartProvisionalLoadForFrame( |
| 92 render_view_host->GetMainFrame(), url, false, false); | 93 render_view_host->GetMainFrame(), url, false, false); |
| 93 | 94 |
| 94 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 95 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
| 95 tab_helper().DidCommitProvisionalLoadForFrame( | 96 tab_helper().DidCommitProvisionalLoadForFrame( |
| 96 render_view_host->GetMainFrame(), | 97 render_view_host->GetMainFrame(), |
| 97 url, | 98 url, |
| 98 ui::PAGE_TRANSITION_LINK); | 99 ui::PAGE_TRANSITION_LINK); |
| 99 } | 100 } |
| 100 | 101 |
| 101 // Simulates a connection timeout while requesting |url|. | 102 // Simulates a connection timeout while requesting |url|. |
| 102 void SimulateTimeout(const GURL& url, | 103 void SimulateTimeout(const GURL& url, |
| 103 content::RenderViewHost* render_view_host) { | 104 content::RenderViewHost* render_view_host) { |
| 104 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); | 105 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsCryptographic())) |
| 106 .Times(1); |
| 105 tab_helper().DidStartProvisionalLoadForFrame( | 107 tab_helper().DidStartProvisionalLoadForFrame( |
| 106 render_view_host->GetMainFrame(), url, false, false); | 108 render_view_host->GetMainFrame(), url, false, false); |
| 107 | 109 |
| 108 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), | 110 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), |
| 109 url, | 111 url, |
| 110 net::ERR_TIMED_OUT, | 112 net::ERR_TIMED_OUT, |
| 111 base::string16()); | 113 base::string16()); |
| 112 | 114 |
| 113 // Provisional load starts for the error page. | 115 // Provisional load starts for the error page. |
| 114 tab_helper().DidStartProvisionalLoadForFrame( | 116 tab_helper().DidStartProvisionalLoadForFrame( |
| 115 render_view_host->GetMainFrame(), GURL(kErrorPageUrl), true, false); | 117 render_view_host->GetMainFrame(), GURL(kErrorPageUrl), true, false); |
| 116 | 118 |
| 117 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 119 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
| 118 tab_helper().DidCommitProvisionalLoadForFrame( | 120 tab_helper().DidCommitProvisionalLoadForFrame( |
| 119 render_view_host->GetMainFrame(), | 121 render_view_host->GetMainFrame(), |
| 120 GURL(kErrorPageUrl), | 122 GURL(kErrorPageUrl), |
| 121 ui::PAGE_TRANSITION_LINK); | 123 ui::PAGE_TRANSITION_LINK); |
| 122 } | 124 } |
| 123 | 125 |
| 124 // Simulates an abort while requesting |url|. | 126 // Simulates an abort while requesting |url|. |
| 125 void SimulateAbort(const GURL& url, | 127 void SimulateAbort(const GURL& url, |
| 126 content::RenderViewHost* render_view_host, | 128 content::RenderViewHost* render_view_host, |
| 127 NavigationType navigation_type) { | 129 NavigationType navigation_type) { |
| 128 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); | 130 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsCryptographic())) |
| 131 .Times(1); |
| 129 tab_helper().DidStartProvisionalLoadForFrame( | 132 tab_helper().DidStartProvisionalLoadForFrame( |
| 130 render_view_host->GetMainFrame(), url, false, false); | 133 render_view_host->GetMainFrame(), url, false, false); |
| 131 | 134 |
| 132 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 135 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
| 133 if (navigation_type == kSameProcess) { | 136 if (navigation_type == kSameProcess) { |
| 134 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), | 137 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), |
| 135 url, | 138 url, |
| 136 net::ERR_ABORTED, | 139 net::ERR_ABORTED, |
| 137 base::string16()); | 140 base::string16()); |
| 138 } else { | 141 } else { |
| 139 // For interrupted provisional cross-process navigations, the | 142 // For interrupted provisional cross-process navigations, the |
| 140 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad | 143 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad |
| 141 // notification. | 144 // notification. |
| 142 tab_helper().RenderViewDeleted(render_view_host); | 145 tab_helper().RenderViewDeleted(render_view_host); |
| 143 } | 146 } |
| 144 | 147 |
| 145 // Make sure that above call resulted in abort, for tests that continue | 148 // Make sure that above call resulted in abort, for tests that continue |
| 146 // after the abort. | 149 // after the abort. |
| 147 EXPECT_CALL(mock_reloader(), OnAbort()).Times(0); | 150 EXPECT_CALL(mock_reloader(), OnAbort()).Times(0); |
| 148 } | 151 } |
| 149 | 152 |
| 150 // Simulates an abort while loading an error page. | 153 // Simulates an abort while loading an error page. |
| 151 void SimulateAbortTimeout(const GURL& url, | 154 void SimulateAbortTimeout(const GURL& url, |
| 152 content::RenderViewHost* render_view_host, | 155 content::RenderViewHost* render_view_host, |
| 153 NavigationType navigation_type) { | 156 NavigationType navigation_type) { |
| 154 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); | 157 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsCryptographic())) |
| 158 .Times(1); |
| 155 tab_helper().DidStartProvisionalLoadForFrame( | 159 tab_helper().DidStartProvisionalLoadForFrame( |
| 156 render_view_host->GetMainFrame(), url, false, false); | 160 render_view_host->GetMainFrame(), url, false, false); |
| 157 | 161 |
| 158 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), | 162 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), |
| 159 url, | 163 url, |
| 160 net::ERR_TIMED_OUT, | 164 net::ERR_TIMED_OUT, |
| 161 base::string16()); | 165 base::string16()); |
| 162 | 166 |
| 163 // Start event for the error page. | 167 // Start event for the error page. |
| 164 tab_helper().DidStartProvisionalLoadForFrame( | 168 tab_helper().DidStartProvisionalLoadForFrame( |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 } | 331 } |
| 328 | 332 |
| 329 // A provisional same-site navigation is interrupted by a cross-process | 333 // A provisional same-site navigation is interrupted by a cross-process |
| 330 // navigation without sending an abort first. | 334 // navigation without sending an abort first. |
| 331 TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) { | 335 TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) { |
| 332 GURL same_site_url = GURL(kHttpUrl); | 336 GURL same_site_url = GURL(kHttpUrl); |
| 333 GURL cross_process_url = GURL(kHttpsUrl2); | 337 GURL cross_process_url = GURL(kHttpsUrl2); |
| 334 | 338 |
| 335 // A same-site load for the original RenderViewHost starts. | 339 // A same-site load for the original RenderViewHost starts. |
| 336 EXPECT_CALL(mock_reloader(), | 340 EXPECT_CALL(mock_reloader(), |
| 337 OnLoadStart(same_site_url.SchemeUsesTLS())).Times(1); | 341 OnLoadStart(same_site_url.SchemeIsCryptographic())).Times(1); |
| 338 tab_helper().DidStartProvisionalLoadForFrame( | 342 tab_helper().DidStartProvisionalLoadForFrame( |
| 339 main_render_frame1(), same_site_url, false, false); | 343 main_render_frame1(), same_site_url, false, false); |
| 340 | 344 |
| 341 // It's unexpectedly interrupted by a cross-process navigation, which starts | 345 // It's unexpectedly interrupted by a cross-process navigation, which starts |
| 342 // navigating before the old navigation cancels. We generate an abort message | 346 // navigating before the old navigation cancels. We generate an abort message |
| 343 // for the old navigation. | 347 // for the old navigation. |
| 344 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 348 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
| 345 EXPECT_CALL(mock_reloader(), | 349 EXPECT_CALL(mock_reloader(), |
| 346 OnLoadStart(cross_process_url.SchemeUsesTLS())).Times(1); | 350 OnLoadStart(cross_process_url.SchemeIsCryptographic())).Times(1); |
| 347 tab_helper().DidStartProvisionalLoadForFrame( | 351 tab_helper().DidStartProvisionalLoadForFrame( |
| 348 main_render_frame2(), cross_process_url, false, false); | 352 main_render_frame2(), cross_process_url, false, false); |
| 349 | 353 |
| 350 // The cross-process navigation fails. | 354 // The cross-process navigation fails. |
| 351 tab_helper().DidFailProvisionalLoad(main_render_frame2(), | 355 tab_helper().DidFailProvisionalLoad(main_render_frame2(), |
| 352 cross_process_url, | 356 cross_process_url, |
| 353 net::ERR_FAILED, | 357 net::ERR_FAILED, |
| 354 base::string16()); | 358 base::string16()); |
| 355 | 359 |
| 356 // The same-site navigation finally is aborted. | 360 // The same-site navigation finally is aborted. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 371 } | 375 } |
| 372 | 376 |
| 373 // Similar to the above test, except the original RenderViewHost manages to | 377 // Similar to the above test, except the original RenderViewHost manages to |
| 374 // commit before its navigation is aborted. | 378 // commit before its navigation is aborted. |
| 375 TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) { | 379 TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) { |
| 376 GURL same_site_url = GURL(kHttpUrl); | 380 GURL same_site_url = GURL(kHttpUrl); |
| 377 GURL cross_process_url = GURL(kHttpsUrl2); | 381 GURL cross_process_url = GURL(kHttpsUrl2); |
| 378 | 382 |
| 379 // A same-site load for the original RenderViewHost starts. | 383 // A same-site load for the original RenderViewHost starts. |
| 380 EXPECT_CALL(mock_reloader(), | 384 EXPECT_CALL(mock_reloader(), |
| 381 OnLoadStart(same_site_url.SchemeUsesTLS())).Times(1); | 385 OnLoadStart(same_site_url.SchemeIsCryptographic())).Times(1); |
| 382 tab_helper().DidStartProvisionalLoadForFrame( | 386 tab_helper().DidStartProvisionalLoadForFrame( |
| 383 main_render_frame1(), same_site_url, false, false); | 387 main_render_frame1(), same_site_url, false, false); |
| 384 | 388 |
| 385 // It's unexpectedly interrupted by a cross-process navigation, which starts | 389 // It's unexpectedly interrupted by a cross-process navigation, which starts |
| 386 // navigating before the old navigation cancels. We generate an abort message | 390 // navigating before the old navigation cancels. We generate an abort message |
| 387 // for the old navigation. | 391 // for the old navigation. |
| 388 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 392 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
| 389 EXPECT_CALL(mock_reloader(), | 393 EXPECT_CALL(mock_reloader(), |
| 390 OnLoadStart(cross_process_url.SchemeUsesTLS())).Times(1); | 394 OnLoadStart(cross_process_url.SchemeIsCryptographic())).Times(1); |
| 391 tab_helper().DidStartProvisionalLoadForFrame( | 395 tab_helper().DidStartProvisionalLoadForFrame( |
| 392 main_render_frame2(), cross_process_url, false, false); | 396 main_render_frame2(), cross_process_url, false, false); |
| 393 | 397 |
| 394 // The cross-process navigation fails. | 398 // The cross-process navigation fails. |
| 395 tab_helper().DidFailProvisionalLoad(main_render_frame2(), | 399 tab_helper().DidFailProvisionalLoad(main_render_frame2(), |
| 396 cross_process_url, | 400 cross_process_url, |
| 397 net::ERR_FAILED, | 401 net::ERR_FAILED, |
| 398 base::string16()); | 402 base::string16()); |
| 399 | 403 |
| 400 // The same-site navigation succeeds. | 404 // The same-site navigation succeeds. |
| 401 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 405 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
| 402 EXPECT_CALL(mock_reloader(), | 406 EXPECT_CALL(mock_reloader(), |
| 403 OnLoadStart(same_site_url.SchemeUsesTLS())).Times(1); | 407 OnLoadStart(same_site_url.SchemeIsCryptographic())).Times(1); |
| 404 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 408 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
| 405 tab_helper().DidCommitProvisionalLoadForFrame( | 409 tab_helper().DidCommitProvisionalLoadForFrame( |
| 406 main_render_frame1(), same_site_url, ui::PAGE_TRANSITION_LINK); | 410 main_render_frame1(), same_site_url, ui::PAGE_TRANSITION_LINK); |
| 407 } | 411 } |
| 408 | 412 |
| 409 // Simulates navigations for a number of subframes, and makes sure no | 413 // Simulates navigations for a number of subframes, and makes sure no |
| 410 // CaptivePortalTabHelper function is called. | 414 // CaptivePortalTabHelper function is called. |
| 411 TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) { | 415 TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) { |
| 412 GURL url = GURL(kHttpsUrl); | 416 GURL url = GURL(kHttpsUrl); |
| 413 | 417 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 443 // but with a different error code. Make sure the TabHelper sees the correct | 447 // but with a different error code. Make sure the TabHelper sees the correct |
| 444 // error. | 448 // error. |
| 445 TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) { | 449 TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) { |
| 446 // URL used by both frames. | 450 // URL used by both frames. |
| 447 GURL url = GURL(kHttpsUrl); | 451 GURL url = GURL(kHttpsUrl); |
| 448 content::RenderFrameHost* subframe = | 452 content::RenderFrameHost* subframe = |
| 449 content::RenderFrameHostTester::For(main_render_frame1()) | 453 content::RenderFrameHostTester::For(main_render_frame1()) |
| 450 ->AppendChild("subframe"); | 454 ->AppendChild("subframe"); |
| 451 | 455 |
| 452 // Loads start. | 456 // Loads start. |
| 453 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); | 457 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsCryptographic())) |
| 458 .Times(1); |
| 454 tab_helper().DidStartProvisionalLoadForFrame( | 459 tab_helper().DidStartProvisionalLoadForFrame( |
| 455 main_render_frame1(), url, false, false); | 460 main_render_frame1(), url, false, false); |
| 456 tab_helper().DidStartProvisionalLoadForFrame(subframe, url, false, false); | 461 tab_helper().DidStartProvisionalLoadForFrame(subframe, url, false, false); |
| 457 | 462 |
| 458 // Loads return errors. | 463 // Loads return errors. |
| 459 tab_helper().DidFailProvisionalLoad( | 464 tab_helper().DidFailProvisionalLoad( |
| 460 main_render_frame1(), url, net::ERR_UNEXPECTED, base::string16()); | 465 main_render_frame1(), url, net::ERR_UNEXPECTED, base::string16()); |
| 461 tab_helper().DidFailProvisionalLoad( | 466 tab_helper().DidFailProvisionalLoad( |
| 462 subframe, url, net::ERR_TIMED_OUT, base::string16()); | 467 subframe, url, net::ERR_TIMED_OUT, base::string16()); |
| 463 | 468 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 | 503 |
| 499 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 504 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
| 500 tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(), | 505 tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(), |
| 501 GURL(kErrorPageUrl), | 506 GURL(kErrorPageUrl), |
| 502 ui::PAGE_TRANSITION_LINK); | 507 ui::PAGE_TRANSITION_LINK); |
| 503 } | 508 } |
| 504 | 509 |
| 505 // Simulates an HTTPS to HTTP redirect. | 510 // Simulates an HTTPS to HTTP redirect. |
| 506 TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) { | 511 TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) { |
| 507 GURL https_url(kHttpsUrl); | 512 GURL https_url(kHttpsUrl); |
| 508 EXPECT_CALL(mock_reloader(), | 513 EXPECT_CALL(mock_reloader(), OnLoadStart(https_url.SchemeIsCryptographic())) |
| 509 OnLoadStart(https_url.SchemeUsesTLS())).Times(1); | 514 .Times(1); |
| 510 tab_helper().DidStartProvisionalLoadForFrame( | 515 tab_helper().DidStartProvisionalLoadForFrame( |
| 511 main_render_frame1(), https_url, false, false); | 516 main_render_frame1(), https_url, false, false); |
| 512 | 517 |
| 513 GURL http_url(kHttpUrl); | 518 GURL http_url(kHttpUrl); |
| 514 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeUsesTLS())).Times(1); | 519 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsCryptographic())) |
| 520 .Times(1); |
| 515 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, | 521 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, |
| 516 render_view_host1()->GetProcess()->GetID()); | 522 render_view_host1()->GetProcess()->GetID()); |
| 517 | 523 |
| 518 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 524 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
| 519 tab_helper().DidCommitProvisionalLoadForFrame( | 525 tab_helper().DidCommitProvisionalLoadForFrame( |
| 520 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); | 526 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); |
| 521 } | 527 } |
| 522 | 528 |
| 523 // Simulates an HTTPS to HTTPS redirect. | 529 // Simulates an HTTPS to HTTPS redirect. |
| 524 TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) { | 530 TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) { |
| 525 GURL http_url(kHttpUrl); | 531 GURL http_url(kHttpUrl); |
| 526 EXPECT_CALL(mock_reloader(), | 532 EXPECT_CALL(mock_reloader(), OnLoadStart(http_url.SchemeIsCryptographic())) |
| 527 OnLoadStart(http_url.SchemeUsesTLS())).Times(1); | 533 .Times(1); |
| 528 tab_helper().DidStartProvisionalLoadForFrame( | 534 tab_helper().DidStartProvisionalLoadForFrame( |
| 529 main_render_frame1(), http_url, false, false); | 535 main_render_frame1(), http_url, false, false); |
| 530 | 536 |
| 531 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeUsesTLS())).Times(1); | 537 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsCryptographic())) |
| 538 .Times(1); |
| 532 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, | 539 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, |
| 533 render_view_host1()->GetProcess()->GetID()); | 540 render_view_host1()->GetProcess()->GetID()); |
| 534 | 541 |
| 535 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 542 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
| 536 tab_helper().DidCommitProvisionalLoadForFrame( | 543 tab_helper().DidCommitProvisionalLoadForFrame( |
| 537 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); | 544 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); |
| 538 } | 545 } |
| 539 | 546 |
| 540 // Tests that a subframe redirect doesn't reset the timer to kick off a captive | 547 // Tests that a subframe redirect doesn't reset the timer to kick off a captive |
| 541 // portal probe for the main frame if the main frame request is taking too long. | 548 // portal probe for the main frame if the main frame request is taking too long. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 EXPECT_FALSE(tab_helper().IsLoginTab()); | 639 EXPECT_FALSE(tab_helper().IsLoginTab()); |
| 633 | 640 |
| 634 ObservePortalResult(captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL, | 641 ObservePortalResult(captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL, |
| 635 captive_portal::RESULT_NO_RESPONSE); | 642 captive_portal::RESULT_NO_RESPONSE); |
| 636 EXPECT_FALSE(tab_helper().IsLoginTab()); | 643 EXPECT_FALSE(tab_helper().IsLoginTab()); |
| 637 | 644 |
| 638 ObservePortalResult(captive_portal::RESULT_NO_RESPONSE, | 645 ObservePortalResult(captive_portal::RESULT_NO_RESPONSE, |
| 639 captive_portal::RESULT_INTERNET_CONNECTED); | 646 captive_portal::RESULT_INTERNET_CONNECTED); |
| 640 EXPECT_FALSE(tab_helper().IsLoginTab()); | 647 EXPECT_FALSE(tab_helper().IsLoginTab()); |
| 641 } | 648 } |
| OLD | NEW |