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

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

Issue 2751833002: Clean up DocumentWriter creation's FrameLoader interaction (Closed)
Patch Set: Rebase + nits 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
« no previous file with comments | « third_party/WebKit/Source/core/loader/FrameLoader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 31fc6ea8cb15a5647a48fb5028b512b8c708d52b..e2003b6379bb26d4e6330d331aa7999506afe7bc 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
@@ -60,11 +60,9 @@
#include "core/frame/csp/ContentSecurityPolicy.h"
#include "core/html/HTMLFormElement.h"
#include "core/html/HTMLFrameOwnerElement.h"
-#include "core/html/parser/HTMLParserIdioms.h"
#include "core/input/EventHandler.h"
#include "core/inspector/ConsoleMessage.h"
#include "core/inspector/InspectorInstrumentation.h"
-#include "core/inspector/InspectorTraceEvents.h"
#include "core/loader/DocumentLoadTiming.h"
#include "core/loader/DocumentLoader.h"
#include "core/loader/FormSubmission.h"
@@ -75,7 +73,6 @@
#include "core/loader/NetworkHintsInterface.h"
#include "core/loader/ProgressTracker.h"
#include "core/loader/appcache/ApplicationCacheHost.h"
-#include "core/origin_trials/OriginTrialContext.h"
#include "core/page/ChromeClient.h"
#include "core/page/CreateWindow.h"
#include "core/page/FrameTree.h"
@@ -88,7 +85,6 @@
#include "platform/PluginScriptForbiddenScope.h"
#include "platform/ScriptForbiddenScope.h"
#include "platform/UserGestureIndicator.h"
-#include "platform/feature_policy/FeaturePolicy.h"
#include "platform/instrumentation/tracing/TraceEvent.h"
#include "platform/loader/fetch/ResourceFetcher.h"
#include "platform/loader/fetch/ResourceRequest.h"
@@ -99,7 +95,6 @@
#include "platform/weborigin/SecurityPolicy.h"
#include "platform/weborigin/Suborigin.h"
#include "public/platform/WebCachePolicy.h"
-#include "public/platform/WebFeaturePolicy.h"
#include "public/platform/WebURLRequest.h"
#include "public/platform/modules/serviceworker/WebServiceWorkerNetworkProvider.h"
#include "wtf/AutoReset.h"
@@ -475,9 +470,6 @@ static HistoryCommitType loadTypeToCommitType(FrameLoadType type) {
}
void FrameLoader::receivedFirstData() {
- if (m_stateMachine.creatingInitialEmptyDocument())
- return;
-
FrameLoadType loadType = m_documentLoader->loadType();
HistoryCommitType historyCommitType = loadTypeToCommitType(loadType);
if (historyCommitType == StandardCommit &&
@@ -502,43 +494,9 @@ void FrameLoader::receivedFirstData() {
// Policies that have accumulated so far for the new navigation.
m_frame->securityContext()->contentSecurityPolicy()->reportAccumulatedHeaders(
client());
-
- // didObserveLoadingBehavior() must be called after dispatchDidCommitLoad() is
- // called for the metrics tracking logic to handle it properly.
- if (m_documentLoader->getServiceWorkerNetworkProvider() &&
- m_documentLoader->getServiceWorkerNetworkProvider()
- ->isControlledByServiceWorker()) {
- client()->didObserveLoadingBehavior(
- WebLoadingBehaviorServiceWorkerControlled);
- }
-
- // Links with media values need more information (like viewport information).
- // This happens after the first chunk is parsed in HTMLDocumentParser.
- m_documentLoader->dispatchLinkHeaderPreloads(nullptr,
- LinkLoader::OnlyLoadNonMedia);
-
- TRACE_EVENT1("devtools.timeline", "CommitLoad", "data",
- InspectorCommitLoadEvent::data(m_frame));
- probe::didCommitLoad(m_frame, m_documentLoader.get());
- m_frame->page()->didCommitLoad(m_frame);
- dispatchDidClearDocumentOfWindowObject();
-
- takeObjectSnapshot();
}
-void FrameLoader::didInstallNewDocument(bool dispatchWindowObjectAvailable) {
- DCHECK(m_frame);
- DCHECK(m_frame->document());
-
- m_frame->document()->setReadyState(Document::Loading);
-
- if (dispatchWindowObjectAvailable)
- dispatchDidClearDocumentOfWindowObject();
-
- m_frame->document()->initContentSecurityPolicy(
- m_documentLoader ? m_documentLoader->releaseContentSecurityPolicy()
- : ContentSecurityPolicy::create());
-
+void FrameLoader::didInstallNewDocument() {
if (m_provisionalItem &&
isBackForwardLoadType(m_documentLoader->loadType())) {
m_frame->document()->setStateForNewFormElements(
@@ -546,107 +504,6 @@ void FrameLoader::didInstallNewDocument(bool dispatchWindowObjectAvailable) {
}
}
-void FrameLoader::didBeginDocument() {
- DCHECK(m_frame);
- DCHECK(m_frame->client());
- DCHECK(m_frame->document());
- DCHECK(m_frame->document()->fetcher());
-
- if (m_documentLoader) {
- String suboriginHeader =
- m_documentLoader->response().httpHeaderField(HTTPNames::Suborigin);
- if (!suboriginHeader.isNull()) {
- Vector<String> messages;
- Suborigin suborigin;
- if (parseSuboriginHeader(suboriginHeader, &suborigin, messages))
- m_frame->document()->enforceSuborigin(suborigin);
-
- for (auto& message : messages) {
- m_frame->document()->addConsoleMessage(
- ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel,
- "Error with Suborigin header: " + message));
- }
- }
- m_frame->document()->clientHintsPreferences().updateFrom(
- m_documentLoader->clientHintsPreferences());
- }
-
- Settings* settings = m_frame->document()->settings();
- if (settings) {
- m_frame->document()->fetcher()->setImagesEnabled(
- settings->getImagesEnabled());
- m_frame->document()->fetcher()->setAutoLoadImages(
- settings->getLoadsImagesAutomatically());
- }
-
- if (m_documentLoader) {
- const AtomicString& dnsPrefetchControl =
- m_documentLoader->response().httpHeaderField(
- HTTPNames::X_DNS_Prefetch_Control);
- if (!dnsPrefetchControl.isEmpty())
- m_frame->document()->parseDNSPrefetchControlHeader(dnsPrefetchControl);
-
- String headerContentLanguage = m_documentLoader->response().httpHeaderField(
- HTTPNames::Content_Language);
- if (!headerContentLanguage.isEmpty()) {
- size_t commaIndex = headerContentLanguage.find(',');
- headerContentLanguage.truncate(
- commaIndex); // kNotFound == -1 == don't truncate
- headerContentLanguage =
- headerContentLanguage.stripWhiteSpace(isHTMLSpace<UChar>);
- if (!headerContentLanguage.isEmpty()) {
- m_frame->document()->setContentLanguage(
- AtomicString(headerContentLanguage));
- }
- }
-
- OriginTrialContext::addTokensFromHeader(
- m_frame->document(),
- m_documentLoader->response().httpHeaderField(HTTPNames::Origin_Trial));
- if (RuntimeEnabledFeatures::featurePolicyEnabled()) {
- WebFeaturePolicy* parentFeaturePolicy =
- (isLoadingMainFrame() ? nullptr
- : m_frame->client()
- ->parent()
- ->securityContext()
- ->getFeaturePolicy());
- const String& featurePolicyHeader =
- m_documentLoader->response().httpHeaderField(
- HTTPNames::Feature_Policy);
- Vector<String> messages;
- const WebParsedFeaturePolicy& parsedHeader = parseFeaturePolicy(
- featurePolicyHeader, m_frame->securityContext()->getSecurityOrigin(),
- &messages);
- WebParsedFeaturePolicy containerPolicy;
- if (m_frame->owner()) {
- containerPolicy = getContainerPolicyFromAllowedFeatures(
- m_frame->owner()->allowedFeatures(),
- m_frame->securityContext()->getSecurityOrigin());
- }
- m_frame->securityContext()->initializeFeaturePolicy(
- parsedHeader, containerPolicy, parentFeaturePolicy);
- for (auto& message : messages) {
- m_frame->document()->addConsoleMessage(ConsoleMessage::create(
- OtherMessageSource, ErrorMessageLevel,
- "Error with Feature-Policy header: " + message));
- }
- if (!parsedHeader.isEmpty())
- client()->didSetFeaturePolicyHeader(parsedHeader);
- }
- }
-
- if (m_documentLoader) {
- String referrerPolicyHeader = m_documentLoader->response().httpHeaderField(
- HTTPNames::Referrer_Policy);
- if (!referrerPolicyHeader.isNull()) {
- UseCounter::count(*m_frame->document(), UseCounter::ReferrerPolicyHeader);
- m_frame->document()->parseAndSetReferrerPolicy(referrerPolicyHeader);
- }
- }
-
- client()->didCreateNewDocument();
-}
-
void FrameLoader::finishedParsing() {
if (m_stateMachine.creatingInitialEmptyDocument())
return;
@@ -1878,6 +1735,8 @@ void FrameLoader::runScriptsAtDocumentElementAvailable() {
void FrameLoader::dispatchDidClearDocumentOfWindowObject() {
DCHECK(m_frame->document());
+ if (m_stateMachine.creatingInitialEmptyDocument())
+ return;
if (!m_frame->document()->canExecuteScripts(NotAboutToExecuteScript))
return;
« no previous file with comments | « third_party/WebKit/Source/core/loader/FrameLoader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698