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

Unified Diff: content/browser/frame_host/navigation_controller_impl_unittest.cc

Issue 2309583002: Fix for the NavigationControllerTest.BackSubframe test failures with PlzNavigate (Closed)
Patch Set: Set document_sequence_number correctly and use the same strategy like Blink to generate these numbe… Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/public/common/page_state.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/frame_host/navigation_controller_impl_unittest.cc
diff --git a/content/browser/frame_host/navigation_controller_impl_unittest.cc b/content/browser/frame_host/navigation_controller_impl_unittest.cc
index b01157bf13be2272044ab388e6344253a3bf35f3..9d43dccc94637ed166b81d7800cfc3e3c54d9339 100644
--- a/content/browser/frame_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc
@@ -133,6 +133,12 @@ class MockScreenshotManager : public content::NavigationEntryScreenshotManager {
DISALLOW_COPY_AND_ASSIGN(MockScreenshotManager);
};
+int64_t GenerateSequenceNumber() {
+ // Based on how Blink generates sequence numbers.
+ static int64_t next_number = base::Time::Now().ToDoubleT() * 1000000;
+ return ++next_number;
+}
+
} // namespace
namespace content {
@@ -2459,7 +2465,8 @@ TEST_F(NavigationControllerTest, BackSubframe) {
const GURL subframe_url("http://foo1/subframe");
// Compute the sequence number assigned by Blink.
- int64_t item_sequence_number1 = base::Time::Now().ToDoubleT() * 1000000;
+ int64_t item_sequence_number1 = GenerateSequenceNumber();
+ int64_t document_sequence_number1 = GenerateSequenceNumber();
{
FrameHostMsg_DidCommitProvisionalLoad_Params params;
@@ -2472,8 +2479,10 @@ TEST_F(NavigationControllerTest, BackSubframe) {
params.should_update_history = false;
params.gesture = NavigationGestureUser;
params.method = "GET";
- params.page_state = PageState::CreateFromURL(subframe_url);
+ params.page_state = PageState::CreateForTestingWithSequenceNumbers(
+ subframe_url, item_sequence_number1, document_sequence_number1);
params.item_sequence_number = item_sequence_number1;
+ params.document_sequence_number = document_sequence_number1;
// Navigating should do nothing.
subframe->SendRendererInitiatedNavigationRequest(subframe_url, false);
@@ -2490,7 +2499,8 @@ TEST_F(NavigationControllerTest, BackSubframe) {
// First manual subframe navigation.
const GURL url2("http://foo2");
- int64_t item_sequence_number2 = base::Time::Now().ToDoubleT() * 1000000;
+ int64_t item_sequence_number2 = GenerateSequenceNumber();
+ int64_t document_sequence_number2 = GenerateSequenceNumber();
FrameHostMsg_DidCommitProvisionalLoad_Params params;
params.page_id = 2;
params.nav_entry_id = 0;
@@ -2501,8 +2511,10 @@ TEST_F(NavigationControllerTest, BackSubframe) {
params.should_update_history = false;
params.gesture = NavigationGestureUser;
params.method = "GET";
- params.page_state = PageState::CreateFromURL(url2);
+ params.page_state = PageState::CreateForTestingWithSequenceNumbers(
+ url2, item_sequence_number2, document_sequence_number2);
params.item_sequence_number = item_sequence_number2;
+ params.document_sequence_number = document_sequence_number2;
// This should generate a new entry.
subframe->SendRendererInitiatedNavigationRequest(url2, false);
@@ -2526,14 +2538,18 @@ TEST_F(NavigationControllerTest, BackSubframe) {
// Second manual subframe navigation should also make a new entry.
const GURL url3("http://foo3");
+ int64_t item_sequence_number3 = GenerateSequenceNumber();
+ int64_t document_sequence_number3 = GenerateSequenceNumber();
params.page_id = 3;
params.nav_entry_id = 0;
params.frame_unique_name = unique_name;
params.did_create_new_entry = true;
params.url = url3;
params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME;
- params.page_state = PageState::CreateFromURL(url3);
- params.item_sequence_number = base::Time::Now().ToDoubleT() * 1000000;
+ params.item_sequence_number = item_sequence_number3;
+ params.document_sequence_number = document_sequence_number3;
+ params.page_state = PageState::CreateForTestingWithSequenceNumbers(
+ url3, item_sequence_number3, document_sequence_number3);
subframe->SendRendererInitiatedNavigationRequest(url3, false);
subframe->PrepareForCommit();
subframe->SendNavigateWithParams(&params);
@@ -2561,8 +2577,10 @@ TEST_F(NavigationControllerTest, BackSubframe) {
params.did_create_new_entry = false;
params.url = url2;
params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
- params.page_state = PageState::CreateFromURL(url2);
+ params.page_state = PageState::CreateForTestingWithSequenceNumbers(
+ url2, item_sequence_number2, document_sequence_number2);
params.item_sequence_number = item_sequence_number2;
+ params.document_sequence_number = document_sequence_number2;
subframe->PrepareForCommit();
subframe->SendNavigateWithParams(&params);
EXPECT_EQ(1U, navigation_entry_committed_counter_);
@@ -2581,8 +2599,10 @@ TEST_F(NavigationControllerTest, BackSubframe) {
params.did_create_new_entry = false;
params.url = subframe_url;
params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
- params.page_state = PageState::CreateFromURL(subframe_url);
+ params.page_state = PageState::CreateForTestingWithSequenceNumbers(
+ subframe_url, item_sequence_number1, document_sequence_number1);
params.item_sequence_number = item_sequence_number1;
+ params.document_sequence_number = document_sequence_number1;
subframe->PrepareForCommit();
subframe->SendNavigateWithParams(&params);
EXPECT_EQ(1U, navigation_entry_committed_counter_);
« no previous file with comments | « no previous file | content/public/common/page_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698