Chromium Code Reviews| Index: content/renderer/history_controller.cc |
| diff --git a/content/renderer/history_controller.cc b/content/renderer/history_controller.cc |
| index f2d3d96d341213eeb0ceda09b3d1aa2d1c9fd9e3..798440d68cb5f0078e2f06f0333ec224bea46971 100644 |
| --- a/content/renderer/history_controller.cc |
| +++ b/content/renderer/history_controller.cc |
| @@ -89,9 +89,10 @@ void HistoryController::GoToEntry( |
| continue; |
| render_frame->SetPendingNavigationParams(make_scoped_ptr( |
| new NavigationParams(*navigation_params_.get()))); |
| - frame->loadHistoryItem(item.second, |
| - blink::WebHistorySameDocumentLoad, |
| - cache_policy); |
| + WebURLRequest request = |
| + frame->RequestFromHistoryItem(item.second, cache_policy); |
| + frame->loadRequest(request, WebFrame::WebFrameLoadTypeHistorySameDocument, |
| + item.second); |
| } |
| for (const auto& item : different_document_loads) { |
| WebFrame* frame = item.first; |
| @@ -100,12 +101,48 @@ void HistoryController::GoToEntry( |
| continue; |
| render_frame->SetPendingNavigationParams(make_scoped_ptr( |
| new NavigationParams(*navigation_params_.get()))); |
| - frame->loadHistoryItem(item.second, |
| - blink::WebHistoryDifferentDocumentLoad, |
| - cache_policy); |
| + WebURLRequest request = |
| + frame->RequestFromHistoryItem(item.second, cache_policy); |
| + frame->loadRequest(request, WebFrame::WebFrameLoadTypeBackForward, |
|
Charlie Reis
2015/05/27 23:34:35
The old names seemed like a clearer pair to me (Sa
clamy
2015/05/29 14:47:01
I brought back the WebHistoryLoadType following co
|
| + item.second); |
| } |
| } |
| +blink::WebHistoryItem HistoryController::FindItemForFrame( |
| + scoped_ptr<HistoryEntry> target_entry, |
| + RenderFrameImpl* target_frame, |
| + blink::WebURLRequest::CachePolicy cache_policy, |
| + blink::WebFrame::WebFrameLoadType* load_type) { |
| + HistoryFrameLoadVector same_document_loads; |
| + HistoryFrameLoadVector different_document_loads; |
| + |
| + provisional_entry_ = target_entry.Pass(); |
| + |
| + WebFrame* main_frame = render_view_->GetMainRenderFrame()->GetWebFrame(); |
| + if (current_entry_) { |
| + RecursiveGoToEntry(main_frame, same_document_loads, |
|
Charlie Reis
2015/05/27 23:34:35
I'd like to avoid this if we can. I'm trying to m
clamy
2015/05/29 14:47:01
Done.
|
| + different_document_loads); |
| + } |
| + |
| + for (const auto& item : same_document_loads) { |
| + WebFrame* frame = item.first; |
| + RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame); |
| + if (!render_frame || render_frame != target_frame) |
| + continue; |
| + *load_type = WebFrame::WebFrameLoadTypeHistorySameDocument; |
| + return item.second; |
| + } |
| + for (const auto& item : different_document_loads) { |
| + WebFrame* frame = item.first; |
| + RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame); |
| + if (!render_frame || render_frame != target_frame) |
| + continue; |
| + *load_type = WebFrame::WebFrameLoadTypeBackForward; |
| + return item.second; |
| + } |
| + return blink::WebHistoryItem(); |
| +} |
| + |
| void HistoryController::RecursiveGoToEntry( |
| WebFrame* frame, |
| HistoryFrameLoadVector& same_document_loads, |