Chromium Code Reviews| 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 637dec0f089c37aad8fda36efb43f1713dc2a85f..c6a7590237e7a12b80524d52975bff27c823e6c6 100644 |
| --- a/content/browser/frame_host/navigation_controller_impl_unittest.cc |
| +++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc |
| @@ -1647,6 +1647,53 @@ TEST_F(NavigationControllerTest, RedirectsAreNotResetByCommit) { |
| EXPECT_EQ(url2, committed_entry->GetRedirectChain()[0]); |
| } |
| +// Tests that webkit preferences are updated when user agent override changes. |
| +TEST_F(NavigationControllerTest, NavigateWithUserAgentOverrideChange) { |
| + NavigationControllerImpl& controller = controller_impl(); |
| + |
| + int change_counter = 0; |
| + test_rvh()->set_webkit_preferences_changed_counter(&change_counter); |
| + |
| + const GURL url1("http://foo/1"); |
| + const GURL url2("http://foo/2"); |
| + |
| + NavigationController::LoadURLParams load_params(url1); |
| + load_params.referrer = |
| + Referrer(GURL("http://referrer"), blink::WebReferrerPolicyDefault); |
| + load_params.transition_type = ui::PAGE_TRANSITION_GENERATED; |
| + load_params.extra_headers = "content-type: text/plain"; |
| + load_params.load_type = NavigationController::LOAD_TYPE_DEFAULT; |
| + load_params.is_renderer_initiated = false; |
| + load_params.override_user_agent = NavigationController::UA_OVERRIDE_FALSE; |
| + load_params.transferred_global_request_id = GlobalRequestID(2, 3); |
| + controller.LoadURLWithParams(load_params); |
| + int entry_id = controller.GetPendingEntry()->GetUniqueID(); |
| + |
| + EXPECT_EQ(false, controller.GetPendingEntry()->GetIsOverridingUserAgent()); |
| + |
| + main_test_rfh()->PrepareForCommit(); |
| + main_test_rfh()->SendNavigate(entry_id, true, url1); |
| + |
| + NavigationController::LoadURLParams load_params2(url2); |
| + load_params2.referrer = |
| + Referrer(GURL("http://referrer"), blink::WebReferrerPolicyDefault); |
| + load_params2.transition_type = ui::PAGE_TRANSITION_GENERATED; |
| + load_params2.extra_headers = "content-type: text/plain"; |
| + load_params2.load_type = NavigationController::LOAD_TYPE_DEFAULT; |
| + load_params2.is_renderer_initiated = false; |
| + load_params2.override_user_agent = NavigationController::UA_OVERRIDE_TRUE; |
| + load_params2.transferred_global_request_id = GlobalRequestID(4, 5); |
| + |
| + controller.LoadURLWithParams(load_params2); |
| + entry_id = controller.GetPendingEntry()->GetUniqueID(); |
| + EXPECT_EQ(true, controller.GetPendingEntry()->GetIsOverridingUserAgent()); |
| + |
| + main_test_rfh()->PrepareForCommit(); |
| + main_test_rfh()->SendNavigate(entry_id, true, url2); |
| + |
| + EXPECT_EQ(2, change_counter); |
|
Charlie Reis
2017/01/12 19:37:54
Would this test fail without your fix? I thought
aelias_OOO_until_Jul13
2017/01/12 21:19:13
The previous version did fail without the fix, but
|
| +} |
| + |
| // Tests what happens when we navigate back successfully |
| TEST_F(NavigationControllerTest, Back) { |
| NavigationControllerImpl& controller = controller_impl(); |