| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 7c8342b37ed80245abf6df3f998ed5746c91cdad..f545e9d8ee27fd354b75c003e3931b732fdd78ce 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -1407,6 +1407,11 @@ blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
|
| this, frame, extra_data, request, type, default_policy, is_redirect);
|
| }
|
|
|
| +blink::WebHistoryItem RenderFrameImpl::historyItemForNewChildFrame(
|
| + blink::WebFrame* frame) {
|
| + return render_view_->webview()->itemForNewChildFrame(frame);
|
| +}
|
| +
|
| void RenderFrameImpl::willSendSubmitEvent(blink::WebFrame* frame,
|
| const blink::WebFormElement& form) {
|
| DCHECK(!frame_ || frame_ == frame);
|
| @@ -1517,6 +1522,7 @@ void RenderFrameImpl::didStartProvisionalLoad(blink::WebFrame* frame) {
|
| void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad(
|
| blink::WebFrame* frame) {
|
| DCHECK(!frame_ || frame_ == frame);
|
| + render_view_->webview()->removeChildrenForRedirect(frame);
|
| if (frame->parent())
|
| return;
|
| // Received a redirect on the main frame.
|
| @@ -1638,6 +1644,18 @@ void RenderFrameImpl::didFailProvisionalLoad(
|
| frame, failed_request, error, replace);
|
| }
|
|
|
| +void RenderFrameImpl::didCommitProvisionalLoad(
|
| + blink::WebFrame* frame,
|
| + const blink::WebHistoryItem& item,
|
| + blink::WebHistoryCommitType commit_type) {
|
| + DocumentState* document_state =
|
| + DocumentState::FromDataSource(frame->dataSource());
|
| + render_view_->webview()->updateForCommit(frame, item, commit_type,
|
| + document_state->navigation_state()->was_within_same_page());
|
| +
|
| + didCommitProvisionalLoad(frame, commit_type == blink::WebStandardCommit);
|
| +}
|
| +
|
| void RenderFrameImpl::didCommitProvisionalLoad(blink::WebFrame* frame,
|
| bool is_new_navigation) {
|
| DCHECK(!frame_ || frame_ == frame);
|
| @@ -1859,6 +1877,27 @@ void RenderFrameImpl::didFinishLoad(blink::WebFrame* frame) {
|
| }
|
|
|
| void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame,
|
| + const blink::WebHistoryItem& item,
|
| + blink::WebHistoryCommitType commit_type) {
|
| + DCHECK(!frame_ || frame_ == frame);
|
| + // If this was a reference fragment navigation that we initiated, then we
|
| + // could end up having a non-null pending navigation params. We just need to
|
| + // update the ExtraData on the datasource so that others who read the
|
| + // ExtraData will get the new NavigationState. Similarly, if we did not
|
| + // initiate this navigation, then we need to take care to reset any pre-
|
| + // existing navigation state to a content-initiated navigation state.
|
| + // DidCreateDataSource conveniently takes care of this for us.
|
| + didCreateDataSource(frame, frame->dataSource());
|
| +
|
| + DocumentState* document_state =
|
| + DocumentState::FromDataSource(frame->dataSource());
|
| + NavigationState* new_state = document_state->navigation_state();
|
| + new_state->set_was_within_same_page(true);
|
| +
|
| + didCommitProvisionalLoad(frame, item, commit_type);
|
| +}
|
| +
|
| +void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame,
|
| bool is_new_navigation) {
|
| DCHECK(!frame_ || frame_ == frame);
|
| // If this was a reference fragment navigation that we initiated, then we
|
|
|