Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(421)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 839413004: Remove the use of page id from building the commit params. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: with fix for site-per-process Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 2553 matching lines...) Expand 10 before | Expand all | Expand 10 after
2564 } 2564 }
2565 } 2565 }
2566 2566
2567 // Remember that we've already processed this request, so we don't update 2567 // Remember that we've already processed this request, so we don't update
2568 // the session history again. We do this regardless of whether this is 2568 // the session history again. We do this regardless of whether this is
2569 // a session history navigation, because if we attempted a session history 2569 // a session history navigation, because if we attempted a session history
2570 // navigation without valid HistoryItem state, WebCore will think it is a 2570 // navigation without valid HistoryItem state, WebCore will think it is a
2571 // new navigation. 2571 // new navigation.
2572 navigation_state->set_request_committed(true); 2572 navigation_state->set_request_committed(true);
2573 2573
2574 SendDidCommitProvisionalLoad(frame); 2574 SendDidCommitProvisionalLoad(frame, commit_type);
2575 2575
2576 // Check whether we have new encoding name. 2576 // Check whether we have new encoding name.
2577 UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 2577 UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
2578 } 2578 }
2579 2579
2580 void RenderFrameImpl::didCreateNewDocument(blink::WebLocalFrame* frame) { 2580 void RenderFrameImpl::didCreateNewDocument(blink::WebLocalFrame* frame) {
2581 DCHECK(!frame_ || frame_ == frame); 2581 DCHECK(!frame_ || frame_ == frame);
2582 2582
2583 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), 2583 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
2584 DidCreateNewDocument(frame)); 2584 DidCreateNewDocument(frame));
(...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after
3632 blink::WebPageVisibilityStateVisible, false); 3632 blink::WebPageVisibilityStateVisible, false);
3633 } 3633 }
3634 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasShown()); 3634 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasShown());
3635 } 3635 }
3636 3636
3637 bool RenderFrameImpl::IsHidden() { 3637 bool RenderFrameImpl::IsHidden() {
3638 return GetRenderWidget()->is_hidden(); 3638 return GetRenderWidget()->is_hidden();
3639 } 3639 }
3640 3640
3641 // Tell the embedding application that the URL of the active page has changed. 3641 // Tell the embedding application that the URL of the active page has changed.
3642 void RenderFrameImpl::SendDidCommitProvisionalLoad(blink::WebFrame* frame) { 3642 void RenderFrameImpl::SendDidCommitProvisionalLoad(
3643 blink::WebFrame* frame,
3644 blink::WebHistoryCommitType commit_type) {
3643 DCHECK(!frame_ || frame_ == frame); 3645 DCHECK(!frame_ || frame_ == frame);
3644 WebDataSource* ds = frame->dataSource(); 3646 WebDataSource* ds = frame->dataSource();
3645 DCHECK(ds); 3647 DCHECK(ds);
3646 3648
3647 const WebURLRequest& request = ds->request(); 3649 const WebURLRequest& request = ds->request();
3648 const WebURLResponse& response = ds->response(); 3650 const WebURLResponse& response = ds->response();
3649 3651
3650 DocumentState* document_state = DocumentState::FromDataSource(ds); 3652 DocumentState* document_state = DocumentState::FromDataSource(ds);
3651 NavigationState* navigation_state = document_state->navigation_state(); 3653 NavigationState* navigation_state = document_state->navigation_state();
3652 InternalDocumentStateData* internal_data = 3654 InternalDocumentStateData* internal_data =
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3695 params.should_update_history = !ds->hasUnreachableURL() && 3697 params.should_update_history = !ds->hasUnreachableURL() &&
3696 !response.isMultipartPayload() && (response.httpStatusCode() != 404); 3698 !response.isMultipartPayload() && (response.httpStatusCode() != 404);
3697 3699
3698 params.searchable_form_url = internal_data->searchable_form_url(); 3700 params.searchable_form_url = internal_data->searchable_form_url();
3699 params.searchable_form_encoding = internal_data->searchable_form_encoding(); 3701 params.searchable_form_encoding = internal_data->searchable_form_encoding();
3700 3702
3701 params.gesture = render_view_->navigation_gesture_; 3703 params.gesture = render_view_->navigation_gesture_;
3702 render_view_->navigation_gesture_ = NavigationGestureUnknown; 3704 render_view_->navigation_gesture_ = NavigationGestureUnknown;
3703 3705
3704 // Make navigation state a part of the DidCommitProvisionalLoad message so 3706 // Make navigation state a part of the DidCommitProvisionalLoad message so
3705 // that commited entry has it at all times. 3707 // that committed entry has it at all times.
3706 HistoryEntry* entry = render_view_->history_controller()->GetCurrentEntry(); 3708 HistoryEntry* entry = render_view_->history_controller()->GetCurrentEntry();
3707 if (entry) 3709 if (entry)
3708 params.page_state = HistoryEntryToPageState(entry); 3710 params.page_state = HistoryEntryToPageState(entry);
3709 else 3711 else
3710 params.page_state = PageState::CreateFromURL(request.url()); 3712 params.page_state = PageState::CreateFromURL(request.url());
3711 3713
3712 if (!frame->parent()) { 3714 if (!frame->parent()) {
3713 // Top-level navigation. 3715 // Top-level navigation.
3714 3716
3715 // Reset the zoom limits in case a plugin had changed them previously. This 3717 // Reset the zoom limits in case a plugin had changed them previously. This
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
3800 3802
3801 // This message needs to be sent before any of allowScripts(), 3803 // This message needs to be sent before any of allowScripts(),
3802 // allowImages(), allowPlugins() is called for the new page, so that when 3804 // allowImages(), allowPlugins() is called for the new page, so that when
3803 // these functions send a ViewHostMsg_ContentBlocked message, it arrives 3805 // these functions send a ViewHostMsg_ContentBlocked message, it arrives
3804 // after the FrameHostMsg_DidCommitProvisionalLoad message. 3806 // after the FrameHostMsg_DidCommitProvisionalLoad message.
3805 Send(new FrameHostMsg_DidCommitProvisionalLoad(routing_id_, params)); 3807 Send(new FrameHostMsg_DidCommitProvisionalLoad(routing_id_, params));
3806 } else { 3808 } else {
3807 // Subframe navigation: the type depends on whether this navigation 3809 // Subframe navigation: the type depends on whether this navigation
3808 // generated a new session history entry. When they do generate a session 3810 // generated a new session history entry. When they do generate a session
3809 // history entry, it means the user initiated the navigation and we should 3811 // history entry, it means the user initiated the navigation and we should
3810 // mark it as such. This test checks if this is the first time 3812 // mark it as such.
3811 // SendDidCommitProvisionalLoad has been called since WillNavigateToURL was 3813 bool is_history_navigation = commit_type == blink::WebBackForwardCommit;
3812 // called to initiate the load. 3814 if (is_history_navigation || ds->replacesCurrentHistoryItem())
3813 if (render_view_->page_id_ > render_view_->last_page_id_sent_to_browser_) 3815 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
3816 else
3814 params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME; 3817 params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME;
3815 else
3816 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
3817 3818
3818 DCHECK(!navigation_state->history_list_was_cleared()); 3819 DCHECK(!navigation_state->history_list_was_cleared());
3819 params.history_list_was_cleared = false; 3820 params.history_list_was_cleared = false;
3820 params.report_type = FrameMsg_UILoadMetricsReportType::NO_REPORT; 3821 params.report_type = FrameMsg_UILoadMetricsReportType::NO_REPORT;
3821 3822
3822 // Don't send this message while the subframe is swapped out. 3823 // Don't send this message while the subframe is swapped out.
3823 if (!is_swapped_out()) 3824 if (!is_swapped_out())
3824 Send(new FrameHostMsg_DidCommitProvisionalLoad(routing_id_, params)); 3825 Send(new FrameHostMsg_DidCommitProvisionalLoad(routing_id_, params));
3825 } 3826 }
3826 3827
3827 render_view_->last_page_id_sent_to_browser_ =
3828 std::max(render_view_->last_page_id_sent_to_browser_,
3829 render_view_->page_id_);
3830
3831 // If we end up reusing this WebRequest (for example, due to a #ref click), 3828 // If we end up reusing this WebRequest (for example, due to a #ref click),
3832 // we don't want the transition type to persist. Just clear it. 3829 // we don't want the transition type to persist. Just clear it.
3833 navigation_state->set_transition_type(ui::PAGE_TRANSITION_LINK); 3830 navigation_state->set_transition_type(ui::PAGE_TRANSITION_LINK);
3834 } 3831 }
3835 3832
3836 WebElement RenderFrameImpl::GetFocusedElement() { 3833 WebElement RenderFrameImpl::GetFocusedElement() {
3837 WebDocument doc = frame_->document(); 3834 WebDocument doc = frame_->document();
3838 if (!doc.isNull()) 3835 if (!doc.isNull())
3839 return doc.focusedElement(); 3836 return doc.focusedElement();
3840 3837
(...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after
4461 4458
4462 #if defined(ENABLE_BROWSER_CDMS) 4459 #if defined(ENABLE_BROWSER_CDMS)
4463 RendererCdmManager* RenderFrameImpl::GetCdmManager() { 4460 RendererCdmManager* RenderFrameImpl::GetCdmManager() {
4464 if (!cdm_manager_) 4461 if (!cdm_manager_)
4465 cdm_manager_ = new RendererCdmManager(this); 4462 cdm_manager_ = new RendererCdmManager(this);
4466 return cdm_manager_; 4463 return cdm_manager_;
4467 } 4464 }
4468 #endif // defined(ENABLE_BROWSER_CDMS) 4465 #endif // defined(ENABLE_BROWSER_CDMS)
4469 4466
4470 } // namespace content 4467 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698