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

Side by Side Diff: Source/core/loader/DocumentLoader.cpp

Issue 252383010: Call DOMWindow::finishedLoading from FrameLoader::checkLoadCompleteForThisFrame (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/loader/DocumentLoader.h ('k') | Source/core/loader/FrameLoader.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 if (isArchiveMIMEType(response().mimeType())) 535 if (isArchiveMIMEType(response().mimeType()))
536 return; 536 return;
537 commitData(data, length); 537 commitData(data, length);
538 538
539 // If we are sending data to MediaDocument, we should stop here 539 // If we are sending data to MediaDocument, we should stop here
540 // and cancel the request. 540 // and cancel the request.
541 if (m_frame && m_frame->document()->isMediaDocument()) 541 if (m_frame && m_frame->document()->isMediaDocument())
542 cancelMainResourceLoad(ResourceError::cancelledError(m_request.url())); 542 cancelMainResourceLoad(ResourceError::cancelledError(m_request.url()));
543 } 543 }
544 544
545 void DocumentLoader::checkLoadComplete()
546 {
547 if (!m_frame || isLoading() || !m_committed)
548 return;
549 m_frame->domWindow()->finishedLoading();
550 }
551
552 void DocumentLoader::clearRedirectChain() 545 void DocumentLoader::clearRedirectChain()
553 { 546 {
554 m_redirectChain.clear(); 547 m_redirectChain.clear();
555 } 548 }
556 549
557 void DocumentLoader::appendRedirect(const KURL& url) 550 void DocumentLoader::appendRedirect(const KURL& url)
558 { 551 {
559 m_redirectChain.append(url); 552 m_redirectChain.append(url);
560 } 553 }
561 554
562 void DocumentLoader::detachFromFrame() 555 void DocumentLoader::detachFromFrame()
563 { 556 {
564 ASSERT(m_frame); 557 ASSERT(m_frame);
565 RefPtr<LocalFrame> protectFrame(m_frame); 558 RefPtr<LocalFrame> protectFrame(m_frame);
566 RefPtr<DocumentLoader> protectLoader(this); 559 RefPtr<DocumentLoader> protectLoader(this);
567 560
568 // It never makes sense to have a document loader that is detached from its 561 // It never makes sense to have a document loader that is detached from its
569 // frame have any loads active, so go ahead and kill all the loads. 562 // frame have any loads active, so go ahead and kill all the loads.
570 stopLoading(); 563 stopLoading();
571 564
572 m_applicationCacheHost->setApplicationCache(0); 565 m_applicationCacheHost->setApplicationCache(0);
573 InspectorInstrumentation::loaderDetachedFromFrame(m_frame, this); 566 InspectorInstrumentation::loaderDetachedFromFrame(m_frame, this);
574 m_frame = 0; 567 m_frame = 0;
575 } 568 }
576 569
577 void DocumentLoader::clearMainResourceLoader() 570 void DocumentLoader::clearMainResourceLoader()
578 { 571 {
579 m_loadingMainResource = false; 572 m_loadingMainResource = false;
580 checkLoadComplete();
581 } 573 }
582 574
583 void DocumentLoader::clearMainResourceHandle() 575 void DocumentLoader::clearMainResourceHandle()
584 { 576 {
585 if (!m_mainResource) 577 if (!m_mainResource)
586 return; 578 return;
587 m_mainResource->removeClient(this); 579 m_mainResource->removeClient(this);
588 m_mainResource = 0; 580 m_mainResource = 0;
589 } 581 }
590 582
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 void DocumentLoader::replaceDocument(const String& source, Document* ownerDocume nt) 822 void DocumentLoader::replaceDocument(const String& source, Document* ownerDocume nt)
831 { 823 {
832 m_frame->loader().stopAllLoaders(); 824 m_frame->loader().stopAllLoaders();
833 m_writer = createWriterFor(m_frame, ownerDocument, m_frame->document()->url( ), mimeType(), m_writer ? m_writer->encoding() : emptyAtom, m_writer ? m_writer ->encodingWasChosenByUser() : false, true); 825 m_writer = createWriterFor(m_frame, ownerDocument, m_frame->document()->url( ), mimeType(), m_writer ? m_writer->encoding() : emptyAtom, m_writer ? m_writer ->encodingWasChosenByUser() : false, true);
834 if (!source.isNull()) 826 if (!source.isNull())
835 m_writer->appendReplacingData(source); 827 m_writer->appendReplacingData(source);
836 endWriting(m_writer.get()); 828 endWriting(m_writer.get());
837 } 829 }
838 830
839 } // namespace WebCore 831 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/loader/DocumentLoader.h ('k') | Source/core/loader/FrameLoader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698