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

Side by Side Diff: third_party/WebKit/Source/core/loader/DocumentLoader.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 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 return &m_frame->loader(); 124 return &m_frame->loader();
125 } 125 }
126 126
127 ResourceLoader* DocumentLoader::mainResourceLoader() const 127 ResourceLoader* DocumentLoader::mainResourceLoader() const
128 { 128 {
129 return m_mainResource ? m_mainResource->loader() : nullptr; 129 return m_mainResource ? m_mainResource->loader() : nullptr;
130 } 130 }
131 131
132 DocumentLoader::~DocumentLoader() 132 DocumentLoader::~DocumentLoader()
133 { 133 {
134 ASSERT(!m_frame); 134 DCHECK(!m_frame);
135 ASSERT(!m_mainResource); 135 DCHECK(!m_mainResource);
136 ASSERT(!m_applicationCacheHost); 136 DCHECK(!m_applicationCacheHost);
137 } 137 }
138 138
139 DEFINE_TRACE(DocumentLoader) 139 DEFINE_TRACE(DocumentLoader)
140 { 140 {
141 visitor->trace(m_frame); 141 visitor->trace(m_frame);
142 visitor->trace(m_fetcher); 142 visitor->trace(m_fetcher);
143 visitor->trace(m_mainResource); 143 visitor->trace(m_mainResource);
144 visitor->trace(m_writer); 144 visitor->trace(m_writer);
145 visitor->trace(m_documentLoadTiming); 145 visitor->trace(m_documentLoadTiming);
146 visitor->trace(m_applicationCacheHost); 146 visitor->trace(m_applicationCacheHost);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 case Resource::TextTrack: 195 case Resource::TextTrack:
196 resource = RawResource::fetchTextTrack(request, fetcher()); 196 resource = RawResource::fetchTextTrack(request, fetcher());
197 break; 197 break;
198 case Resource::ImportResource: 198 case Resource::ImportResource:
199 resource = RawResource::fetchImport(request, fetcher()); 199 resource = RawResource::fetchImport(request, fetcher());
200 break; 200 break;
201 case Resource::Raw: 201 case Resource::Raw:
202 resource = RawResource::fetch(request, fetcher()); 202 resource = RawResource::fetch(request, fetcher());
203 break; 203 break;
204 default: 204 default:
205 ASSERT_NOT_REACHED(); 205 NOTREACHED();
206 } 206 }
207 207
208 if (resource) 208 if (resource)
209 fetcher()->preloadStarted(resource); 209 fetcher()->preloadStarted(resource);
210 return resource; 210 return resource;
211 } 211 }
212 212
213 void DocumentLoader::didRedirect(const KURL& oldURL, const KURL& newURL) 213 void DocumentLoader::didRedirect(const KURL& oldURL, const KURL& newURL)
214 { 214 {
215 timing().addRedirect(oldURL, newURL); 215 timing().addRedirect(oldURL, newURL);
(...skipping 14 matching lines...) Expand all
230 void DocumentLoader::didChangePerformanceTiming() 230 void DocumentLoader::didChangePerformanceTiming()
231 { 231 {
232 if (frame() && frame()->isMainFrame() && m_state >= Committed) { 232 if (frame() && frame()->isMainFrame() && m_state >= Committed) {
233 frameLoader()->client()->didChangePerformanceTiming(); 233 frameLoader()->client()->didChangePerformanceTiming();
234 } 234 }
235 } 235 }
236 236
237 void DocumentLoader::didObserveLoadingBehavior(WebLoadingBehaviorFlag behavior) 237 void DocumentLoader::didObserveLoadingBehavior(WebLoadingBehaviorFlag behavior)
238 { 238 {
239 if (frame() && frame()->isMainFrame()) { 239 if (frame() && frame()->isMainFrame()) {
240 ASSERT(m_state >= Committed); 240 DCHECK(m_state >= Committed);
yhirano 2016/09/12 04:33:12 DCHECK_GE
hiroshige 2016/09/13 08:43:19 Done.
241 frameLoader()->client()->didObserveLoadingBehavior(behavior); 241 frameLoader()->client()->didObserveLoadingBehavior(behavior);
242 } 242 }
243 } 243 }
244 244
245 void DocumentLoader::updateForSameDocumentNavigation(const KURL& newURL, SameDoc umentNavigationSource sameDocumentNavigationSource) 245 void DocumentLoader::updateForSameDocumentNavigation(const KURL& newURL, SameDoc umentNavigationSource sameDocumentNavigationSource)
246 { 246 {
247 KURL oldURL = m_request.url(); 247 KURL oldURL = m_request.url();
248 m_originalRequest.setURL(newURL); 248 m_originalRequest.setURL(newURL);
249 m_request.setURL(newURL); 249 m_request.setURL(newURL);
250 if (sameDocumentNavigationSource == SameDocumentNavigationHistoryApi) { 250 if (sameDocumentNavigationSource == SameDocumentNavigationHistoryApi) {
(...skipping 14 matching lines...) Expand all
265 void DocumentLoader::commitIfReady() 265 void DocumentLoader::commitIfReady()
266 { 266 {
267 if (m_state < Committed) { 267 if (m_state < Committed) {
268 m_state = Committed; 268 m_state = Committed;
269 frameLoader()->commitProvisionalLoad(); 269 frameLoader()->commitProvisionalLoad();
270 } 270 }
271 } 271 }
272 272
273 void DocumentLoader::notifyFinished(Resource* resource) 273 void DocumentLoader::notifyFinished(Resource* resource)
274 { 274 {
275 ASSERT_UNUSED(resource, m_mainResource == resource); 275 ALLOW_UNUSED_LOCAL(resource);
yhirano 2016/09/12 04:33:12 ditto as Resource::cancelTimerFired.
hiroshige 2016/09/13 08:43:20 Done.
276 ASSERT(m_mainResource); 276 DCHECK(m_mainResource == resource);
yhirano 2016/09/12 04:33:12 DCHECK_EQ
hiroshige 2016/09/13 08:43:19 Done.
277 DCHECK(m_mainResource);
277 278
278 if (!m_mainResource->errorOccurred() && !m_mainResource->wasCanceled()) { 279 if (!m_mainResource->errorOccurred() && !m_mainResource->wasCanceled()) {
279 finishedLoading(m_mainResource->loadFinishTime()); 280 finishedLoading(m_mainResource->loadFinishTime());
280 return; 281 return;
281 } 282 }
282 283
283 if (m_applicationCacheHost) 284 if (m_applicationCacheHost)
284 m_applicationCacheHost->failedLoadingMainResource(); 285 m_applicationCacheHost->failedLoadingMainResource();
285 m_state = MainResourceDone; 286 m_state = MainResourceDone;
286 frameLoader()->loadFailed(this, m_mainResource->resourceError()); 287 frameLoader()->loadFailed(this, m_mainResource->resourceError());
(...skipping 29 matching lines...) Expand all
316 317
317 m_applicationCacheHost->finishedLoadingMainResource(); 318 m_applicationCacheHost->finishedLoadingMainResource();
318 endWriting(m_writer.get()); 319 endWriting(m_writer.get());
319 if (m_state < MainResourceDone) 320 if (m_state < MainResourceDone)
320 m_state = MainResourceDone; 321 m_state = MainResourceDone;
321 clearMainResourceHandle(); 322 clearMainResourceHandle();
322 } 323 }
323 324
324 void DocumentLoader::redirectReceived(Resource* resource, ResourceRequest& reque st, const ResourceResponse& redirectResponse) 325 void DocumentLoader::redirectReceived(Resource* resource, ResourceRequest& reque st, const ResourceResponse& redirectResponse)
325 { 326 {
326 ASSERT_UNUSED(resource, resource == m_mainResource); 327 ALLOW_UNUSED_LOCAL(resource);
yhirano 2016/09/12 04:33:12 ditto as Resource::cancelTimerFired.
hiroshige 2016/09/13 08:43:19 Done.
327 ASSERT(!redirectResponse.isNull()); 328 DCHECK(resource == m_mainResource);
yhirano 2016/09/12 04:33:12 DCHECK_EQ
hiroshige 2016/09/13 08:43:20 Done.
329 DCHECK(!redirectResponse.isNull());
328 m_request = request; 330 m_request = request;
329 331
330 // If the redirecting url is not allowed to display content from the target origin, 332 // If the redirecting url is not allowed to display content from the target origin,
331 // then block the redirect. 333 // then block the redirect.
332 const KURL& requestURL = m_request.url(); 334 const KURL& requestURL = m_request.url();
333 RefPtr<SecurityOrigin> redirectingOrigin = SecurityOrigin::create(redirectRe sponse.url()); 335 RefPtr<SecurityOrigin> redirectingOrigin = SecurityOrigin::create(redirectRe sponse.url());
334 if (!redirectingOrigin->canDisplay(requestURL)) { 336 if (!redirectingOrigin->canDisplay(requestURL)) {
335 FrameLoader::reportLocalLoadFailed(m_frame, requestURL.getString()); 337 FrameLoader::reportLocalLoadFailed(m_frame, requestURL.getString());
336 m_fetcher->stopFetching(); 338 m_fetcher->stopFetching();
337 return; 339 return;
338 } 340 }
339 if (!frameLoader()->shouldContinueForNavigationPolicy(m_request, SubstituteD ata(), this, CheckContentSecurityPolicy, m_navigationType, NavigationPolicyCurre ntTab, replacesCurrentHistoryItem(), isClientRedirect())) { 341 if (!frameLoader()->shouldContinueForNavigationPolicy(m_request, SubstituteD ata(), this, CheckContentSecurityPolicy, m_navigationType, NavigationPolicyCurre ntTab, replacesCurrentHistoryItem(), isClientRedirect())) {
340 m_fetcher->stopFetching(); 342 m_fetcher->stopFetching();
341 return; 343 return;
342 } 344 }
343 345
344 ASSERT(timing().fetchStart()); 346 DCHECK(timing().fetchStart());
345 appendRedirect(requestURL); 347 appendRedirect(requestURL);
346 didRedirect(redirectResponse.url(), requestURL); 348 didRedirect(redirectResponse.url(), requestURL);
347 frameLoader()->client()->dispatchDidReceiveServerRedirectForProvisionalLoad( ); 349 frameLoader()->client()->dispatchDidReceiveServerRedirectForProvisionalLoad( );
348 } 350 }
349 351
350 static bool canShowMIMEType(const String& mimeType, LocalFrame* frame) 352 static bool canShowMIMEType(const String& mimeType, LocalFrame* frame)
351 { 353 {
352 if (Platform::current()->mimeRegistry()->supportsMIMEType(mimeType) == WebMi meRegistry::IsSupported) 354 if (Platform::current()->mimeRegistry()->supportsMIMEType(mimeType) == WebMi meRegistry::IsSupported)
353 return true; 355 return true;
354 PluginData* pluginData = frame->pluginData(); 356 PluginData* pluginData = frame->pluginData();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 m_redirectChain.removeLast(); 398 m_redirectChain.removeLast();
397 appendRedirect(blockedURL); 399 appendRedirect(blockedURL);
398 m_response = ResourceResponse(blockedURL, "text/html", 0, nullAtom, String() ); 400 m_response = ResourceResponse(blockedURL, "text/html", 0, nullAtom, String() );
399 finishedLoading(monotonicallyIncreasingTime()); 401 finishedLoading(monotonicallyIncreasingTime());
400 402
401 return; 403 return;
402 } 404 }
403 405
404 void DocumentLoader::responseReceived(Resource* resource, const ResourceResponse & response, std::unique_ptr<WebDataConsumerHandle> handle) 406 void DocumentLoader::responseReceived(Resource* resource, const ResourceResponse & response, std::unique_ptr<WebDataConsumerHandle> handle)
405 { 407 {
406 ASSERT_UNUSED(resource, m_mainResource == resource); 408 ALLOW_UNUSED_LOCAL(resource);
yhirano 2016/09/12 04:33:12 ditto as Resource::cancelTimerFired.
hiroshige 2016/09/13 08:43:19 Done.
407 ASSERT_UNUSED(handle, !handle); 409 DCHECK(m_mainResource == resource);
yhirano 2016/09/12 04:33:12 DCHECK_EQ
hiroshige 2016/09/13 08:43:19 Done.
408 ASSERT(frame()); 410 ALLOW_UNUSED_LOCAL(handle);
yhirano 2016/09/12 04:33:12 ditto as Resource::cancelTimerFired.
hiroshige 2016/09/13 08:43:19 Done.
411 DCHECK(!handle);
412 DCHECK(frame());
409 413
410 m_applicationCacheHost->didReceiveResponseForMainResource(response); 414 m_applicationCacheHost->didReceiveResponseForMainResource(response);
411 415
412 // The memory cache doesn't understand the application cache or its caching rules. So if a main resource is served 416 // The memory cache doesn't understand the application cache or its caching rules. So if a main resource is served
413 // from the application cache, ensure we don't save the result for future us e. All responses loaded 417 // from the application cache, ensure we don't save the result for future us e. All responses loaded
414 // from appcache will have a non-zero appCacheID(). 418 // from appcache will have a non-zero appCacheID().
415 if (response.appCacheID()) 419 if (response.appCacheID())
416 memoryCache()->remove(m_mainResource.get()); 420 memoryCache()->remove(m_mainResource.get());
417 421
418 m_contentSecurityPolicy = ContentSecurityPolicy::create(); 422 m_contentSecurityPolicy = ContentSecurityPolicy::create();
(...skipping 13 matching lines...) Expand all
432 String message = "Refused to display '" + response.url().elidedS tring() + "' in a frame because it set 'X-Frame-Options' to '" + content + "'."; 436 String message = "Refused to display '" + response.url().elidedS tring() + "' in a frame because it set 'X-Frame-Options' to '" + content + "'.";
433 ConsoleMessage* consoleMessage = ConsoleMessage::createForReques t(SecurityMessageSource, ErrorMessageLevel, message, response.url(), mainResourc eIdentifier()); 437 ConsoleMessage* consoleMessage = ConsoleMessage::createForReques t(SecurityMessageSource, ErrorMessageLevel, message, response.url(), mainResourc eIdentifier());
434 frame()->document()->addConsoleMessage(consoleMessage); 438 frame()->document()->addConsoleMessage(consoleMessage);
435 439
436 cancelLoadAfterXFrameOptionsOrCSPDenied(response); 440 cancelLoadAfterXFrameOptionsOrCSPDenied(response);
437 return; 441 return;
438 } 442 }
439 } 443 }
440 } 444 }
441 445
442 ASSERT(!m_frame->page()->defersLoading()); 446 DCHECK(!m_frame->page()->defersLoading());
443 447
444 m_response = response; 448 m_response = response;
445 449
446 if (isArchiveMIMEType(m_response.mimeType()) && m_mainResource->getDataBuffe ringPolicy() != BufferData) 450 if (isArchiveMIMEType(m_response.mimeType()) && m_mainResource->getDataBuffe ringPolicy() != BufferData)
447 m_mainResource->setDataBufferingPolicy(BufferData); 451 m_mainResource->setDataBufferingPolicy(BufferData);
448 452
449 if (!shouldContinueForResponse()) { 453 if (!shouldContinueForResponse()) {
450 InspectorInstrumentation::continueWithPolicyIgnore(m_frame, this, m_main Resource->identifier(), m_response, m_mainResource.get()); 454 InspectorInstrumentation::continueWithPolicyIgnore(m_frame, this, m_main Resource->identifier(), m_response, m_mainResource.get());
451 m_fetcher->stopFetching(); 455 m_fetcher->stopFetching();
452 return; 456 return;
(...skipping 21 matching lines...) Expand all
474 if (shouldInheritSecurityOriginFromOwner(url())) { 478 if (shouldInheritSecurityOriginFromOwner(url())) {
475 Frame* ownerFrame = m_frame->tree().parent(); 479 Frame* ownerFrame = m_frame->tree().parent();
476 if (!ownerFrame) 480 if (!ownerFrame)
477 ownerFrame = m_frame->loader().opener(); 481 ownerFrame = m_frame->loader().opener();
478 if (ownerFrame && ownerFrame->isLocalFrame()) 482 if (ownerFrame && ownerFrame->isLocalFrame())
479 owner = toLocalFrame(ownerFrame)->document(); 483 owner = toLocalFrame(ownerFrame)->document();
480 } 484 }
481 DocumentInit init(owner, url(), m_frame); 485 DocumentInit init(owner, url(), m_frame);
482 init.withNewRegistrationContext(); 486 init.withNewRegistrationContext();
483 m_frame->loader().clear(); 487 m_frame->loader().clear();
484 ASSERT(m_frame->page()); 488 DCHECK(m_frame->page());
485 489
486 ParserSynchronizationPolicy parsingPolicy = AllowAsynchronousParsing; 490 ParserSynchronizationPolicy parsingPolicy = AllowAsynchronousParsing;
487 if ((m_substituteData.isValid() && m_substituteData.forceSynchronousLoad()) || !Document::threadedParsingEnabledForTesting()) 491 if ((m_substituteData.isValid() && m_substituteData.forceSynchronousLoad()) || !Document::threadedParsingEnabledForTesting())
488 parsingPolicy = ForceSynchronousParsing; 492 parsingPolicy = ForceSynchronousParsing;
489 493
490 m_writer = createWriterFor(init, mimeType, encoding, false, parsingPolicy, o verridingURL); 494 m_writer = createWriterFor(init, mimeType, encoding, false, parsingPolicy, o verridingURL);
491 m_writer->setDocumentWasLoadedAsPartOfNavigation(); 495 m_writer->setDocumentWasLoadedAsPartOfNavigation();
492 m_frame->document()->maybeHandleHttpRefresh(m_response.httpHeaderField(HTTPN ames::Refresh), Document::HttpRefreshFromHeader); 496 m_frame->document()->maybeHandleHttpRefresh(m_response.httpHeaderField(HTTPN ames::Refresh), Document::HttpRefreshFromHeader);
493 } 497 }
494 498
495 void DocumentLoader::commitData(const char* bytes, size_t length) 499 void DocumentLoader::commitData(const char* bytes, size_t length)
496 { 500 {
497 ASSERT(m_state < MainResourceDone); 501 DCHECK(m_state < MainResourceDone);
yhirano 2016/09/12 04:33:12 DCHECK_LT
hiroshige 2016/09/13 08:43:19 Done.
498 ensureWriter(m_response.mimeType()); 502 ensureWriter(m_response.mimeType());
499 503
500 // This can happen if document.close() is called by an event handler while 504 // This can happen if document.close() is called by an event handler while
501 // there's still pending incoming data. 505 // there's still pending incoming data.
502 if (m_frame && !m_frame->document()->parsing()) 506 if (m_frame && !m_frame->document()->parsing())
503 return; 507 return;
504 508
505 if (length) 509 if (length)
506 m_dataReceived = true; 510 m_dataReceived = true;
507 511
508 m_writer->addData(bytes, length); 512 m_writer->addData(bytes, length);
509 } 513 }
510 514
511 void DocumentLoader::dataReceived(Resource* resource, const char* data, size_t l ength) 515 void DocumentLoader::dataReceived(Resource* resource, const char* data, size_t l ength)
512 { 516 {
513 ASSERT(data); 517 DCHECK(data);
514 ASSERT(length); 518 DCHECK(length);
515 ASSERT_UNUSED(resource, resource == m_mainResource); 519 ALLOW_UNUSED_LOCAL(resource);
yhirano 2016/09/12 04:33:12 ditto as Resource::cancelTimerFired.
hiroshige 2016/09/13 08:43:19 Done.
516 ASSERT(!m_response.isNull()); 520 DCHECK(resource == m_mainResource);
yhirano 2016/09/12 04:33:12 DCHECK_EQ
hiroshige 2016/09/13 08:43:20 Done.
517 ASSERT(!m_frame->page()->defersLoading()); 521 DCHECK(!m_response.isNull());
522 DCHECK(!m_frame->page()->defersLoading());
518 523
519 if (m_inDataReceived) { 524 if (m_inDataReceived) {
520 // If this function is reentered, defer processing of the additional 525 // If this function is reentered, defer processing of the additional
521 // data to the top-level invocation. Reentrant calls can occur because 526 // data to the top-level invocation. Reentrant calls can occur because
522 // of web platform (mis-)features that require running a nested message 527 // of web platform (mis-)features that require running a nested message
523 // loop: 528 // loop:
524 // - alert(), confirm(), prompt() 529 // - alert(), confirm(), prompt()
525 // - Detach of plugin elements. 530 // - Detach of plugin elements.
526 // - Synchronous XMLHTTPRequest 531 // - Synchronous XMLHTTPRequest
527 m_dataBuffer->append(data, length); 532 m_dataBuffer->append(data, length);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 m_redirectChain.clear(); 572 m_redirectChain.clear();
568 } 573 }
569 574
570 void DocumentLoader::appendRedirect(const KURL& url) 575 void DocumentLoader::appendRedirect(const KURL& url)
571 { 576 {
572 m_redirectChain.append(url); 577 m_redirectChain.append(url);
573 } 578 }
574 579
575 void DocumentLoader::detachFromFrame() 580 void DocumentLoader::detachFromFrame()
576 { 581 {
577 ASSERT(m_frame); 582 DCHECK(m_frame);
578 583
579 // It never makes sense to have a document loader that is detached from its 584 // It never makes sense to have a document loader that is detached from its
580 // frame have any loads active, so go ahead and kill all the loads. 585 // frame have any loads active, so go ahead and kill all the loads.
581 m_fetcher->stopFetching(); 586 m_fetcher->stopFetching();
582 587
583 // If that load cancellation triggered another detach, leave. 588 // If that load cancellation triggered another detach, leave.
584 // (fast/frames/detach-frame-nested-no-crash.html is an example of this.) 589 // (fast/frames/detach-frame-nested-no-crash.html is an example of this.)
585 if (!m_frame) 590 if (!m_frame)
586 return; 591 return;
587 592
(...skipping 12 matching lines...) Expand all
600 m_mainResource->removeClient(this); 605 m_mainResource->removeClient(this);
601 m_mainResource = nullptr; 606 m_mainResource = nullptr;
602 } 607 }
603 608
604 bool DocumentLoader::maybeCreateArchive() 609 bool DocumentLoader::maybeCreateArchive()
605 { 610 {
606 // Give the archive machinery a crack at this document. If the MIME type is not an archive type, it will return 0. 611 // Give the archive machinery a crack at this document. If the MIME type is not an archive type, it will return 0.
607 if (!isArchiveMIMEType(m_response.mimeType())) 612 if (!isArchiveMIMEType(m_response.mimeType()))
608 return false; 613 return false;
609 614
610 ASSERT(m_mainResource); 615 DCHECK(m_mainResource);
611 ArchiveResource* mainResource = m_fetcher->createArchive(m_mainResource.get( )); 616 ArchiveResource* mainResource = m_fetcher->createArchive(m_mainResource.get( ));
612 if (!mainResource) 617 if (!mainResource)
613 return false; 618 return false;
614 // The origin is the MHTML file, we need to set the base URL to the document encoded in the MHTML so 619 // The origin is the MHTML file, we need to set the base URL to the document encoded in the MHTML so
615 // relative URLs are resolved properly. 620 // relative URLs are resolved properly.
616 ensureWriter(mainResource->mimeType(), mainResource->url()); 621 ensureWriter(mainResource->mimeType(), mainResource->url());
617 622
618 // The Document has now been created. 623 // The Document has now been created.
619 m_frame->document()->enforceSandboxFlags(SandboxAll); 624 m_frame->document()->enforceSandboxFlags(SandboxAll);
620 625
(...skipping 25 matching lines...) Expand all
646 } 651 }
647 652
648 void DocumentLoader::upgradeInsecureRequest() 653 void DocumentLoader::upgradeInsecureRequest()
649 { 654 {
650 fetcher()->context().upgradeInsecureRequest(m_request); 655 fetcher()->context().upgradeInsecureRequest(m_request);
651 } 656 }
652 657
653 void DocumentLoader::startLoadingMainResource() 658 void DocumentLoader::startLoadingMainResource()
654 { 659 {
655 timing().markNavigationStart(); 660 timing().markNavigationStart();
656 ASSERT(!m_mainResource); 661 DCHECK(!m_mainResource);
657 ASSERT(m_state == NotStarted); 662 DCHECK(m_state == NotStarted);
yhirano 2016/09/12 04:33:12 DCHECK_EQ
hiroshige 2016/09/13 08:43:19 Done.
658 m_state = Provisional; 663 m_state = Provisional;
659 664
660 if (maybeLoadEmpty()) 665 if (maybeLoadEmpty())
661 return; 666 return;
662 667
663 ASSERT(timing().navigationStart()); 668 DCHECK(timing().navigationStart());
664 669
665 // PlzNavigate: 670 // PlzNavigate:
666 // The fetch has already started in the browser. Don't mark it again. 671 // The fetch has already started in the browser. Don't mark it again.
667 if (!m_frame->settings()->browserSideNavigationEnabled()) { 672 if (!m_frame->settings()->browserSideNavigationEnabled()) {
668 DCHECK(!timing().fetchStart()); 673 DCHECK(!timing().fetchStart());
669 timing().markFetchStart(); 674 timing().markFetchStart();
670 } 675 }
671 676
672 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, mainResourceLoadOptions, 677 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, mainResourceLoadOptions,
673 (DoNotBufferData, AllowStoredCredentials, ClientRequestedCredentials, Ch eckContentSecurityPolicy, DocumentContext)); 678 (DoNotBufferData, AllowStoredCredentials, ClientRequestedCredentials, Ch eckContentSecurityPolicy, DocumentContext));
674 FetchRequest fetchRequest(m_request, FetchInitiatorTypeNames::document, main ResourceLoadOptions); 679 FetchRequest fetchRequest(m_request, FetchInitiatorTypeNames::document, main ResourceLoadOptions);
675 m_mainResource = RawResource::fetchMainResource(fetchRequest, fetcher(), m_s ubstituteData); 680 m_mainResource = RawResource::fetchMainResource(fetchRequest, fetcher(), m_s ubstituteData);
676 if (!m_mainResource) { 681 if (!m_mainResource) {
677 m_request = ResourceRequest(blankURL()); 682 m_request = ResourceRequest(blankURL());
678 maybeLoadEmpty(); 683 maybeLoadEmpty();
679 return; 684 return;
680 } 685 }
681 // A bunch of headers are set when the underlying ResourceLoader is created, and m_request needs to include those. 686 // A bunch of headers are set when the underlying ResourceLoader is created, and m_request needs to include those.
682 // Even when using a cached resource, we may make some modification to the r equest, e.g. adding the referer header. 687 // Even when using a cached resource, we may make some modification to the r equest, e.g. adding the referer header.
683 m_request = mainResourceLoader() ? m_mainResource->resourceRequest() : fetch Request.resourceRequest(); 688 m_request = mainResourceLoader() ? m_mainResource->resourceRequest() : fetch Request.resourceRequest();
684 m_mainResource->addClient(this); 689 m_mainResource->addClient(this);
685 } 690 }
686 691
687 void DocumentLoader::endWriting(DocumentWriter* writer) 692 void DocumentLoader::endWriting(DocumentWriter* writer)
688 { 693 {
689 ASSERT_UNUSED(writer, m_writer == writer); 694 ALLOW_UNUSED_LOCAL(writer);
yhirano 2016/09/12 04:33:12 ditto as Resource::cancelTimerFired.
hiroshige 2016/09/13 08:43:19 Done.
695 DCHECK(m_writer == writer);
yhirano 2016/09/12 04:33:12 DCHECK_EQ
hiroshige 2016/09/13 08:43:20 Done.
690 m_writer->end(); 696 m_writer->end();
691 m_writer.clear(); 697 m_writer.clear();
692 } 698 }
693 699
694 DocumentWriter* DocumentLoader::createWriterFor(const DocumentInit& init, const AtomicString& mimeType, const AtomicString& encoding, bool dispatchWindowObjectA vailable, ParserSynchronizationPolicy parsingPolicy, const KURL& overridingURL) 700 DocumentWriter* DocumentLoader::createWriterFor(const DocumentInit& init, const AtomicString& mimeType, const AtomicString& encoding, bool dispatchWindowObjectA vailable, ParserSynchronizationPolicy parsingPolicy, const KURL& overridingURL)
695 { 701 {
696 LocalFrame* frame = init.frame(); 702 LocalFrame* frame = init.frame();
697 703
698 ASSERT(!frame->document() || !frame->document()->isActive()); 704 DCHECK(!frame->document() || !frame->document()->isActive());
699 ASSERT(frame->tree().childCount() == 0); 705 DCHECK_EQ(frame->tree().childCount(), 0u);
700 706
701 if (!init.shouldReuseDefaultView()) 707 if (!init.shouldReuseDefaultView())
702 frame->setDOMWindow(LocalDOMWindow::create(*frame)); 708 frame->setDOMWindow(LocalDOMWindow::create(*frame));
703 709
704 Document* document = frame->localDOMWindow()->installNewDocument(mimeType, i nit); 710 Document* document = frame->localDOMWindow()->installNewDocument(mimeType, i nit);
705 711
706 // This should be set before receivedFirstData(). 712 // This should be set before receivedFirstData().
707 if (!overridingURL.isEmpty()) 713 if (!overridingURL.isEmpty())
708 frame->document()->setBaseURLOverride(overridingURL); 714 frame->document()->setBaseURLOverride(overridingURL);
709 715
(...skipping 21 matching lines...) Expand all
731 { 737 {
732 m_writer = createWriterFor(init, mimeType(), m_writer ? m_writer->encoding() : emptyAtom, true, ForceSynchronousParsing); 738 m_writer = createWriterFor(init, mimeType(), m_writer ? m_writer->encoding() : emptyAtom, true, ForceSynchronousParsing);
733 if (!source.isNull()) 739 if (!source.isNull())
734 m_writer->appendReplacingData(source); 740 m_writer->appendReplacingData(source);
735 endWriting(m_writer.get()); 741 endWriting(m_writer.get());
736 } 742 }
737 743
738 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); 744 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader);
739 745
740 } // namespace blink 746 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698