| Index: components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_blocking_page_unittest.cc
|
| diff --git a/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_blocking_page_unittest.cc b/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_blocking_page_unittest.cc
|
| index 0effde665ae2b4970463e4a7a4f90ad840bba5c8..cbeff960ae384943019dddcb93f18afbc0ae4d3e 100644
|
| --- a/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_blocking_page_unittest.cc
|
| +++ b/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_blocking_page_unittest.cc
|
| @@ -104,29 +104,52 @@ class DataReductionProxyDebugBlockingPageTest
|
| user_response_ = CANCEL;
|
| }
|
|
|
| - void Navigate(const char* url, int page_id) {
|
| + void Navigate(const char* url,
|
| + int page_id,
|
| + int nav_entry_id,
|
| + bool did_create_new_entry) {
|
| + NavigateCrossSite(url, page_id, nav_entry_id, did_create_new_entry, false);
|
| + }
|
| +
|
| + void NavigateCrossSite(const char* url,
|
| + int page_id,
|
| + int nav_entry_id,
|
| + bool did_create_new_entry,
|
| + bool is_cross_site) {
|
| + // The pending RVH should commit for cross-site navigations.
|
| + content::RenderFrameHost* render_frame_host = is_cross_site ?
|
| + content::WebContentsTester::For(
|
| + web_contents())->GetPendingMainFrame() :
|
| + web_contents()->GetMainFrame();
|
| +
|
| content::WebContentsTester::For(web_contents())->TestDidNavigate(
|
| - web_contents()->GetMainFrame(), page_id, GURL(url),
|
| + render_frame_host,
|
| + page_id,
|
| + nav_entry_id,
|
| + did_create_new_entry,
|
| + GURL(url),
|
| ui::PAGE_TRANSITION_TYPED);
|
| }
|
|
|
| void GoBack(bool is_cross_site) {
|
| - content::NavigationEntry* entry =
|
| - web_contents()->GetController().GetEntryAtOffset(-1);
|
| - ASSERT_TRUE(entry);
|
| - web_contents()->GetController().GoBack();
|
| -
|
| - // The pending RVH should commit for cross-site navigations.
|
| - content::RenderFrameHost* render_frame_host = is_cross_site ?
|
| - content::WebContentsTester::For(
|
| - web_contents())->GetPendingMainFrame() :
|
| - web_contents()->GetMainFrame();
|
| - content::WebContentsTester::For(web_contents())->TestDidNavigate(
|
| - render_frame_host,
|
| - entry->GetPageID(),
|
| - GURL(entry->GetURL()),
|
| - ui::PAGE_TRANSITION_TYPED);
|
| - }
|
| + content::NavigationEntry* entry =
|
| + web_contents()->GetController().GetEntryAtOffset(-1);
|
| + ASSERT_TRUE(entry);
|
| + web_contents()->GetController().GoBack();
|
| +
|
| + // The pending RVH should commit for cross-site navigations.
|
| + content::RenderFrameHost* render_frame_host = is_cross_site ?
|
| + content::WebContentsTester::For(
|
| + web_contents())->GetPendingMainFrame() :
|
| + web_contents()->GetMainFrame();
|
| + content::WebContentsTester::For(web_contents())->TestDidNavigate(
|
| + render_frame_host,
|
| + entry->GetPageID(),
|
| + entry->GetUniqueID(),
|
| + false,
|
| + GURL(entry->GetURL()),
|
| + ui::PAGE_TRANSITION_TYPED);
|
| + }
|
|
|
| void ShowInterstitial(bool is_subresource, const char* url) {
|
| DataReductionProxyDebugUIManager::BypassResource resource;
|
| @@ -229,6 +252,7 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, BypassPageProceed) {
|
| // Start a load.
|
| controller().LoadURL(GURL(kBypassURL), content::Referrer(),
|
| ui::PAGE_TRANSITION_TYPED, std::string());
|
| + int pending_id = controller().GetPendingEntry()->GetUniqueID();
|
|
|
| // Simulate the load causing an interstitial to be shown.
|
| ShowInterstitial(false, kBypassURL);
|
| @@ -244,7 +268,7 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, BypassPageProceed) {
|
| // The interstitial is shown until the navigation commits.
|
| ASSERT_TRUE(GetDataReductionProxyDebugBlockingPage());
|
| // Commit the navigation.
|
| - Navigate(kBypassURL, 1);
|
| + Navigate(kBypassURL, 1, pending_id, true);
|
| // The interstitial should be gone now.
|
| EXPECT_EQ(OK, user_response());
|
| ASSERT_FALSE(GetDataReductionProxyDebugBlockingPage());
|
| @@ -254,10 +278,10 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, BypassPageProceed) {
|
| // and not proceeding.
|
| TEST_F(DataReductionProxyDebugBlockingPageTest, BypassSubresourceDontProceed) {
|
| // Navigate somewhere.
|
| - Navigate(kGoogleURL, 1);
|
| + Navigate(kGoogleURL, 1, 0, true);
|
|
|
| // Navigate somewhere else.
|
| - Navigate(kOtherURL, 2);
|
| + Navigate(kOtherURL, 2, 0, true);
|
|
|
| // Simulate that page loading a bypass-resource triggering an interstitial.
|
| ShowInterstitial(true, kBypassURL);
|
| @@ -283,7 +307,7 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, BypassSubresourceDontProceed) {
|
| // and proceeding.
|
| TEST_F(DataReductionProxyDebugBlockingPageTest, BypassSubresourceProceed) {
|
| // Navigate somewhere.
|
| - Navigate(kGoogleURL, 1);
|
| + Navigate(kGoogleURL, 1, 0, true);
|
|
|
| // Simulate that page loading a bypass-resource triggering an interstitial.
|
| ShowInterstitial(true, kBypassURL);
|
| @@ -310,15 +334,15 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, BypassSubresourceProceed) {
|
| TEST_F(DataReductionProxyDebugBlockingPageTest,
|
| BypassMultipleSubresourcesDontProceed) {
|
| // Navigate somewhere.
|
| - Navigate(kGoogleURL, 1);
|
| + Navigate(kGoogleURL, 1, 0, true);
|
|
|
| // Navigate somewhere else.
|
| - Navigate(kOtherURL, 2);
|
| + Navigate(kOtherURL, 2, 0, true);
|
|
|
| // Simulate that page loading a bypass-resource triggering an interstitial.
|
| ShowInterstitial(true, kBypassURL);
|
|
|
| - // More bypassedd resources loading causing more interstitials. The new
|
| + // More bypassed resources loading causing more interstitials. The new
|
| // interstitials should be queued.
|
| ShowInterstitial(true, kBypassURL2);
|
| ShowInterstitial(true, kBypassURL3);
|
| @@ -332,7 +356,7 @@ TEST_F(DataReductionProxyDebugBlockingPageTest,
|
| EXPECT_EQ(CANCEL, user_response());
|
| EXPECT_FALSE(GetDataReductionProxyDebugBlockingPage());
|
|
|
| - // The user did not proceed, the controler should be back to the first page,
|
| + // The user did not proceed, the controller should be back to the first page,
|
| // the 2nd one should have been removed from the navigation controller.
|
| ASSERT_EQ(1, controller().GetEntryCount());
|
| EXPECT_EQ(kGoogleURL, controller().GetActiveEntry()->GetURL().spec());
|
| @@ -344,7 +368,7 @@ TEST_F(DataReductionProxyDebugBlockingPageTest,
|
| TEST_F(DataReductionProxyDebugBlockingPageTest,
|
| BypassMultipleSubresourcesProceed) {
|
| // Navigate somewhere.
|
| - Navigate(kGoogleURL, 1);
|
| + Navigate(kGoogleURL, 1, 0, true);
|
|
|
| // Simulate that page loading a bypass-resource triggering an interstitial.
|
| ShowInterstitial(true, kBypassURL);
|
| @@ -371,11 +395,12 @@ TEST_F(DataReductionProxyDebugBlockingPageTest,
|
| // controller entries are OK.
|
| TEST_F(DataReductionProxyDebugBlockingPageTest, NavigatingBackAndForth) {
|
| // Navigate somewhere.
|
| - Navigate(kGoogleURL, 1);
|
| + Navigate(kGoogleURL, 1, 0, true);
|
|
|
| // Now navigate to a bypassed page triggerring an interstitial.
|
| controller().LoadURL(GURL(kBypassURL), content::Referrer(),
|
| ui::PAGE_TRANSITION_TYPED, std::string());
|
| + int pending_id = controller().GetPendingEntry()->GetUniqueID();
|
| ShowInterstitial(false, kBypassURL);
|
| DataReductionProxyDebugBlockingPage* interstitial =
|
| GetDataReductionProxyDebugBlockingPage();
|
| @@ -383,7 +408,7 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, NavigatingBackAndForth) {
|
|
|
| // Proceed through the 1st interstitial.
|
| ProceedThroughInterstitial(interstitial);
|
| - Navigate(kBypassURL, 2); // Commit the navigation.
|
| + Navigate(kBypassURL, 2, pending_id, true); // Commit navigation.
|
| GoBack(true);
|
|
|
| // We are back on the first page.
|
| @@ -394,13 +419,15 @@ TEST_F(DataReductionProxyDebugBlockingPageTest, NavigatingBackAndForth) {
|
|
|
| // Navigate forward to the bypassed URL.
|
| web_contents()->GetController().GoForward();
|
| + pending_id = controller().GetPendingEntry()->GetUniqueID();
|
| ShowInterstitial(false, kBypassURL);
|
| interstitial = GetDataReductionProxyDebugBlockingPage();
|
| ASSERT_TRUE(interstitial);
|
|
|
| // Let's proceed and make sure everything is OK.
|
| ProceedThroughInterstitial(interstitial);
|
| - Navigate(kBypassURL, 2); // Commit the navigation.
|
| + // Commit the navigation.
|
| + NavigateCrossSite(kBypassURL, 2, pending_id, false, true);
|
| interstitial = GetDataReductionProxyDebugBlockingPage();
|
| ASSERT_FALSE(interstitial);
|
| ASSERT_EQ(2, controller().GetEntryCount());
|
|
|