OLD | NEW |
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/navigator_impl.h" | 5 #include "content/browser/frame_host/navigator_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
(...skipping 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1033 | 1033 |
1034 // Navigation to a javascript URL is not a "real" navigation so there is no | 1034 // Navigation to a javascript URL is not a "real" navigation so there is no |
1035 // need to create a NavigationHandle. The navigation commits immediately and | 1035 // need to create a NavigationHandle. The navigation commits immediately and |
1036 // the NavigationRequest is not assigned to the FrameTreeNode as navigating to | 1036 // the NavigationRequest is not assigned to the FrameTreeNode as navigating to |
1037 // a Javascript URL should not interrupt a previous navigation. | 1037 // a Javascript URL should not interrupt a previous navigation. |
1038 // Note: The scoped_request will be destroyed at the end of this function. | 1038 // Note: The scoped_request will be destroyed at the end of this function. |
1039 if (dest_url.SchemeIs(url::kJavaScriptScheme)) { | 1039 if (dest_url.SchemeIs(url::kJavaScriptScheme)) { |
1040 RenderFrameHostImpl* render_frame_host = | 1040 RenderFrameHostImpl* render_frame_host = |
1041 frame_tree_node->render_manager()->GetFrameHostForNavigation( | 1041 frame_tree_node->render_manager()->GetFrameHostForNavigation( |
1042 *navigation_request); | 1042 *navigation_request); |
1043 render_frame_host->CommitNavigation(nullptr, // response | 1043 render_frame_host->CommitNavigation( |
1044 nullptr, // body | 1044 nullptr, // response |
1045 navigation_request->common_params(), | 1045 nullptr, // body |
1046 navigation_request->request_params(), | 1046 navigation_request->common_params(), |
1047 navigation_request->is_view_source()); | 1047 navigation_request->request_params(), |
| 1048 navigation_request->is_view_source(), |
| 1049 navigation_request->begin_params().has_user_gesture); |
1048 return; | 1050 return; |
1049 } | 1051 } |
1050 | 1052 |
1051 frame_tree_node->CreatedNavigationRequest(std::move(scoped_request)); | 1053 frame_tree_node->CreatedNavigationRequest(std::move(scoped_request)); |
1052 navigation_request->CreateNavigationHandle(entry.GetUniqueID()); | 1054 navigation_request->CreateNavigationHandle(entry.GetUniqueID()); |
1053 | 1055 |
1054 // Have the current renderer execute its beforeunload event if needed. If it | 1056 // Have the current renderer execute its beforeunload event if needed. If it |
1055 // is not needed (when beforeunload dispatch is not needed or this navigation | 1057 // is not needed (when beforeunload dispatch is not needed or this navigation |
1056 // is synchronous and same-site) then NavigationRequest::BeginNavigation | 1058 // is synchronous and same-site) then NavigationRequest::BeginNavigation |
1057 // should be directly called instead. | 1059 // should be directly called instead. |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1199 if (pending_entry != controller_->GetVisibleEntry() || | 1201 if (pending_entry != controller_->GetVisibleEntry() || |
1200 !should_preserve_entry) { | 1202 !should_preserve_entry) { |
1201 controller_->DiscardPendingEntry(true); | 1203 controller_->DiscardPendingEntry(true); |
1202 | 1204 |
1203 // Also force the UI to refresh. | 1205 // Also force the UI to refresh. |
1204 controller_->delegate()->NotifyNavigationStateChanged(INVALIDATE_TYPE_URL); | 1206 controller_->delegate()->NotifyNavigationStateChanged(INVALIDATE_TYPE_URL); |
1205 } | 1207 } |
1206 } | 1208 } |
1207 | 1209 |
1208 } // namespace content | 1210 } // namespace content |
OLD | NEW |