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

Side by Side Diff: content/browser/frame_host/navigation_controller_impl_unittest.cc

Issue 1545243002: Convert Pass()→std::move() in //content/browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/frame_host/navigation_controller_impl.h"
6
5 #include <stddef.h> 7 #include <stddef.h>
6 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility>
7 10
8 #include "base/bind.h" 11 #include "base/bind.h"
9 #include "base/files/file_util.h" 12 #include "base/files/file_util.h"
10 #include "base/macros.h" 13 #include "base/macros.h"
11 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
12 #include "base/stl_util.h" 15 #include "base/stl_util.h"
13 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
14 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
15 #include "base/time/time.h" 18 #include "base/time/time.h"
16 #include "build/build_config.h" 19 #include "build/build_config.h"
17 #include "content/browser/frame_host/cross_site_transferring_request.h" 20 #include "content/browser/frame_host/cross_site_transferring_request.h"
18 #include "content/browser/frame_host/frame_navigation_entry.h" 21 #include "content/browser/frame_host/frame_navigation_entry.h"
19 #include "content/browser/frame_host/navigation_controller_impl.h"
20 #include "content/browser/frame_host/navigation_entry_impl.h" 22 #include "content/browser/frame_host/navigation_entry_impl.h"
21 #include "content/browser/frame_host/navigation_entry_screenshot_manager.h" 23 #include "content/browser/frame_host/navigation_entry_screenshot_manager.h"
22 #include "content/browser/frame_host/navigation_request.h" 24 #include "content/browser/frame_host/navigation_request.h"
23 #include "content/browser/frame_host/navigator.h" 25 #include "content/browser/frame_host/navigator.h"
24 #include "content/browser/frame_host/navigator_impl.h" 26 #include "content/browser/frame_host/navigator_impl.h"
25 #include "content/browser/site_instance_impl.h" 27 #include "content/browser/site_instance_impl.h"
26 #include "content/browser/web_contents/web_contents_impl.h" 28 #include "content/browser/web_contents/web_contents_impl.h"
27 #include "content/common/frame_messages.h" 29 #include "content/common/frame_messages.h"
28 #include "content/common/site_isolation_policy.h" 30 #include "content/common/site_isolation_policy.h"
29 #include "content/common/ssl_status_serialization.h" 31 #include "content/common/ssl_status_serialization.h"
(...skipping 2764 matching lines...) Expand 10 before | Expand all | Expand 10 after
2794 std::vector<scoped_ptr<NavigationEntry>> entries; 2796 std::vector<scoped_ptr<NavigationEntry>> entries;
2795 scoped_ptr<NavigationEntry> entry = 2797 scoped_ptr<NavigationEntry> entry =
2796 NavigationControllerImpl::CreateNavigationEntry( 2798 NavigationControllerImpl::CreateNavigationEntry(
2797 url, Referrer(), ui::PAGE_TRANSITION_RELOAD, false, std::string(), 2799 url, Referrer(), ui::PAGE_TRANSITION_RELOAD, false, std::string(),
2798 browser_context()); 2800 browser_context());
2799 entry->SetPageID(0); 2801 entry->SetPageID(0);
2800 entry->SetTitle(base::ASCIIToUTF16("Title")); 2802 entry->SetTitle(base::ASCIIToUTF16("Title"));
2801 entry->SetPageState(PageState::CreateFromEncodedData("state")); 2803 entry->SetPageState(PageState::CreateFromEncodedData("state"));
2802 const base::Time timestamp = base::Time::Now(); 2804 const base::Time timestamp = base::Time::Now();
2803 entry->SetTimestamp(timestamp); 2805 entry->SetTimestamp(timestamp);
2804 entries.push_back(entry.Pass()); 2806 entries.push_back(std::move(entry));
2805 scoped_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>( 2807 scoped_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>(
2806 WebContents::Create(WebContents::CreateParams(browser_context())))); 2808 WebContents::Create(WebContents::CreateParams(browser_context()))));
2807 NavigationControllerImpl& our_controller = our_contents->GetController(); 2809 NavigationControllerImpl& our_controller = our_contents->GetController();
2808 our_controller.Restore( 2810 our_controller.Restore(
2809 0, 2811 0,
2810 NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY, 2812 NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY,
2811 &entries); 2813 &entries);
2812 ASSERT_EQ(0u, entries.size()); 2814 ASSERT_EQ(0u, entries.size());
2813 2815
2814 // Before navigating to the restored entry, it should have a restore_type 2816 // Before navigating to the restored entry, it should have a restore_type
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2865 // Create a NavigationController with a restored set of tabs. 2867 // Create a NavigationController with a restored set of tabs.
2866 GURL url("http://foo"); 2868 GURL url("http://foo");
2867 std::vector<scoped_ptr<NavigationEntry>> entries; 2869 std::vector<scoped_ptr<NavigationEntry>> entries;
2868 scoped_ptr<NavigationEntry> new_entry = 2870 scoped_ptr<NavigationEntry> new_entry =
2869 NavigationControllerImpl::CreateNavigationEntry( 2871 NavigationControllerImpl::CreateNavigationEntry(
2870 url, Referrer(), ui::PAGE_TRANSITION_RELOAD, false, std::string(), 2872 url, Referrer(), ui::PAGE_TRANSITION_RELOAD, false, std::string(),
2871 browser_context()); 2873 browser_context());
2872 new_entry->SetPageID(0); 2874 new_entry->SetPageID(0);
2873 new_entry->SetTitle(base::ASCIIToUTF16("Title")); 2875 new_entry->SetTitle(base::ASCIIToUTF16("Title"));
2874 new_entry->SetPageState(PageState::CreateFromEncodedData("state")); 2876 new_entry->SetPageState(PageState::CreateFromEncodedData("state"));
2875 entries.push_back(new_entry.Pass()); 2877 entries.push_back(std::move(new_entry));
2876 scoped_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>( 2878 scoped_ptr<WebContentsImpl> our_contents(static_cast<WebContentsImpl*>(
2877 WebContents::Create(WebContents::CreateParams(browser_context())))); 2879 WebContents::Create(WebContents::CreateParams(browser_context()))));
2878 NavigationControllerImpl& our_controller = our_contents->GetController(); 2880 NavigationControllerImpl& our_controller = our_contents->GetController();
2879 our_controller.Restore( 2881 our_controller.Restore(
2880 0, NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY, &entries); 2882 0, NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY, &entries);
2881 ASSERT_EQ(0u, entries.size()); 2883 ASSERT_EQ(0u, entries.size());
2882 2884
2883 // Ensure the RenderFrame is initialized before simulating events coming from 2885 // Ensure the RenderFrame is initialized before simulating events coming from
2884 // it. 2886 // it.
2885 main_test_rfh()->InitializeRenderFrameIfNeeded(); 2887 main_test_rfh()->InitializeRenderFrameIfNeeded();
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
3106 url1, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3108 url1, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
3107 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3109 entry_id = controller.GetPendingEntry()->GetUniqueID();
3108 main_test_rfh()->PrepareForCommit(); 3110 main_test_rfh()->PrepareForCommit();
3109 main_test_rfh()->SendNavigate(1, entry_id, true, url1); 3111 main_test_rfh()->SendNavigate(1, entry_id, true, url1);
3110 3112
3111 notifications.Reset(); 3113 notifications.Reset();
3112 3114
3113 // Adding a transient with no pending entry. 3115 // Adding a transient with no pending entry.
3114 scoped_ptr<NavigationEntry> transient_entry(new NavigationEntryImpl); 3116 scoped_ptr<NavigationEntry> transient_entry(new NavigationEntryImpl);
3115 transient_entry->SetURL(transient_url); 3117 transient_entry->SetURL(transient_url);
3116 controller.SetTransientEntry(transient_entry.Pass()); 3118 controller.SetTransientEntry(std::move(transient_entry));
3117 3119
3118 // We should not have received any notifications. 3120 // We should not have received any notifications.
3119 EXPECT_EQ(0U, notifications.size()); 3121 EXPECT_EQ(0U, notifications.size());
3120 3122
3121 // Check our state. 3123 // Check our state.
3122 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3124 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3123 EXPECT_EQ(controller.GetEntryCount(), 3); 3125 EXPECT_EQ(controller.GetEntryCount(), 3);
3124 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 1); 3126 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 1);
3125 EXPECT_EQ(controller.GetPendingEntryIndex(), -1); 3127 EXPECT_EQ(controller.GetPendingEntryIndex(), -1);
3126 EXPECT_TRUE(controller.GetLastCommittedEntry()); 3128 EXPECT_TRUE(controller.GetLastCommittedEntry());
3127 EXPECT_FALSE(controller.GetPendingEntry()); 3129 EXPECT_FALSE(controller.GetPendingEntry());
3128 EXPECT_TRUE(controller.CanGoBack()); 3130 EXPECT_TRUE(controller.CanGoBack());
3129 EXPECT_FALSE(controller.CanGoForward()); 3131 EXPECT_FALSE(controller.CanGoForward());
3130 EXPECT_EQ(contents()->GetMaxPageID(), 1); 3132 EXPECT_EQ(contents()->GetMaxPageID(), 1);
3131 3133
3132 // Navigate. 3134 // Navigate.
3133 controller.LoadURL( 3135 controller.LoadURL(
3134 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3136 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
3135 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3137 entry_id = controller.GetPendingEntry()->GetUniqueID();
3136 main_test_rfh()->PrepareForCommit(); 3138 main_test_rfh()->PrepareForCommit();
3137 main_test_rfh()->SendNavigate(2, entry_id, true, url2); 3139 main_test_rfh()->SendNavigate(2, entry_id, true, url2);
3138 3140
3139 // We should have navigated, transient entry should be gone. 3141 // We should have navigated, transient entry should be gone.
3140 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 3142 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
3141 EXPECT_EQ(controller.GetEntryCount(), 3); 3143 EXPECT_EQ(controller.GetEntryCount(), 3);
3142 3144
3143 // Add a transient again, then navigate with no pending entry this time. 3145 // Add a transient again, then navigate with no pending entry this time.
3144 transient_entry.reset(new NavigationEntryImpl); 3146 transient_entry.reset(new NavigationEntryImpl);
3145 transient_entry->SetURL(transient_url); 3147 transient_entry->SetURL(transient_url);
3146 controller.SetTransientEntry(transient_entry.Pass()); 3148 controller.SetTransientEntry(std::move(transient_entry));
3147 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3149 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3148 main_test_rfh()->SendRendererInitiatedNavigationRequest(url3, true); 3150 main_test_rfh()->SendRendererInitiatedNavigationRequest(url3, true);
3149 main_test_rfh()->PrepareForCommit(); 3151 main_test_rfh()->PrepareForCommit();
3150 main_test_rfh()->SendNavigate(3, 0, true, url3); 3152 main_test_rfh()->SendNavigate(3, 0, true, url3);
3151 // Transient entry should be gone. 3153 // Transient entry should be gone.
3152 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL()); 3154 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL());
3153 EXPECT_EQ(controller.GetEntryCount(), 4); 3155 EXPECT_EQ(controller.GetEntryCount(), 4);
3154 3156
3155 // Initiate a navigation, add a transient then commit navigation. 3157 // Initiate a navigation, add a transient then commit navigation.
3156 controller.LoadURL( 3158 controller.LoadURL(
3157 url4, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3159 url4, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
3158 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3160 entry_id = controller.GetPendingEntry()->GetUniqueID();
3159 transient_entry.reset(new NavigationEntryImpl); 3161 transient_entry.reset(new NavigationEntryImpl);
3160 transient_entry->SetURL(transient_url); 3162 transient_entry->SetURL(transient_url);
3161 controller.SetTransientEntry(transient_entry.Pass()); 3163 controller.SetTransientEntry(std::move(transient_entry));
3162 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3164 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3163 main_test_rfh()->PrepareForCommit(); 3165 main_test_rfh()->PrepareForCommit();
3164 main_test_rfh()->SendNavigate(4, entry_id, true, url4); 3166 main_test_rfh()->SendNavigate(4, entry_id, true, url4);
3165 EXPECT_EQ(url4, controller.GetVisibleEntry()->GetURL()); 3167 EXPECT_EQ(url4, controller.GetVisibleEntry()->GetURL());
3166 EXPECT_EQ(controller.GetEntryCount(), 5); 3168 EXPECT_EQ(controller.GetEntryCount(), 5);
3167 3169
3168 // Add a transient and go back. This should simply remove the transient. 3170 // Add a transient and go back. This should simply remove the transient.
3169 transient_entry.reset(new NavigationEntryImpl); 3171 transient_entry.reset(new NavigationEntryImpl);
3170 transient_entry->SetURL(transient_url); 3172 transient_entry->SetURL(transient_url);
3171 controller.SetTransientEntry(transient_entry.Pass()); 3173 controller.SetTransientEntry(std::move(transient_entry));
3172 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3174 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3173 EXPECT_TRUE(controller.CanGoBack()); 3175 EXPECT_TRUE(controller.CanGoBack());
3174 EXPECT_FALSE(controller.CanGoForward()); 3176 EXPECT_FALSE(controller.CanGoForward());
3175 controller.GoBack(); 3177 controller.GoBack();
3176 // Transient entry should be gone. 3178 // Transient entry should be gone.
3177 EXPECT_EQ(url4, controller.GetVisibleEntry()->GetURL()); 3179 EXPECT_EQ(url4, controller.GetVisibleEntry()->GetURL());
3178 EXPECT_EQ(controller.GetEntryCount(), 5); 3180 EXPECT_EQ(controller.GetEntryCount(), 5);
3179 3181
3180 // Suppose the page requested a history navigation backward. 3182 // Suppose the page requested a history navigation backward.
3181 controller.GoToOffset(-1); 3183 controller.GoToOffset(-1);
3182 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3184 entry_id = controller.GetPendingEntry()->GetUniqueID();
3183 main_test_rfh()->PrepareForCommit(); 3185 main_test_rfh()->PrepareForCommit();
3184 main_test_rfh()->SendNavigate(3, entry_id, false, url3); 3186 main_test_rfh()->SendNavigate(3, entry_id, false, url3);
3185 3187
3186 // Add a transient and go to an entry before the current one. 3188 // Add a transient and go to an entry before the current one.
3187 transient_entry.reset(new NavigationEntryImpl); 3189 transient_entry.reset(new NavigationEntryImpl);
3188 transient_entry->SetURL(transient_url); 3190 transient_entry->SetURL(transient_url);
3189 controller.SetTransientEntry(transient_entry.Pass()); 3191 controller.SetTransientEntry(std::move(transient_entry));
3190 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3192 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3191 controller.GoToIndex(1); 3193 controller.GoToIndex(1);
3192 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3194 entry_id = controller.GetPendingEntry()->GetUniqueID();
3193 // The navigation should have been initiated, transient entry should be gone. 3195 // The navigation should have been initiated, transient entry should be gone.
3194 EXPECT_FALSE(controller.GetTransientEntry()); 3196 EXPECT_FALSE(controller.GetTransientEntry());
3195 EXPECT_EQ(url1, controller.GetPendingEntry()->GetURL()); 3197 EXPECT_EQ(url1, controller.GetPendingEntry()->GetURL());
3196 // Visible entry does not update for history navigations until commit. 3198 // Visible entry does not update for history navigations until commit.
3197 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL()); 3199 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL());
3198 main_test_rfh()->PrepareForCommit(); 3200 main_test_rfh()->PrepareForCommit();
3199 main_test_rfh()->SendNavigate(1, entry_id, false, url1); 3201 main_test_rfh()->SendNavigate(1, entry_id, false, url1);
3200 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL()); 3202 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL());
3201 3203
3202 // Add a transient and go to an entry after the current one. 3204 // Add a transient and go to an entry after the current one.
3203 transient_entry.reset(new NavigationEntryImpl); 3205 transient_entry.reset(new NavigationEntryImpl);
3204 transient_entry->SetURL(transient_url); 3206 transient_entry->SetURL(transient_url);
3205 controller.SetTransientEntry(transient_entry.Pass()); 3207 controller.SetTransientEntry(std::move(transient_entry));
3206 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3208 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3207 controller.GoToIndex(3); 3209 controller.GoToIndex(3);
3208 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3210 entry_id = controller.GetPendingEntry()->GetUniqueID();
3209 // The navigation should have been initiated, transient entry should be gone. 3211 // The navigation should have been initiated, transient entry should be gone.
3210 // Because of the transient entry that is removed, going to index 3 makes us 3212 // Because of the transient entry that is removed, going to index 3 makes us
3211 // land on url2 (which is visible after the commit). 3213 // land on url2 (which is visible after the commit).
3212 EXPECT_EQ(url2, controller.GetPendingEntry()->GetURL()); 3214 EXPECT_EQ(url2, controller.GetPendingEntry()->GetURL());
3213 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL()); 3215 EXPECT_EQ(url1, controller.GetVisibleEntry()->GetURL());
3214 main_test_rfh()->PrepareForCommit(); 3216 main_test_rfh()->PrepareForCommit();
3215 main_test_rfh()->SendNavigate(2, entry_id, false, url2); 3217 main_test_rfh()->SendNavigate(2, entry_id, false, url2);
3216 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 3218 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
3217 3219
3218 // Add a transient and go forward. 3220 // Add a transient and go forward.
3219 transient_entry.reset(new NavigationEntryImpl); 3221 transient_entry.reset(new NavigationEntryImpl);
3220 transient_entry->SetURL(transient_url); 3222 transient_entry->SetURL(transient_url);
3221 controller.SetTransientEntry(transient_entry.Pass()); 3223 controller.SetTransientEntry(std::move(transient_entry));
3222 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3224 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3223 EXPECT_TRUE(controller.CanGoForward()); 3225 EXPECT_TRUE(controller.CanGoForward());
3224 controller.GoForward(); 3226 controller.GoForward();
3225 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3227 entry_id = controller.GetPendingEntry()->GetUniqueID();
3226 // We should have navigated, transient entry should be gone. 3228 // We should have navigated, transient entry should be gone.
3227 EXPECT_FALSE(controller.GetTransientEntry()); 3229 EXPECT_FALSE(controller.GetTransientEntry());
3228 EXPECT_EQ(url3, controller.GetPendingEntry()->GetURL()); 3230 EXPECT_EQ(url3, controller.GetPendingEntry()->GetURL());
3229 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL()); 3231 EXPECT_EQ(url2, controller.GetVisibleEntry()->GetURL());
3230 main_test_rfh()->PrepareForCommit(); 3232 main_test_rfh()->PrepareForCommit();
3231 main_test_rfh()->SendNavigate(3, entry_id, false, url3); 3233 main_test_rfh()->SendNavigate(3, entry_id, false, url3);
3232 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL()); 3234 EXPECT_EQ(url3, controller.GetVisibleEntry()->GetURL());
3233 3235
3234 // Add a transient and do an in-page navigation, replacing the current entry. 3236 // Add a transient and do an in-page navigation, replacing the current entry.
3235 transient_entry.reset(new NavigationEntryImpl); 3237 transient_entry.reset(new NavigationEntryImpl);
3236 transient_entry->SetURL(transient_url); 3238 transient_entry->SetURL(transient_url);
3237 controller.SetTransientEntry(transient_entry.Pass()); 3239 controller.SetTransientEntry(std::move(transient_entry));
3238 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3240 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3239 3241
3240 main_test_rfh()->SendRendererInitiatedNavigationRequest(url3_ref, false); 3242 main_test_rfh()->SendRendererInitiatedNavigationRequest(url3_ref, false);
3241 main_test_rfh()->PrepareForCommit(); 3243 main_test_rfh()->PrepareForCommit();
3242 main_test_rfh()->SendNavigate(3, 0, false, url3_ref); 3244 main_test_rfh()->SendNavigate(3, 0, false, url3_ref);
3243 // Transient entry should be gone. 3245 // Transient entry should be gone.
3244 EXPECT_FALSE(controller.GetTransientEntry()); 3246 EXPECT_FALSE(controller.GetTransientEntry());
3245 EXPECT_EQ(url3_ref, controller.GetVisibleEntry()->GetURL()); 3247 EXPECT_EQ(url3_ref, controller.GetVisibleEntry()->GetURL());
3246 3248
3247 // Ensure the URLs are correct. 3249 // Ensure the URLs are correct.
(...skipping 17 matching lines...) Expand all
3265 url0, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3267 url0, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
3266 int entry_id = controller.GetPendingEntry()->GetUniqueID(); 3268 int entry_id = controller.GetPendingEntry()->GetUniqueID();
3267 main_test_rfh()->PrepareForCommit(); 3269 main_test_rfh()->PrepareForCommit();
3268 main_test_rfh()->SendNavigate(0, entry_id, true, url0); 3270 main_test_rfh()->SendNavigate(0, entry_id, true, url0);
3269 controller.LoadURL( 3271 controller.LoadURL(
3270 url1, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3272 url1, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
3271 3273
3272 // A transient entry is added, interrupting the navigation. 3274 // A transient entry is added, interrupting the navigation.
3273 scoped_ptr<NavigationEntry> transient_entry(new NavigationEntryImpl); 3275 scoped_ptr<NavigationEntry> transient_entry(new NavigationEntryImpl);
3274 transient_entry->SetURL(transient_url); 3276 transient_entry->SetURL(transient_url);
3275 controller.SetTransientEntry(transient_entry.Pass()); 3277 controller.SetTransientEntry(std::move(transient_entry));
3276 EXPECT_TRUE(controller.GetTransientEntry()); 3278 EXPECT_TRUE(controller.GetTransientEntry());
3277 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL()); 3279 EXPECT_EQ(transient_url, controller.GetVisibleEntry()->GetURL());
3278 3280
3279 // The page is reloaded, which should remove the pending entry for |url1| and 3281 // The page is reloaded, which should remove the pending entry for |url1| and
3280 // the transient entry for |transient_url|, and start a navigation to 3282 // the transient entry for |transient_url|, and start a navigation to
3281 // |transient_url|. 3283 // |transient_url|.
3282 controller.Reload(true); 3284 controller.Reload(true);
3283 entry_id = controller.GetPendingEntry()->GetUniqueID(); 3285 entry_id = controller.GetPendingEntry()->GetUniqueID();
3284 EXPECT_FALSE(controller.GetTransientEntry()); 3286 EXPECT_FALSE(controller.GetTransientEntry());
3285 EXPECT_TRUE(controller.GetPendingEntry()); 3287 EXPECT_TRUE(controller.GetPendingEntry());
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after
4415 }; 4417 };
4416 const GURL kInitialUrl("http://site3.com"); 4418 const GURL kInitialUrl("http://site3.com");
4417 4419
4418 std::vector<scoped_ptr<NavigationEntry>> entries; 4420 std::vector<scoped_ptr<NavigationEntry>> entries;
4419 for (size_t i = 0; i < arraysize(kRestoredUrls); ++i) { 4421 for (size_t i = 0; i < arraysize(kRestoredUrls); ++i) {
4420 scoped_ptr<NavigationEntry> entry = 4422 scoped_ptr<NavigationEntry> entry =
4421 NavigationControllerImpl::CreateNavigationEntry( 4423 NavigationControllerImpl::CreateNavigationEntry(
4422 kRestoredUrls[i], Referrer(), ui::PAGE_TRANSITION_RELOAD, false, 4424 kRestoredUrls[i], Referrer(), ui::PAGE_TRANSITION_RELOAD, false,
4423 std::string(), browser_context()); 4425 std::string(), browser_context());
4424 entry->SetPageID(static_cast<int>(i)); 4426 entry->SetPageID(static_cast<int>(i));
4425 entries.push_back(entry.Pass()); 4427 entries.push_back(std::move(entry));
4426 } 4428 }
4427 4429
4428 // Create a WebContents with restored entries. 4430 // Create a WebContents with restored entries.
4429 scoped_ptr<TestWebContents> source_contents( 4431 scoped_ptr<TestWebContents> source_contents(
4430 static_cast<TestWebContents*>(CreateTestWebContents())); 4432 static_cast<TestWebContents*>(CreateTestWebContents()));
4431 NavigationControllerImpl& source_controller = 4433 NavigationControllerImpl& source_controller =
4432 source_contents->GetController(); 4434 source_contents->GetController();
4433 source_controller.Restore( 4435 source_controller.Restore(
4434 entries.size() - 1, 4436 entries.size() - 1,
4435 NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY, 4437 NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY,
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after
5119 EXPECT_EQ(default_ssl_status.connection_status, 5121 EXPECT_EQ(default_ssl_status.connection_status,
5120 details.ssl_status.connection_status); 5122 details.ssl_status.connection_status);
5121 EXPECT_EQ(default_ssl_status.content_status, 5123 EXPECT_EQ(default_ssl_status.content_status,
5122 details.ssl_status.content_status); 5124 details.ssl_status.content_status);
5123 EXPECT_EQ(0u, details.ssl_status.signed_certificate_timestamp_ids.size()); 5125 EXPECT_EQ(0u, details.ssl_status.signed_certificate_timestamp_ids.size());
5124 5126
5125 EXPECT_EQ(1, main_test_rfh()->GetProcess()->bad_msg_count()); 5127 EXPECT_EQ(1, main_test_rfh()->GetProcess()->bad_msg_count());
5126 } 5128 }
5127 5129
5128 } // namespace content 5130 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698