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

Side by Side Diff: third_party/WebKit/Source/core/loader/FrameLoader.cpp

Issue 2327643003: Replace ASSERT*() with DCHECK*() in core/fetch/ and core/loader/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ASSERT_UNUSED Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2009. All rights reserved.
7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> 7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com>
8 * Copyright (C) 2011 Google Inc. All rights reserved. 8 * Copyright (C) 2011 Google Inc. All rights reserved.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 , m_dispatchingDidClearWindowObjectInMainWorld(false) 183 , m_dispatchingDidClearWindowObjectInMainWorld(false)
184 , m_protectProvisionalLoader(false) 184 , m_protectProvisionalLoader(false)
185 { 185 {
186 TRACE_EVENT_OBJECT_CREATED_WITH_ID("loading", "FrameLoader", this); 186 TRACE_EVENT_OBJECT_CREATED_WITH_ID("loading", "FrameLoader", this);
187 takeObjectSnapshot(); 187 takeObjectSnapshot();
188 } 188 }
189 189
190 FrameLoader::~FrameLoader() 190 FrameLoader::~FrameLoader()
191 { 191 {
192 // Verify that this FrameLoader has been detached. 192 // Verify that this FrameLoader has been detached.
193 ASSERT(!m_progressTracker); 193 DCHECK(!m_progressTracker);
194 } 194 }
195 195
196 DEFINE_TRACE(FrameLoader) 196 DEFINE_TRACE(FrameLoader)
197 { 197 {
198 visitor->trace(m_frame); 198 visitor->trace(m_frame);
199 visitor->trace(m_progressTracker); 199 visitor->trace(m_progressTracker);
200 visitor->trace(m_documentLoader); 200 visitor->trace(m_documentLoader);
201 visitor->trace(m_provisionalDocumentLoader); 201 visitor->trace(m_provisionalDocumentLoader);
202 visitor->trace(m_currentItem); 202 visitor->trace(m_currentItem);
203 visitor->trace(m_provisionalItem); 203 visitor->trace(m_provisionalItem);
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 TRACE_EVENT1("devtools.timeline", "CommitLoad", "data", InspectorCommitLoadE vent::data(m_frame)); 461 TRACE_EVENT1("devtools.timeline", "CommitLoad", "data", InspectorCommitLoadE vent::data(m_frame));
462 InspectorInstrumentation::didCommitLoad(m_frame, m_documentLoader.get()); 462 InspectorInstrumentation::didCommitLoad(m_frame, m_documentLoader.get());
463 m_frame->page()->didCommitLoad(m_frame); 463 m_frame->page()->didCommitLoad(m_frame);
464 dispatchDidClearDocumentOfWindowObject(); 464 dispatchDidClearDocumentOfWindowObject();
465 465
466 takeObjectSnapshot(); 466 takeObjectSnapshot();
467 } 467 }
468 468
469 void FrameLoader::didInstallNewDocument(bool dispatchWindowObjectAvailable) 469 void FrameLoader::didInstallNewDocument(bool dispatchWindowObjectAvailable)
470 { 470 {
471 ASSERT(m_frame); 471 DCHECK(m_frame);
472 ASSERT(m_frame->document()); 472 DCHECK(m_frame->document());
473 473
474 m_frame->document()->setReadyState(Document::Loading); 474 m_frame->document()->setReadyState(Document::Loading);
475 475
476 if (dispatchWindowObjectAvailable) 476 if (dispatchWindowObjectAvailable)
477 dispatchDidClearDocumentOfWindowObject(); 477 dispatchDidClearDocumentOfWindowObject();
478 478
479 m_frame->document()->initContentSecurityPolicy(m_documentLoader ? m_document Loader->releaseContentSecurityPolicy() : ContentSecurityPolicy::create()); 479 m_frame->document()->initContentSecurityPolicy(m_documentLoader ? m_document Loader->releaseContentSecurityPolicy() : ContentSecurityPolicy::create());
480 480
481 if (m_provisionalItem && isBackForwardLoadType(m_loadType)) 481 if (m_provisionalItem && isBackForwardLoadType(m_loadType))
482 m_frame->document()->setStateForNewFormElements(m_provisionalItem->docum entState()); 482 m_frame->document()->setStateForNewFormElements(m_provisionalItem->docum entState());
483 } 483 }
484 484
485 void FrameLoader::didBeginDocument() 485 void FrameLoader::didBeginDocument()
486 { 486 {
487 ASSERT(m_frame); 487 DCHECK(m_frame);
488 ASSERT(m_frame->document()); 488 DCHECK(m_frame->document());
489 ASSERT(m_frame->document()->fetcher()); 489 DCHECK(m_frame->document()->fetcher());
490 490
491 if (m_documentLoader) { 491 if (m_documentLoader) {
492 String suboriginHeader = m_documentLoader->response().httpHeaderField(HT TPNames::Suborigin); 492 String suboriginHeader = m_documentLoader->response().httpHeaderField(HT TPNames::Suborigin);
493 if (!suboriginHeader.isNull()) { 493 if (!suboriginHeader.isNull()) {
494 Vector<String> messages; 494 Vector<String> messages;
495 Suborigin suborigin; 495 Suborigin suborigin;
496 if (parseSuboriginHeader(suboriginHeader, &suborigin, messages)) 496 if (parseSuboriginHeader(suboriginHeader, &suborigin, messages))
497 m_frame->document()->enforceSuborigin(suborigin); 497 m_frame->document()->enforceSuborigin(suborigin);
498 498
499 for (auto& message : messages) 499 for (auto& message : messages)
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 return; 744 return;
745 745
746 FrameNavigationDisabler navigationDisabler(*m_frame); 746 FrameNavigationDisabler navigationDisabler(*m_frame);
747 loader->detachFromFrame(); 747 loader->detachFromFrame();
748 loader = nullptr; 748 loader = nullptr;
749 } 749 }
750 750
751 void FrameLoader::loadInSameDocument(const KURL& url, PassRefPtr<SerializedScrip tValue> stateObject, FrameLoadType frameLoadType, HistoryLoadType historyLoadTyp e, ClientRedirectPolicy clientRedirect, Document* initiatingDocument) 751 void FrameLoader::loadInSameDocument(const KURL& url, PassRefPtr<SerializedScrip tValue> stateObject, FrameLoadType frameLoadType, HistoryLoadType historyLoadTyp e, ClientRedirectPolicy clientRedirect, Document* initiatingDocument)
752 { 752 {
753 // If we have a state object, we cannot also be a new navigation. 753 // If we have a state object, we cannot also be a new navigation.
754 ASSERT(!stateObject || frameLoadType == FrameLoadTypeBackForward); 754 DCHECK(!stateObject || frameLoadType == FrameLoadTypeBackForward);
755 755
756 // If we have a provisional request for a different document, a fragment scr oll should cancel it. 756 // If we have a provisional request for a different document, a fragment scr oll should cancel it.
757 detachDocumentLoader(m_provisionalDocumentLoader); 757 detachDocumentLoader(m_provisionalDocumentLoader);
758 if (!m_frame->host()) 758 if (!m_frame->host())
759 return; 759 return;
760 AutoReset<FrameLoadType> loadTypeChange(&m_loadType, frameLoadType); 760 AutoReset<FrameLoadType> loadTypeChange(&m_loadType, frameLoadType);
761 saveScrollState(); 761 saveScrollState();
762 762
763 KURL oldURL = m_frame->document()->url(); 763 KURL oldURL = m_frame->document()->url();
764 bool hashChange = equalIgnoringFragmentIdentifier(url, oldURL) && url.fragme ntIdentifier() != oldURL.fragmentIdentifier(); 764 bool hashChange = equalIgnoringFragmentIdentifier(url, oldURL) && url.fragme ntIdentifier() != oldURL.fragmentIdentifier();
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 // The click is simulated when triggering the gesture-tap event 928 // The click is simulated when triggering the gesture-tap event
929 GestureEvent* gestureEvent = toGestureEvent(event); 929 GestureEvent* gestureEvent = toGestureEvent(event);
930 navigationPolicyFromMouseEvent(0, gestureEvent->ctrlKey(), gestureEvent- >shiftKey(), gestureEvent->altKey(), gestureEvent->metaKey(), &policy); 930 navigationPolicyFromMouseEvent(0, gestureEvent->ctrlKey(), gestureEvent- >shiftKey(), gestureEvent->altKey(), gestureEvent->metaKey(), &policy);
931 } 931 }
932 return policy; 932 return policy;
933 } 933 }
934 934
935 void FrameLoader::load(const FrameLoadRequest& passedRequest, FrameLoadType fram eLoadType, 935 void FrameLoader::load(const FrameLoadRequest& passedRequest, FrameLoadType fram eLoadType,
936 HistoryItem* historyItem, HistoryLoadType historyLoadType) 936 HistoryItem* historyItem, HistoryLoadType historyLoadType)
937 { 937 {
938 ASSERT(m_frame->document()); 938 DCHECK(m_frame->document());
939 939
940 if (!m_frame->isNavigationAllowed()) 940 if (!m_frame->isNavigationAllowed())
941 return; 941 return;
942 942
943 if (m_inStopAllLoaders) 943 if (m_inStopAllLoaders)
944 return; 944 return;
945 945
946 if (m_frame->page()->defersLoading() && isBackForwardLoadType(frameLoadType) ) { 946 if (m_frame->page()->defersLoading() && isBackForwardLoadType(frameLoadType) ) {
947 m_deferredHistoryLoad = DeferredHistoryLoad::create(passedRequest.resour ceRequest(), historyItem, frameLoadType, historyLoadType); 947 m_deferredHistoryLoad = DeferredHistoryLoad::create(passedRequest.resour ceRequest(), historyItem, frameLoadType, historyLoadType);
948 return; 948 return;
949 } 949 }
950 950
951 FrameLoadRequest request(passedRequest); 951 FrameLoadRequest request(passedRequest);
952 request.resourceRequest().setHasUserGesture(UserGestureIndicator::processing UserGesture()); 952 request.resourceRequest().setHasUserGesture(UserGestureIndicator::processing UserGesture());
953 953
954 if (!prepareRequestForThisFrame(request)) 954 if (!prepareRequestForThisFrame(request))
955 return; 955 return;
956 956
957 Frame* targetFrame = request.form() ? nullptr : m_frame->findFrameForNavigat ion(AtomicString(request.frameName()), *m_frame); 957 Frame* targetFrame = request.form() ? nullptr : m_frame->findFrameForNavigat ion(AtomicString(request.frameName()), *m_frame);
958 958
959 if (isBackForwardLoadType(frameLoadType)) { 959 if (isBackForwardLoadType(frameLoadType)) {
960 ASSERT(historyItem); 960 DCHECK(historyItem);
961 m_provisionalItem = historyItem; 961 m_provisionalItem = historyItem;
962 } 962 }
963 963
964 if (targetFrame && targetFrame != m_frame) { 964 if (targetFrame && targetFrame != m_frame) {
965 bool wasInSamePage = targetFrame->page() == m_frame->page(); 965 bool wasInSamePage = targetFrame->page() == m_frame->page();
966 966
967 request.setFrameName("_self"); 967 request.setFrameName("_self");
968 targetFrame->navigate(request); 968 targetFrame->navigate(request);
969 Page* page = targetFrame->page(); 969 Page* page = targetFrame->page();
970 if (!wasInSamePage && page) 970 if (!wasInSamePage && page)
(...skipping 18 matching lines...) Expand all
989 989
990 const KURL& url = request.resourceRequest().url(); 990 const KURL& url = request.resourceRequest().url();
991 bool sameDocumentHistoryNavigation = 991 bool sameDocumentHistoryNavigation =
992 isBackForwardLoadType(newLoadType) && historyLoadType == HistorySameDocu mentLoad; 992 isBackForwardLoadType(newLoadType) && historyLoadType == HistorySameDocu mentLoad;
993 bool sameDocumentNavigation = policy == NavigationPolicyCurrentTab 993 bool sameDocumentNavigation = policy == NavigationPolicyCurrentTab
994 && shouldPerformFragmentNavigation( 994 && shouldPerformFragmentNavigation(
995 request.form(), request.resourceRequest().httpMethod(), newLoadType, url); 995 request.form(), request.resourceRequest().httpMethod(), newLoadType, url);
996 996
997 // Perform same document navigation. 997 // Perform same document navigation.
998 if (sameDocumentHistoryNavigation || sameDocumentNavigation) { 998 if (sameDocumentHistoryNavigation || sameDocumentNavigation) {
999 ASSERT(historyItem || !sameDocumentHistoryNavigation); 999 DCHECK(historyItem || !sameDocumentHistoryNavigation);
1000 RefPtr<SerializedScriptValue> stateObject = sameDocumentHistoryNavigatio n ? 1000 RefPtr<SerializedScriptValue> stateObject = sameDocumentHistoryNavigatio n ?
1001 historyItem->stateObject() : nullptr; 1001 historyItem->stateObject() : nullptr;
1002 1002
1003 if (!sameDocumentHistoryNavigation) { 1003 if (!sameDocumentHistoryNavigation) {
1004 m_documentLoader->setNavigationType(determineNavigationType( 1004 m_documentLoader->setNavigationType(determineNavigationType(
1005 newLoadType, false, request.triggeringEvent())); 1005 newLoadType, false, request.triggeringEvent()));
1006 if (shouldTreatURLAsSameAsCurrent(url)) 1006 if (shouldTreatURLAsSameAsCurrent(url))
1007 newLoadType = FrameLoadTypeReplaceCurrentItem; 1007 newLoadType = FrameLoadTypeReplaceCurrentItem;
1008 } 1008 }
1009 1009
1010 loadInSameDocument(url, stateObject, newLoadType, historyLoadType, reque st.clientRedirect(), request.originDocument()); 1010 loadInSameDocument(url, stateObject, newLoadType, historyLoadType, reque st.clientRedirect(), request.originDocument());
1011 return; 1011 return;
1012 } 1012 }
1013 1013
1014 startLoad(request, newLoadType, policy); 1014 startLoad(request, newLoadType, policy);
1015 } 1015 }
1016 1016
1017 SubstituteData FrameLoader::defaultSubstituteDataForURL(const KURL& url) 1017 SubstituteData FrameLoader::defaultSubstituteDataForURL(const KURL& url)
1018 { 1018 {
1019 if (!shouldTreatURLAsSrcdocDocument(url)) 1019 if (!shouldTreatURLAsSrcdocDocument(url))
1020 return SubstituteData(); 1020 return SubstituteData();
1021 String srcdoc = m_frame->deprecatedLocalOwner()->fastGetAttribute(srcdocAttr ); 1021 String srcdoc = m_frame->deprecatedLocalOwner()->fastGetAttribute(srcdocAttr );
1022 ASSERT(!srcdoc.isNull()); 1022 DCHECK(!srcdoc.isNull());
1023 CString encodedSrcdoc = srcdoc.utf8(); 1023 CString encodedSrcdoc = srcdoc.utf8();
1024 return SubstituteData(SharedBuffer::create(encodedSrcdoc.data(), encodedSrcd oc.length()), "text/html", "UTF-8", KURL()); 1024 return SubstituteData(SharedBuffer::create(encodedSrcdoc.data(), encodedSrcd oc.length()), "text/html", "UTF-8", KURL());
1025 } 1025 }
1026 1026
1027 void FrameLoader::reportLocalLoadFailed(LocalFrame* frame, const String& url) 1027 void FrameLoader::reportLocalLoadFailed(LocalFrame* frame, const String& url)
1028 { 1028 {
1029 ASSERT(!url.isEmpty()); 1029 DCHECK(!url.isEmpty());
1030 if (!frame) 1030 if (!frame)
1031 return; 1031 return;
1032 1032
1033 frame->document()->addConsoleMessage(ConsoleMessage::create(SecurityMessageS ource, ErrorMessageLevel, "Not allowed to load local resource: " + url)); 1033 frame->document()->addConsoleMessage(ConsoleMessage::create(SecurityMessageS ource, ErrorMessageLevel, "Not allowed to load local resource: " + url));
1034 } 1034 }
1035 1035
1036 void FrameLoader::stopAllLoaders() 1036 void FrameLoader::stopAllLoaders()
1037 { 1037 {
1038 if (m_frame->document()->pageDismissalEventBeingDispatched() != Document::No Dismissal) 1038 if (m_frame->document()->pageDismissalEventBeingDispatched() != Document::No Dismissal)
1039 return; 1039 return;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1119 // window.stop(), which will in turn detach the provisional document loader. 1119 // window.stop(), which will in turn detach the provisional document loader.
1120 // At this point, the provisional document loader should not detach, because 1120 // At this point, the provisional document loader should not detach, because
1121 // then the FrameLoader would not have any attached DocumentLoaders. 1121 // then the FrameLoader would not have any attached DocumentLoaders.
1122 if (m_documentLoader) { 1122 if (m_documentLoader) {
1123 AutoReset<bool> inDetachDocumentLoader(&m_protectProvisionalLoader, true ); 1123 AutoReset<bool> inDetachDocumentLoader(&m_protectProvisionalLoader, true );
1124 detachDocumentLoader(m_documentLoader); 1124 detachDocumentLoader(m_documentLoader);
1125 } 1125 }
1126 // 'abort' listeners can also detach the frame. 1126 // 'abort' listeners can also detach the frame.
1127 if (!m_frame->client()) 1127 if (!m_frame->client())
1128 return false; 1128 return false;
1129 ASSERT(m_provisionalDocumentLoader == pdl); 1129 DCHECK(m_provisionalDocumentLoader == pdl);
yhirano 2016/09/12 04:33:13 DCHECK_EQ
hiroshige 2016/09/13 08:43:20 Done.
1130 // No more events will be dispatched so detach the Document. 1130 // No more events will be dispatched so detach the Document.
1131 // TODO(yoav): Should we also be nullifying domWindow's document (or domWind ow) since the doc is now detached? 1131 // TODO(yoav): Should we also be nullifying domWindow's document (or domWind ow) since the doc is now detached?
1132 if (m_frame->document()) 1132 if (m_frame->document())
1133 m_frame->document()->shutdown(); 1133 m_frame->document()->shutdown();
1134 m_documentLoader = m_provisionalDocumentLoader.release(); 1134 m_documentLoader = m_provisionalDocumentLoader.release();
1135 takeObjectSnapshot(); 1135 takeObjectSnapshot();
1136 1136
1137 return true; 1137 return true;
1138 } 1138 }
1139 1139
1140 void FrameLoader::commitProvisionalLoad() 1140 void FrameLoader::commitProvisionalLoad()
1141 { 1141 {
1142 ASSERT(client()->hasWebView()); 1142 DCHECK(client()->hasWebView());
1143 1143
1144 // Check if the destination page is allowed to access the previous page's ti ming information. 1144 // Check if the destination page is allowed to access the previous page's ti ming information.
1145 if (m_frame->document()) { 1145 if (m_frame->document()) {
1146 RefPtr<SecurityOrigin> securityOrigin = SecurityOrigin::create(m_provisi onalDocumentLoader->request().url()); 1146 RefPtr<SecurityOrigin> securityOrigin = SecurityOrigin::create(m_provisi onalDocumentLoader->request().url());
1147 m_provisionalDocumentLoader->timing().setHasSameOriginAsPreviousDocument (securityOrigin->canRequest(m_frame->document()->url())); 1147 m_provisionalDocumentLoader->timing().setHasSameOriginAsPreviousDocument (securityOrigin->canRequest(m_frame->document()->url()));
1148 } 1148 }
1149 1149
1150 if (!prepareForCommit()) 1150 if (!prepareForCommit())
1151 return; 1151 return;
1152 1152
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 } 1272 }
1273 1273
1274 HistoryCommitType historyCommitType = loadTypeToCommitType(m_loadType); 1274 HistoryCommitType historyCommitType = loadTypeToCommitType(m_loadType);
1275 if (loader == m_provisionalDocumentLoader) { 1275 if (loader == m_provisionalDocumentLoader) {
1276 client()->dispatchDidFailProvisionalLoad(error, historyCommitType); 1276 client()->dispatchDidFailProvisionalLoad(error, historyCommitType);
1277 if (loader != m_provisionalDocumentLoader) 1277 if (loader != m_provisionalDocumentLoader)
1278 return; 1278 return;
1279 detachDocumentLoader(m_provisionalDocumentLoader); 1279 detachDocumentLoader(m_provisionalDocumentLoader);
1280 m_progressTracker->progressCompleted(); 1280 m_progressTracker->progressCompleted();
1281 } else { 1281 } else {
1282 ASSERT(loader == m_documentLoader); 1282 DCHECK(loader == m_documentLoader);
yhirano 2016/09/12 04:33:13 DCHECK_EQ
hiroshige 2016/09/13 08:43:20 Done.
1283 if (m_frame->document()->parser()) 1283 if (m_frame->document()->parser())
1284 m_frame->document()->parser()->stopParsing(); 1284 m_frame->document()->parser()->stopParsing();
1285 m_documentLoader->setSentDidFinishLoad(); 1285 m_documentLoader->setSentDidFinishLoad();
1286 if (!m_provisionalDocumentLoader && m_frame->isLoading()) { 1286 if (!m_provisionalDocumentLoader && m_frame->isLoading()) {
1287 client()->dispatchDidFailLoad(error, historyCommitType); 1287 client()->dispatchDidFailLoad(error, historyCommitType);
1288 m_progressTracker->progressCompleted(); 1288 m_progressTracker->progressCompleted();
1289 } 1289 }
1290 } 1290 }
1291 checkCompleted(); 1291 checkCompleted();
1292 } 1292 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1405 return false; 1405 return false;
1406 } 1406 }
1407 if (!LocalDOMWindow::allowPopUp(*m_frame) && !UserGestureIndicator::utilizeU serGesture()) 1407 if (!LocalDOMWindow::allowPopUp(*m_frame) && !UserGestureIndicator::utilizeU serGesture())
1408 return false; 1408 return false;
1409 client()->loadURLExternally(request, policy, String(), replacesCurrentHistor yItem); 1409 client()->loadURLExternally(request, policy, String(), replacesCurrentHistor yItem);
1410 return false; 1410 return false;
1411 } 1411 }
1412 1412
1413 void FrameLoader::startLoad(FrameLoadRequest& frameLoadRequest, FrameLoadType ty pe, NavigationPolicy navigationPolicy) 1413 void FrameLoader::startLoad(FrameLoadRequest& frameLoadRequest, FrameLoadType ty pe, NavigationPolicy navigationPolicy)
1414 { 1414 {
1415 ASSERT(client()->hasWebView()); 1415 DCHECK(client()->hasWebView());
1416 if (m_frame->document()->pageDismissalEventBeingDispatched() != Document::No Dismissal) 1416 if (m_frame->document()->pageDismissalEventBeingDispatched() != Document::No Dismissal)
1417 return; 1417 return;
1418 1418
1419 NavigationType navigationType = determineNavigationType(type, frameLoadReque st.resourceRequest().httpBody() || frameLoadRequest.form(), frameLoadRequest.tri ggeringEvent()); 1419 NavigationType navigationType = determineNavigationType(type, frameLoadReque st.resourceRequest().httpBody() || frameLoadRequest.form(), frameLoadRequest.tri ggeringEvent());
1420 frameLoadRequest.resourceRequest().setRequestContext(determineRequestContext FromNavigationType(navigationType)); 1420 frameLoadRequest.resourceRequest().setRequestContext(determineRequestContext FromNavigationType(navigationType));
1421 frameLoadRequest.resourceRequest().setFrameType(m_frame->isMainFrame() ? Web URLRequest::FrameTypeTopLevel : WebURLRequest::FrameTypeNested); 1421 frameLoadRequest.resourceRequest().setFrameType(m_frame->isMainFrame() ? Web URLRequest::FrameTypeTopLevel : WebURLRequest::FrameTypeNested);
1422 ResourceRequest& request = frameLoadRequest.resourceRequest(); 1422 ResourceRequest& request = frameLoadRequest.resourceRequest();
1423 if (!shouldContinueForNavigationPolicy(request, frameLoadRequest.substituteD ata(), nullptr, frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), na vigationType, navigationPolicy, type == FrameLoadTypeReplaceCurrentItem, frameLo adRequest.clientRedirect() == ClientRedirectPolicy::ClientRedirect)) 1423 if (!shouldContinueForNavigationPolicy(request, frameLoadRequest.substituteD ata(), nullptr, frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), na vigationType, navigationPolicy, type == FrameLoadTypeReplaceCurrentItem, frameLo adRequest.clientRedirect() == ClientRedirectPolicy::ClientRedirect))
1424 return; 1424 return;
1425 1425
(...skipping 18 matching lines...) Expand all
1444 if (frameLoadRequest.form()) 1444 if (frameLoadRequest.form())
1445 client()->dispatchWillSubmitForm(frameLoadRequest.form()); 1445 client()->dispatchWillSubmitForm(frameLoadRequest.form());
1446 1446
1447 m_progressTracker->progressStarted(); 1447 m_progressTracker->progressStarted();
1448 if (m_provisionalDocumentLoader->isClientRedirect()) 1448 if (m_provisionalDocumentLoader->isClientRedirect())
1449 m_provisionalDocumentLoader->appendRedirect(m_frame->document()->url()); 1449 m_provisionalDocumentLoader->appendRedirect(m_frame->document()->url());
1450 m_provisionalDocumentLoader->appendRedirect(m_provisionalDocumentLoader->req uest().url()); 1450 m_provisionalDocumentLoader->appendRedirect(m_provisionalDocumentLoader->req uest().url());
1451 m_provisionalDocumentLoader->upgradeInsecureRequest(); 1451 m_provisionalDocumentLoader->upgradeInsecureRequest();
1452 double triggeringEventTime = frameLoadRequest.triggeringEvent() ? frameLoadR equest.triggeringEvent()->platformTimeStamp() : 0; 1452 double triggeringEventTime = frameLoadRequest.triggeringEvent() ? frameLoadR equest.triggeringEvent()->platformTimeStamp() : 0;
1453 client()->dispatchDidStartProvisionalLoad(triggeringEventTime); 1453 client()->dispatchDidStartProvisionalLoad(triggeringEventTime);
1454 ASSERT(m_provisionalDocumentLoader); 1454 DCHECK(m_provisionalDocumentLoader);
1455 m_provisionalDocumentLoader->startLoadingMainResource(); 1455 m_provisionalDocumentLoader->startLoadingMainResource();
1456 1456
1457 takeObjectSnapshot(); 1457 takeObjectSnapshot();
1458 } 1458 }
1459 1459
1460 void FrameLoader::applyUserAgent(ResourceRequest& request) 1460 void FrameLoader::applyUserAgent(ResourceRequest& request)
1461 { 1461 {
1462 String userAgent = this->userAgent(); 1462 String userAgent = this->userAgent();
1463 ASSERT(!userAgent.isNull()); 1463 DCHECK(!userAgent.isNull());
1464 request.setHTTPUserAgent(AtomicString(userAgent)); 1464 request.setHTTPUserAgent(AtomicString(userAgent));
1465 } 1465 }
1466 1466
1467 bool FrameLoader::shouldInterruptLoadForXFrameOptions(const String& content, con st KURL& url, unsigned long requestIdentifier) 1467 bool FrameLoader::shouldInterruptLoadForXFrameOptions(const String& content, con st KURL& url, unsigned long requestIdentifier)
1468 { 1468 {
1469 UseCounter::count(m_frame->domWindow()->document(), UseCounter::XFrameOption s); 1469 UseCounter::count(m_frame->domWindow()->document(), UseCounter::XFrameOption s);
1470 1470
1471 Frame* topFrame = m_frame->tree().top(); 1471 Frame* topFrame = m_frame->tree().top();
1472 if (m_frame == topFrame) 1472 if (m_frame == topFrame)
1473 return false; 1473 return false;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1582 { 1582 {
1583 Frame* parentFrame = m_frame->tree().parent(); 1583 Frame* parentFrame = m_frame->tree().parent();
1584 if (!parentFrame) 1584 if (!parentFrame)
1585 return kLeaveInsecureRequestsAlone; 1585 return kLeaveInsecureRequestsAlone;
1586 1586
1587 return parentFrame->securityContext()->getInsecureRequestPolicy(); 1587 return parentFrame->securityContext()->getInsecureRequestPolicy();
1588 } 1588 }
1589 1589
1590 SecurityContext::InsecureNavigationsSet* FrameLoader::insecureNavigationsToUpgra de() const 1590 SecurityContext::InsecureNavigationsSet* FrameLoader::insecureNavigationsToUpgra de() const
1591 { 1591 {
1592 ASSERT(m_frame); 1592 DCHECK(m_frame);
1593 Frame* parentFrame = m_frame->tree().parent(); 1593 Frame* parentFrame = m_frame->tree().parent();
1594 if (!parentFrame) 1594 if (!parentFrame)
1595 return nullptr; 1595 return nullptr;
1596 1596
1597 // FIXME: We need a way to propagate insecure requests policy flags to 1597 // FIXME: We need a way to propagate insecure requests policy flags to
1598 // out-of-process frames. For now, we'll always use default behavior. 1598 // out-of-process frames. For now, we'll always use default behavior.
1599 if (!parentFrame->isLocalFrame()) 1599 if (!parentFrame->isLocalFrame())
1600 return nullptr; 1600 return nullptr;
1601 1601
1602 ASSERT(toLocalFrame(parentFrame)->document()); 1602 DCHECK(toLocalFrame(parentFrame)->document());
1603 return toLocalFrame(parentFrame)->document()->insecureNavigationsToUpgrade() ; 1603 return toLocalFrame(parentFrame)->document()->insecureNavigationsToUpgrade() ;
1604 } 1604 }
1605 1605
1606 std::unique_ptr<TracedValue> FrameLoader::toTracedValue() const 1606 std::unique_ptr<TracedValue> FrameLoader::toTracedValue() const
1607 { 1607 {
1608 std::unique_ptr<TracedValue> tracedValue = TracedValue::create(); 1608 std::unique_ptr<TracedValue> tracedValue = TracedValue::create();
1609 tracedValue->beginDictionary("frame"); 1609 tracedValue->beginDictionary("frame");
1610 tracedValue->setString("id_ref", String::format("0x%" PRIx64, static_cast<ui nt64_t>(reinterpret_cast<uintptr_t>(m_frame.get())))); 1610 tracedValue->setString("id_ref", String::format("0x%" PRIx64, static_cast<ui nt64_t>(reinterpret_cast<uintptr_t>(m_frame.get()))));
1611 tracedValue->endDictionary(); 1611 tracedValue->endDictionary();
1612 tracedValue->setBoolean("isLoadingMainFrame", isLoadingMainFrame()); 1612 tracedValue->setBoolean("isLoadingMainFrame", isLoadingMainFrame());
1613 tracedValue->setString("stateMachine", m_stateMachine.toString()); 1613 tracedValue->setString("stateMachine", m_stateMachine.toString());
1614 tracedValue->setString("provisionalDocumentLoaderURL", m_provisionalDocument Loader ? m_provisionalDocumentLoader->url() : String()); 1614 tracedValue->setString("provisionalDocumentLoaderURL", m_provisionalDocument Loader ? m_provisionalDocumentLoader->url() : String());
1615 tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoa der->url() : String()); 1615 tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoa der->url() : String());
1616 return tracedValue; 1616 return tracedValue;
1617 } 1617 }
1618 1618
1619 inline void FrameLoader::takeObjectSnapshot() const 1619 inline void FrameLoader::takeObjectSnapshot() const
1620 { 1620 {
1621 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTraced Value()); 1621 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTraced Value());
1622 } 1622 }
1623 1623
1624 } // namespace blink 1624 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698