 Chromium Code Reviews
 Chromium Code Reviews Issue 2710983003:
  Move HistoryItem handling to DocumentLoader  (Closed)
    
  
    Issue 2710983003:
  Move HistoryItem handling to DocumentLoader  (Closed) 
  | Index: third_party/WebKit/Source/web/WebLocalFrameImpl.cpp | 
| diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp | 
| index ebda68aa738d402ad920e1bc0c4419b893699343..953faa2d1e72085005d42babf594b219cdc7d498 100644 | 
| --- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp | 
| +++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp | 
| @@ -1678,10 +1678,9 @@ LocalFrame* WebLocalFrameImpl::createChildFrame( | 
| FrameLoadRequest newRequest = request; | 
| FrameLoadType loadType = FrameLoadTypeStandard; | 
| if (childItem) { | 
| - newRequest = FrameLoadRequest( | 
| - request.originDocument(), | 
| - FrameLoader::resourceRequestFromHistoryItem( | 
| - childItem, WebCachePolicy::UseProtocolCachePolicy)); | 
| + newRequest = FrameLoadRequest(request.originDocument(), | 
| + childItem->generateResourceRequest( | 
| + WebCachePolicy::UseProtocolCachePolicy)); | 
| loadType = FrameLoadTypeInitialHistoryLoad; | 
| } | 
| webframeChild->frame()->loader().load(newRequest, loadType, childItem); | 
| @@ -1995,9 +1994,8 @@ WebURLRequest WebLocalFrameImpl::requestFromHistoryItem( | 
| const WebHistoryItem& item, | 
| WebCachePolicy cachePolicy) const { | 
| HistoryItem* historyItem = item; | 
| - ResourceRequest request = | 
| - FrameLoader::resourceRequestFromHistoryItem(historyItem, cachePolicy); | 
| - return WrappedResourceRequest(request); | 
| + return WrappedResourceRequest( | 
| + historyItem->generateResourceRequest(cachePolicy)); | 
| } | 
| WebURLRequest WebLocalFrameImpl::requestForReload( | 
| @@ -2052,9 +2050,16 @@ void WebLocalFrameImpl::loadData(const WebData& data, | 
| // unreachableURL informs FrameLoader::reload to load unreachableURL | 
| // instead of the currently loaded URL. | 
| ResourceRequest request; | 
| - if (replace && !unreachableURL.isEmpty() && | 
| - frame()->loader().provisionalDocumentLoader()) | 
| - request = frame()->loader().provisionalDocumentLoader()->originalRequest(); | 
| + HistoryItem* historyItem = item; | 
| + DocumentLoader* provisionalDocumentLoader = | 
| + frame()->loader().provisionalDocumentLoader(); | 
| + if (replace && !unreachableURL.isEmpty() && provisionalDocumentLoader) { | 
| + request = provisionalDocumentLoader->originalRequest(); | 
| + if (provisionalDocumentLoader->loadType() == FrameLoadTypeBackForward) { | 
| + historyItem = provisionalDocumentLoader->historyItem(); | 
| 
yhirano
2017/03/29 09:38:13
Where is this line (i.e., L2059) from?
 
Nate Chapin
2017/03/29 18:23:06
Yeah, I should have mentioned this, sorry. This li
 
kinuko
2017/03/30 05:05:00
Could we note some of this as code comment, e.g. '
 
Nate Chapin
2017/03/30 20:13:56
Done.
 | 
| + webFrameLoadType = WebFrameLoadType::BackForward; | 
| + } | 
| + } | 
| request.setURL(baseURL); | 
| request.setCheckForBrowserSideNavigation(false); | 
| @@ -2065,7 +2070,6 @@ void WebLocalFrameImpl::loadData(const WebData& data, | 
| if (isClientRedirect) | 
| frameRequest.setClientRedirect(ClientRedirectPolicy::ClientRedirect); | 
| - HistoryItem* historyItem = item; | 
| frame()->loader().load( | 
| frameRequest, static_cast<FrameLoadType>(webFrameLoadType), historyItem, | 
| static_cast<HistoryLoadType>(webHistoryLoadType)); | 
| @@ -2078,9 +2082,8 @@ bool WebLocalFrameImpl::maybeRenderFallbackContent( | 
| if (!frame()->owner() || !frame()->owner()->canRenderFallbackContent()) | 
| return false; | 
| - FrameLoader& frameloader = frame()->loader(); | 
| - DCHECK(frameloader.provisionalDocumentLoader()); | 
| - frameloader.loadFailed(frameloader.provisionalDocumentLoader(), error); | 
| + DCHECK(frame()->loader().provisionalDocumentLoader()); | 
| + frame()->loader().provisionalDocumentLoader()->loadFailed(error); | 
| return true; | 
| } |