OLD | NEW |
---|---|
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 r ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. |
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) |
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
(...skipping 4044 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4055 { | 4055 { |
4056 ASSERT(!scriptableDocumentParser() || !m_parser->isParsing()); | 4056 ASSERT(!scriptableDocumentParser() || !m_parser->isParsing()); |
4057 ASSERT(!scriptableDocumentParser() || m_readyState != Loading); | 4057 ASSERT(!scriptableDocumentParser() || m_readyState != Loading); |
4058 setParsing(false); | 4058 setParsing(false); |
4059 if (!m_documentTiming.domContentLoadedEventStart) | 4059 if (!m_documentTiming.domContentLoadedEventStart) |
4060 m_documentTiming.domContentLoadedEventStart = monotonicallyIncreasingTim e(); | 4060 m_documentTiming.domContentLoadedEventStart = monotonicallyIncreasingTim e(); |
4061 dispatchEvent(Event::create(eventNames().DOMContentLoadedEvent, true, false) ); | 4061 dispatchEvent(Event::create(eventNames().DOMContentLoadedEvent, true, false) ); |
4062 if (!m_documentTiming.domContentLoadedEventEnd) | 4062 if (!m_documentTiming.domContentLoadedEventEnd) |
4063 m_documentTiming.domContentLoadedEventEnd = monotonicallyIncreasingTime( ); | 4063 m_documentTiming.domContentLoadedEventEnd = monotonicallyIncreasingTime( ); |
4064 | 4064 |
4065 // The loader's finishedParsing() method may invoke script that causes this object to | |
4066 // be dereferenced (when this document is in an iframe and the onload causes the iframe's src to change). | |
4067 // Keep it alive until we are done. | |
4068 RefPtr<Document> protect(this); | |
abarth-chromium
2013/07/22 18:06:24
Why doesn't this issue occur with HTML documents?
| |
4069 | |
4065 if (RefPtr<Frame> f = frame()) { | 4070 if (RefPtr<Frame> f = frame()) { |
4066 // FrameLoader::finishedParsing() might end up calling Document::implici tClose() if all | 4071 // FrameLoader::finishedParsing() might end up calling Document::implici tClose() if all |
4067 // resource loads are complete. HTMLObjectElements can start loading the ir resources from | 4072 // resource loads are complete. HTMLObjectElements can start loading the ir resources from |
4068 // post attach callbacks triggered by recalcStyle(). This means if we p arse out an <object> | 4073 // post attach callbacks triggered by recalcStyle(). This means if we p arse out an <object> |
4069 // tag and then reach the end of the document without updating styles, w e might not have yet | 4074 // tag and then reach the end of the document without updating styles, w e might not have yet |
4070 // started the resource load and might fire the window load event too ea rly. To avoid this | 4075 // started the resource load and might fire the window load event too ea rly. To avoid this |
4071 // we force the styles to be up to date before calling FrameLoader::fini shedParsing(). | 4076 // we force the styles to be up to date before calling FrameLoader::fini shedParsing(). |
4072 // See https://bugs.webkit.org/show_bug.cgi?id=36864 starting around com ment 35. | 4077 // See https://bugs.webkit.org/show_bug.cgi?id=36864 starting around com ment 35. |
4073 updateStyleIfNeeded(); | 4078 updateStyleIfNeeded(); |
4074 | 4079 |
(...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5151 { | 5156 { |
5152 return DocumentLifecycleNotifier::create(this); | 5157 return DocumentLifecycleNotifier::create(this); |
5153 } | 5158 } |
5154 | 5159 |
5155 DocumentLifecycleNotifier* Document::lifecycleNotifier() | 5160 DocumentLifecycleNotifier* Document::lifecycleNotifier() |
5156 { | 5161 { |
5157 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec ycleNotifier()); | 5162 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec ycleNotifier()); |
5158 } | 5163 } |
5159 | 5164 |
5160 } // namespace WebCore | 5165 } // namespace WebCore |
OLD | NEW |