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

Unified Diff: Source/core/loader/FrameLoader.cpp

Issue 389993002: Teach WebURLRequest about Fetch's "frame type" concept. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Missed one. Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/fetch/ResourceFetcher.cpp ('k') | Source/platform/exported/WebURLRequest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/loader/FrameLoader.cpp
diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp
index 27b19c0ddf4e4f3bbde7e22c0c29bfa30660965b..da94bb9a311f10e48f390a2acd1eb878ca99b753 100644
--- a/Source/core/loader/FrameLoader.cpp
+++ b/Source/core/loader/FrameLoader.cpp
@@ -89,6 +89,7 @@
#include "platform/scroll/ScrollAnimator.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "platform/weborigin/SecurityPolicy.h"
+#include "public/platform/WebURLRequest.h"
#include "wtf/TemporaryChange.h"
#include "wtf/text/CString.h"
#include "wtf/text/WTFString.h"
@@ -131,7 +132,10 @@ FrameLoader::~FrameLoader()
void FrameLoader::init()
{
- m_provisionalDocumentLoader = client()->createDocumentLoader(m_frame, ResourceRequest(KURL(ParsedURLString, emptyString())), SubstituteData());
+ ResourceRequest initialRequest(KURL(ParsedURLString, emptyString()));
+ initialRequest.setRequestContext(blink::WebURLRequest::RequestContextInternal);
+ initialRequest.setFrameType(m_frame->isMainFrame() ? blink::WebURLRequest::FrameTypeTopLevel : blink::WebURLRequest::FrameTypeNested);
+ m_provisionalDocumentLoader = client()->createDocumentLoader(m_frame, initialRequest, SubstituteData());
m_provisionalDocumentLoader->startLoadingMainResource();
m_frame->document()->cancelParsing();
m_stateMachine.advanceTo(FrameLoaderStateMachine::DisplayingInitialEmptyDocument);
@@ -673,7 +677,9 @@ FrameLoadType FrameLoader::determineFrameLoadType(const FrameLoadRequest& reques
bool FrameLoader::prepareRequestForThisFrame(FrameLoadRequest& request)
{
- // If no origin Document* was specified, skip security checks and assume the caller has fully initialized the FrameLoadRequest.
+ request.resourceRequest().setFrameType(m_frame->isMainFrame() ? blink::WebURLRequest::FrameTypeTopLevel : blink::WebURLRequest::FrameTypeNested);
+
+ // If no origin Document* was specified, skip remaining security checks and assume the caller has fully initialized the FrameLoadRequest.
if (!request.originDocument())
return true;
@@ -793,6 +799,7 @@ void FrameLoader::reload(ReloadPolicy reloadPolicy, const KURL& overrideURL, con
ResourceRequestCachePolicy cachePolicy = reloadPolicy == EndToEndReload ? ReloadBypassingCache : ReloadIgnoringCacheData;
ResourceRequest request = requestFromHistoryItem(m_currentItem.get(), cachePolicy);
+ request.setFrameType(m_frame->isMainFrame() ? blink::WebURLRequest::FrameTypeTopLevel : blink::WebURLRequest::FrameTypeNested);
if (!overrideURL.isEmpty()) {
request.setURL(overrideURL);
request.clearHTTPReferrer();
@@ -1412,7 +1419,10 @@ void FrameLoader::loadHistoryItem(HistoryItem* item, HistoryLoadType historyLoad
restoreScrollPositionAndViewState();
return;
}
- loadWithNavigationAction(NavigationAction(requestFromHistoryItem(item, cachePolicy), FrameLoadTypeBackForward), FrameLoadTypeBackForward, nullptr, SubstituteData(), CheckContentSecurityPolicy);
+
+ ResourceRequest request = requestFromHistoryItem(item, cachePolicy);
+ request.setFrameType(m_frame->isMainFrame() ? blink::WebURLRequest::FrameTypeTopLevel : blink::WebURLRequest::FrameTypeNested);
+ loadWithNavigationAction(NavigationAction(request, FrameLoadTypeBackForward), FrameLoadTypeBackForward, nullptr, SubstituteData(), CheckContentSecurityPolicy);
}
void FrameLoader::dispatchDocumentElementAvailable()
« no previous file with comments | « Source/core/fetch/ResourceFetcher.cpp ('k') | Source/platform/exported/WebURLRequest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698