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(¶ms); |
@@ -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(¶ms); |
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(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |