| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 91b13ef75ba42395e458b6d8451e0d81e94a39e3..79a6874e21e5db8dd65e86ac8c46a47331ce519a 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -1571,6 +1571,7 @@ bool RenderFrameImpl::OnMessageReceived(const IPC::Message& msg) {
|
| OnTextTrackSettingsChanged)
|
| IPC_MESSAGE_HANDLER(FrameMsg_PostMessageEvent, OnPostMessageEvent)
|
| IPC_MESSAGE_HANDLER(FrameMsg_FailedNavigation, OnFailedNavigation)
|
| + IPC_MESSAGE_HANDLER(FrameMsg_DroppedNavigation, OnDroppedNavigation)
|
| IPC_MESSAGE_HANDLER(FrameMsg_GetSavableResourceLinks,
|
| OnGetSavableResourceLinks)
|
| IPC_MESSAGE_HANDLER(FrameMsg_GetSerializedHtmlWithLocalLinks,
|
| @@ -4053,6 +4054,10 @@ RenderFrameImpl::getEffectiveConnectionType() {
|
| return effective_connection_type_;
|
| }
|
|
|
| +void RenderFrameImpl::abortClientNavigation() {
|
| + Send(new FrameHostMsg_AbortNavigation(routing_id_));
|
| +}
|
| +
|
| void RenderFrameImpl::didChangeSelection(bool is_empty_selection) {
|
| if (!GetRenderWidget()->input_handler().handling_input_event() &&
|
| !handling_select_range_)
|
| @@ -5261,6 +5266,16 @@ void RenderFrameImpl::OnFailedNavigation(
|
| browser_side_navigation_pending_ = false;
|
| }
|
|
|
| +void RenderFrameImpl::OnDroppedNavigation(int navigation_id) {
|
| + // Check that the navigation dropped was the last one sent to the browser
|
| + // process. If not, do nothing as the browser process still has some more
|
| + // navigations to process.
|
| + if (navigation_id != navigation_id_)
|
| + return;
|
| + browser_side_navigation_pending_ = false;
|
| + frame_->clientDroppedNavigation();
|
| +}
|
| +
|
| WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
|
| const NavigationPolicyInfo& info) {
|
| // A content initiated navigation may have originated from a link-click,
|
| @@ -6334,7 +6349,7 @@ void RenderFrameImpl::BeginNavigation(const NavigationPolicyInfo& info) {
|
| blink::WebURLRequest::ServiceWorkerMode::All,
|
| GetRequestContextTypeForWebURLRequest(info.urlRequest),
|
| GetMixedContentContextTypeForWebURLRequest(info.urlRequest),
|
| - initiator_origin);
|
| + initiator_origin, ++navigation_id_);
|
|
|
| if (!info.form.isNull()) {
|
| WebSearchableFormData web_searchable_form_data(info.form);
|
|
|