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

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

Issue 2781723007: Plumb initiator out of Blink. (Closed)
Patch Set: Created 3 years, 9 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
Index: third_party/WebKit/Source/core/loader/FrameLoader.cpp
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
index 8e001981251379fc0a86ea15d51e8c2a2fb9457d..da77af1b0a65f70cccfadfe547cdd0bf5e3b0868 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
@@ -228,9 +228,11 @@ void FrameLoader::init() {
initialRequest.setFrameType(m_frame->isMainFrame()
? WebURLRequest::FrameTypeTopLevel
: WebURLRequest::FrameTypeNested);
- m_provisionalDocumentLoader =
- client()->createDocumentLoader(m_frame, initialRequest, SubstituteData(),
- ClientRedirectPolicy::NotClientRedirect);
+ // TODO(dcheng): Strictly speaking, this should be passing in the creator of
+ // the frame.
+ m_provisionalDocumentLoader = client()->createDocumentLoader(
+ m_frame, initialRequest, SubstituteData(),
+ ClientRedirectPolicy::NotClientRedirect, nullptr);
m_provisionalDocumentLoader->startLoadingMainResource();
m_frame->document()->cancelParsing();
m_stateMachine.advanceTo(
@@ -1507,6 +1509,7 @@ bool FrameLoader::shouldClose(bool isReload) {
}
NavigationPolicy FrameLoader::shouldContinueForNavigationPolicy(
+ Document* originDocument,
const ResourceRequest& request,
const SubstituteData& substituteData,
DocumentLoader* loader,
@@ -1571,7 +1574,7 @@ NavigationPolicy FrameLoader::shouldContinueForNavigationPolicy(
bool replacesCurrentHistoryItem =
frameLoadType == FrameLoadTypeReplaceCurrentItem;
policy = client()->decidePolicyForNavigation(
- request, loader, type, policy, replacesCurrentHistoryItem,
+ originDocument, request, loader, type, policy, replacesCurrentHistoryItem,
isClientRedirect, form, shouldCheckMainWorldContentSecurityPolicy);
if (policy == NavigationPolicyCurrentTab ||
policy == NavigationPolicyIgnore ||
@@ -1583,6 +1586,7 @@ NavigationPolicy FrameLoader::shouldContinueForNavigationPolicy(
if (!LocalDOMWindow::allowPopUp(*m_frame) &&
!UserGestureIndicator::utilizeUserGesture())
return NavigationPolicyIgnore;
+ // TODO(dcheng): Does this need to plumb the origin document through?
client()->loadURLExternally(request, policy, String(),
replacesCurrentHistoryItem);
return NavigationPolicyIgnore;
@@ -1605,7 +1609,8 @@ NavigationPolicy FrameLoader::checkLoadCanStart(
modifyRequestForCSP(resourceRequest, nullptr);
return shouldContinueForNavigationPolicy(
- resourceRequest, frameLoadRequest.substituteData(), nullptr,
+ frameLoadRequest.originDocument(), resourceRequest,
+ frameLoadRequest.substituteData(), nullptr,
frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(),
navigationType, navigationPolicy, type,
frameLoadRequest.clientRedirect() == ClientRedirectPolicy::ClientRedirect,
@@ -1894,10 +1899,11 @@ DocumentLoader* FrameLoader::createDocumentLoader(
FrameLoadType loadType,
NavigationType navigationType) {
DocumentLoader* loader = client()->createDocumentLoader(
- m_frame, request, frameLoadRequest.substituteData().isValid()
- ? frameLoadRequest.substituteData()
- : defaultSubstituteDataForURL(request.url()),
- frameLoadRequest.clientRedirect());
+ m_frame, request,
+ frameLoadRequest.substituteData().isValid()
+ ? frameLoadRequest.substituteData()
+ : defaultSubstituteDataForURL(request.url()),
+ frameLoadRequest.clientRedirect(), frameLoadRequest.originDocument());
loader->setLoadType(loadType);
loader->setNavigationType(navigationType);
« no previous file with comments | « third_party/WebKit/Source/core/loader/FrameLoader.h ('k') | third_party/WebKit/Source/web/LocalFrameClientImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698