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

Side by Side Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2885633002: Style tag in an XHR's responseXML shouldn't make the responseXML be null. (Closed)
Patch Set: Move setting Document::well_formed_ Created 3 years, 7 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All
7 * rights reserved. 7 * rights reserved.
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
9 * (http://www.torchmobile.com/) 9 * (http://www.torchmobile.com/)
10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
(...skipping 3014 matching lines...) Expand 10 before | Expand all | Expand 10 after
3025 SetReadyState(kComplete); 3025 SetReadyState(kComplete);
3026 CheckCompleted(); 3026 CheckCompleted();
3027 } 3027 }
3028 3028
3029 void Document::ImplicitClose() { 3029 void Document::ImplicitClose() {
3030 DCHECK(!InStyleRecalc()); 3030 DCHECK(!InStyleRecalc());
3031 DCHECK(parser_); 3031 DCHECK(parser_);
3032 3032
3033 load_event_progress_ = kLoadEventInProgress; 3033 load_event_progress_ = kLoadEventInProgress;
3034 3034
3035 ScriptableDocumentParser* parser = GetScriptableDocumentParser();
3036 well_formed_ = parser && parser->WellFormed();
3037
3038 // We have to clear the parser, in case someone document.write()s from the 3035 // We have to clear the parser, in case someone document.write()s from the
3039 // onLoad event handler, as in Radar 3206524. 3036 // onLoad event handler, as in Radar 3206524.
3040 DetachParser(); 3037 DetachParser();
3041 3038
3042 if (GetFrame() && CanExecuteScripts(kNotAboutToExecuteScript)) { 3039 if (GetFrame() && CanExecuteScripts(kNotAboutToExecuteScript)) {
3043 ImageLoader::DispatchPendingLoadEvents(); 3040 ImageLoader::DispatchPendingLoadEvents();
3044 ImageLoader::DispatchPendingErrorEvents(); 3041 ImageLoader::DispatchPendingErrorEvents();
3045 } 3042 }
3046 3043
3047 // JS running below could remove the frame or destroy the LayoutView so we 3044 // JS running below could remove the frame or destroy the LayoutView so we
(...skipping 2446 matching lines...) Expand 10 before | Expand all | Expand 10 after
5494 DispatchEvent(Event::CreateBubble(EventTypeNames::DOMContentLoaded)); 5491 DispatchEvent(Event::CreateBubble(EventTypeNames::DOMContentLoaded));
5495 if (!document_timing_.DomContentLoadedEventEnd()) 5492 if (!document_timing_.DomContentLoadedEventEnd())
5496 document_timing_.MarkDomContentLoadedEventEnd(); 5493 document_timing_.MarkDomContentLoadedEventEnd();
5497 SetParsingState(kFinishedParsing); 5494 SetParsingState(kFinishedParsing);
5498 5495
5499 // Ensure Custom Element callbacks are drained before DOMContentLoaded. 5496 // Ensure Custom Element callbacks are drained before DOMContentLoaded.
5500 // FIXME: Remove this ad-hoc checkpoint when DOMContentLoaded is dispatched in 5497 // FIXME: Remove this ad-hoc checkpoint when DOMContentLoaded is dispatched in
5501 // a queued task, which will do a checkpoint anyway. https://crbug.com/425790 5498 // a queued task, which will do a checkpoint anyway. https://crbug.com/425790
5502 Microtask::PerformCheckpoint(V8PerIsolateData::MainThreadIsolate()); 5499 Microtask::PerformCheckpoint(V8PerIsolateData::MainThreadIsolate());
5503 5500
5501 ScriptableDocumentParser* parser = GetScriptableDocumentParser();
5502 well_formed_ = parser && parser->WellFormed();
5503
5504 if (LocalFrame* frame = this->GetFrame()) { 5504 if (LocalFrame* frame = this->GetFrame()) {
5505 // Don't update the layout tree if we haven't requested the main resource 5505 // Don't update the layout tree if we haven't requested the main resource
5506 // yet to avoid adding extra latency. Note that the first layout tree update 5506 // yet to avoid adding extra latency. Note that the first layout tree update
5507 // can be expensive since it triggers the parsing of the default stylesheets 5507 // can be expensive since it triggers the parsing of the default stylesheets
5508 // which are compiled-in. 5508 // which are compiled-in.
5509 const bool main_resource_was_already_requested = 5509 const bool main_resource_was_already_requested =
5510 frame->Loader().StateMachine()->CommittedFirstRealDocumentLoad(); 5510 frame->Loader().StateMachine()->CommittedFirstRealDocumentLoad();
5511 5511
5512 // FrameLoader::finishedParsing() might end up calling 5512 // FrameLoader::finishedParsing() might end up calling
5513 // Document::implicitClose() if all resource loads are 5513 // Document::implicitClose() if all resource loads are
(...skipping 1300 matching lines...) Expand 10 before | Expand all | Expand 10 after
6814 } 6814 }
6815 6815
6816 void showLiveDocumentInstances() { 6816 void showLiveDocumentInstances() {
6817 WeakDocumentSet& set = liveDocumentSet(); 6817 WeakDocumentSet& set = liveDocumentSet();
6818 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 6818 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
6819 for (blink::Document* document : set) 6819 for (blink::Document* document : set)
6820 fprintf(stderr, "- Document %p URL: %s\n", document, 6820 fprintf(stderr, "- Document %p URL: %s\n", document,
6821 document->Url().GetString().Utf8().data()); 6821 document->Url().GetString().Utf8().data());
6822 } 6822 }
6823 #endif 6823 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698