Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 1660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1671 // If we're moving in the back/forward list, we might want to replace the | 1671 // If we're moving in the back/forward list, we might want to replace the |
| 1672 // content of this child frame with whatever was there at that point. | 1672 // content of this child frame with whatever was there at that point. |
| 1673 HistoryItem* childItem = nullptr; | 1673 HistoryItem* childItem = nullptr; |
| 1674 if (isBackForwardLoadType(frame()->loader().documentLoader()->loadType()) && | 1674 if (isBackForwardLoadType(frame()->loader().documentLoader()->loadType()) && |
| 1675 !frame()->document()->loadEventFinished()) | 1675 !frame()->document()->loadEventFinished()) |
| 1676 childItem = webframeChild->client()->historyItemForNewChildFrame(); | 1676 childItem = webframeChild->client()->historyItemForNewChildFrame(); |
| 1677 | 1677 |
| 1678 FrameLoadRequest newRequest = request; | 1678 FrameLoadRequest newRequest = request; |
| 1679 FrameLoadType loadType = FrameLoadTypeStandard; | 1679 FrameLoadType loadType = FrameLoadTypeStandard; |
| 1680 if (childItem) { | 1680 if (childItem) { |
| 1681 newRequest = FrameLoadRequest( | 1681 newRequest = FrameLoadRequest(request.originDocument(), |
| 1682 request.originDocument(), | 1682 childItem->generateResourceRequest( |
| 1683 FrameLoader::resourceRequestFromHistoryItem( | 1683 WebCachePolicy::UseProtocolCachePolicy)); |
| 1684 childItem, WebCachePolicy::UseProtocolCachePolicy)); | |
| 1685 loadType = FrameLoadTypeInitialHistoryLoad; | 1684 loadType = FrameLoadTypeInitialHistoryLoad; |
| 1686 } | 1685 } |
| 1687 webframeChild->frame()->loader().load(newRequest, loadType, childItem); | 1686 webframeChild->frame()->loader().load(newRequest, loadType, childItem); |
| 1688 | 1687 |
| 1689 // Note a synchronous navigation (about:blank) would have already processed | 1688 // Note a synchronous navigation (about:blank) would have already processed |
| 1690 // onload, so it is possible for the child frame to have already been | 1689 // onload, so it is possible for the child frame to have already been |
| 1691 // detached by script in the page. | 1690 // detached by script in the page. |
| 1692 if (!webframeChild->parent()) | 1691 if (!webframeChild->parent()) |
| 1693 return nullptr; | 1692 return nullptr; |
| 1694 return webframeChild->frame(); | 1693 return webframeChild->frame(); |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1988 if (!frame()) | 1987 if (!frame()) |
| 1989 return true; | 1988 return true; |
| 1990 | 1989 |
| 1991 return frame()->loader().shouldClose(isReload); | 1990 return frame()->loader().shouldClose(isReload); |
| 1992 } | 1991 } |
| 1993 | 1992 |
| 1994 WebURLRequest WebLocalFrameImpl::requestFromHistoryItem( | 1993 WebURLRequest WebLocalFrameImpl::requestFromHistoryItem( |
| 1995 const WebHistoryItem& item, | 1994 const WebHistoryItem& item, |
| 1996 WebCachePolicy cachePolicy) const { | 1995 WebCachePolicy cachePolicy) const { |
| 1997 HistoryItem* historyItem = item; | 1996 HistoryItem* historyItem = item; |
| 1998 ResourceRequest request = | 1997 return WrappedResourceRequest( |
| 1999 FrameLoader::resourceRequestFromHistoryItem(historyItem, cachePolicy); | 1998 historyItem->generateResourceRequest(cachePolicy)); |
| 2000 return WrappedResourceRequest(request); | |
| 2001 } | 1999 } |
| 2002 | 2000 |
| 2003 WebURLRequest WebLocalFrameImpl::requestForReload( | 2001 WebURLRequest WebLocalFrameImpl::requestForReload( |
| 2004 WebFrameLoadType loadType, | 2002 WebFrameLoadType loadType, |
| 2005 const WebURL& overrideUrl) const { | 2003 const WebURL& overrideUrl) const { |
| 2006 DCHECK(frame()); | 2004 DCHECK(frame()); |
| 2007 ResourceRequest request = frame()->loader().resourceRequestForReload( | 2005 ResourceRequest request = frame()->loader().resourceRequestForReload( |
| 2008 static_cast<FrameLoadType>(loadType), overrideUrl); | 2006 static_cast<FrameLoadType>(loadType), overrideUrl); |
| 2009 return WrappedResourceRequest(request); | 2007 return WrappedResourceRequest(request); |
| 2010 } | 2008 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2045 bool isClientRedirect) { | 2043 bool isClientRedirect) { |
| 2046 DCHECK(frame()); | 2044 DCHECK(frame()); |
| 2047 | 2045 |
| 2048 // If we are loading substitute data to replace an existing load, then | 2046 // If we are loading substitute data to replace an existing load, then |
| 2049 // inherit all of the properties of that original request. This way, | 2047 // inherit all of the properties of that original request. This way, |
| 2050 // reload will re-attempt the original request. It is essential that | 2048 // reload will re-attempt the original request. It is essential that |
| 2051 // we only do this when there is an unreachableURL since a non-empty | 2049 // we only do this when there is an unreachableURL since a non-empty |
| 2052 // unreachableURL informs FrameLoader::reload to load unreachableURL | 2050 // unreachableURL informs FrameLoader::reload to load unreachableURL |
| 2053 // instead of the currently loaded URL. | 2051 // instead of the currently loaded URL. |
| 2054 ResourceRequest request; | 2052 ResourceRequest request; |
| 2055 if (replace && !unreachableURL.isEmpty() && | 2053 HistoryItem* historyItem = item; |
| 2056 frame()->loader().provisionalDocumentLoader()) | 2054 DocumentLoader* provisionalDocumentLoader = |
| 2057 request = frame()->loader().provisionalDocumentLoader()->originalRequest(); | 2055 frame()->loader().provisionalDocumentLoader(); |
| 2056 if (replace && !unreachableURL.isEmpty() && provisionalDocumentLoader) { | |
| 2057 request = provisionalDocumentLoader->originalRequest(); | |
| 2058 if (provisionalDocumentLoader->loadType() == FrameLoadTypeBackForward) { | |
| 2059 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.
| |
| 2060 webFrameLoadType = WebFrameLoadType::BackForward; | |
| 2061 } | |
| 2062 } | |
| 2058 request.setURL(baseURL); | 2063 request.setURL(baseURL); |
| 2059 request.setCheckForBrowserSideNavigation(false); | 2064 request.setCheckForBrowserSideNavigation(false); |
| 2060 | 2065 |
| 2061 FrameLoadRequest frameRequest( | 2066 FrameLoadRequest frameRequest( |
| 2062 0, request, SubstituteData(data, mimeType, textEncoding, unreachableURL)); | 2067 0, request, SubstituteData(data, mimeType, textEncoding, unreachableURL)); |
| 2063 DCHECK(frameRequest.substituteData().isValid()); | 2068 DCHECK(frameRequest.substituteData().isValid()); |
| 2064 frameRequest.setReplacesCurrentItem(replace); | 2069 frameRequest.setReplacesCurrentItem(replace); |
| 2065 if (isClientRedirect) | 2070 if (isClientRedirect) |
| 2066 frameRequest.setClientRedirect(ClientRedirectPolicy::ClientRedirect); | 2071 frameRequest.setClientRedirect(ClientRedirectPolicy::ClientRedirect); |
| 2067 | 2072 |
| 2068 HistoryItem* historyItem = item; | |
| 2069 frame()->loader().load( | 2073 frame()->loader().load( |
| 2070 frameRequest, static_cast<FrameLoadType>(webFrameLoadType), historyItem, | 2074 frameRequest, static_cast<FrameLoadType>(webFrameLoadType), historyItem, |
| 2071 static_cast<HistoryLoadType>(webHistoryLoadType)); | 2075 static_cast<HistoryLoadType>(webHistoryLoadType)); |
| 2072 } | 2076 } |
| 2073 | 2077 |
| 2074 bool WebLocalFrameImpl::maybeRenderFallbackContent( | 2078 bool WebLocalFrameImpl::maybeRenderFallbackContent( |
| 2075 const WebURLError& error) const { | 2079 const WebURLError& error) const { |
| 2076 DCHECK(frame()); | 2080 DCHECK(frame()); |
| 2077 | 2081 |
| 2078 if (!frame()->owner() || !frame()->owner()->canRenderFallbackContent()) | 2082 if (!frame()->owner() || !frame()->owner()->canRenderFallbackContent()) |
| 2079 return false; | 2083 return false; |
| 2080 | 2084 |
| 2081 FrameLoader& frameloader = frame()->loader(); | 2085 DCHECK(frame()->loader().provisionalDocumentLoader()); |
| 2082 DCHECK(frameloader.provisionalDocumentLoader()); | 2086 frame()->loader().provisionalDocumentLoader()->loadFailed(error); |
| 2083 frameloader.loadFailed(frameloader.provisionalDocumentLoader(), error); | |
| 2084 return true; | 2087 return true; |
| 2085 } | 2088 } |
| 2086 | 2089 |
| 2087 // Called when a navigation is blocked because a Content Security Policy (CSP) | 2090 // Called when a navigation is blocked because a Content Security Policy (CSP) |
| 2088 // is infringed. | 2091 // is infringed. |
| 2089 void WebLocalFrameImpl::reportContentSecurityPolicyViolation( | 2092 void WebLocalFrameImpl::reportContentSecurityPolicyViolation( |
| 2090 const blink::WebContentSecurityPolicyViolation& violation) { | 2093 const blink::WebContentSecurityPolicyViolation& violation) { |
| 2091 DCHECK(frame() && frame()->document()); | 2094 DCHECK(frame() && frame()->document()); |
| 2092 Document* document = frame()->document(); | 2095 Document* document = frame()->document(); |
| 2093 Vector<String> reportEndpoints; | 2096 Vector<String> reportEndpoints; |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2505 createMarkup(startPosition, endPosition, AnnotateForInterchange, | 2508 createMarkup(startPosition, endPosition, AnnotateForInterchange, |
| 2506 ConvertBlocksToInlines::NotConvert, ResolveNonLocalURLs); | 2509 ConvertBlocksToInlines::NotConvert, ResolveNonLocalURLs); |
| 2507 } else { | 2510 } else { |
| 2508 clipHtml = | 2511 clipHtml = |
| 2509 createMarkup(endPosition, startPosition, AnnotateForInterchange, | 2512 createMarkup(endPosition, startPosition, AnnotateForInterchange, |
| 2510 ConvertBlocksToInlines::NotConvert, ResolveNonLocalURLs); | 2513 ConvertBlocksToInlines::NotConvert, ResolveNonLocalURLs); |
| 2511 } | 2514 } |
| 2512 } | 2515 } |
| 2513 | 2516 |
| 2514 } // namespace blink | 2517 } // namespace blink |
| OLD | NEW |