| 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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 #include "core/platform/DateComponents.h" | 146 #include "core/platform/DateComponents.h" |
| 147 #include "core/platform/HistogramSupport.h" | 147 #include "core/platform/HistogramSupport.h" |
| 148 #include "core/platform/Language.h" | 148 #include "core/platform/Language.h" |
| 149 #include "core/platform/Timer.h" | 149 #include "core/platform/Timer.h" |
| 150 #include "core/platform/chromium/TraceEvent.h" | 150 #include "core/platform/chromium/TraceEvent.h" |
| 151 #include "core/platform/network/HTTPParsers.h" | 151 #include "core/platform/network/HTTPParsers.h" |
| 152 #include "core/platform/text/PlatformLocale.h" | 152 #include "core/platform/text/PlatformLocale.h" |
| 153 #include "core/platform/text/SegmentedString.h" | 153 #include "core/platform/text/SegmentedString.h" |
| 154 #include "core/rendering/HitTestRequest.h" | 154 #include "core/rendering/HitTestRequest.h" |
| 155 #include "core/rendering/HitTestResult.h" | 155 #include "core/rendering/HitTestResult.h" |
| 156 #include "core/rendering/RenderArena.h" | |
| 157 #include "core/rendering/RenderView.h" | 156 #include "core/rendering/RenderView.h" |
| 158 #include "core/rendering/RenderWidget.h" | 157 #include "core/rendering/RenderWidget.h" |
| 159 #include "core/rendering/TextAutosizer.h" | 158 #include "core/rendering/TextAutosizer.h" |
| 160 #include "core/svg/SVGDocumentExtensions.h" | 159 #include "core/svg/SVGDocumentExtensions.h" |
| 161 #include "core/svg/SVGStyleElement.h" | 160 #include "core/svg/SVGStyleElement.h" |
| 162 #include "core/workers/SharedWorkerRepository.h" | 161 #include "core/workers/SharedWorkerRepository.h" |
| 163 #include "core/xml/XSLTProcessor.h" | 162 #include "core/xml/XSLTProcessor.h" |
| 164 #include "core/xml/parser/XMLDocumentParser.h" | 163 #include "core/xml/parser/XMLDocumentParser.h" |
| 165 #include "weborigin/SchemeRegistry.h" | 164 #include "weborigin/SchemeRegistry.h" |
| 166 #include "weborigin/SecurityOrigin.h" | 165 #include "weborigin/SecurityOrigin.h" |
| (...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 | 520 |
| 522 // Currently we believe that Document can never outlive the parser. | 521 // Currently we believe that Document can never outlive the parser. |
| 523 // Although the Document may be replaced synchronously, DocumentParsers | 522 // Although the Document may be replaced synchronously, DocumentParsers |
| 524 // generally keep at least one reference to an Element which would in turn | 523 // generally keep at least one reference to an Element which would in turn |
| 525 // has a reference to the Document. If you hit this ASSERT, then that | 524 // has a reference to the Document. If you hit this ASSERT, then that |
| 526 // assumption is wrong. DocumentParser::detach() should ensure that even | 525 // assumption is wrong. DocumentParser::detach() should ensure that even |
| 527 // if the DocumentParser outlives the Document it won't cause badness. | 526 // if the DocumentParser outlives the Document it won't cause badness. |
| 528 ASSERT(!m_parser || m_parser->refCount() == 1); | 527 ASSERT(!m_parser || m_parser->refCount() == 1); |
| 529 detachParser(); | 528 detachParser(); |
| 530 | 529 |
| 531 m_renderArena.clear(); | |
| 532 | |
| 533 if (this == topDocument()) | 530 if (this == topDocument()) |
| 534 clearAXObjectCache(); | 531 clearAXObjectCache(); |
| 535 | 532 |
| 536 m_decoder = 0; | 533 m_decoder = 0; |
| 537 | 534 |
| 538 if (m_styleSheetList) | 535 if (m_styleSheetList) |
| 539 m_styleSheetList->detachFromDocument(); | 536 m_styleSheetList->detachFromDocument(); |
| 540 | 537 |
| 541 if (m_import) { | 538 if (m_import) { |
| 542 m_import->wasDetachedFromDocument(); | 539 m_import->wasDetachedFromDocument(); |
| (...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1599 { | 1596 { |
| 1600 PostAttachCallbackDisabler disabler(this); | 1597 PostAttachCallbackDisabler disabler(this); |
| 1601 WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates; | 1598 WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates; |
| 1602 | 1599 |
| 1603 RefPtr<FrameView> frameView = view(); | 1600 RefPtr<FrameView> frameView = view(); |
| 1604 if (frameView) { | 1601 if (frameView) { |
| 1605 frameView->pauseScheduledEvents(); | 1602 frameView->pauseScheduledEvents(); |
| 1606 frameView->beginDeferredRepaints(); | 1603 frameView->beginDeferredRepaints(); |
| 1607 } | 1604 } |
| 1608 | 1605 |
| 1609 ASSERT(!renderer() || renderArena()); | 1606 if (!renderer()) |
| 1610 if (!renderer() || !renderArena()) | |
| 1611 goto bailOut; | 1607 goto bailOut; |
| 1612 | 1608 |
| 1613 if (styleChangeType() == SubtreeStyleChange) | 1609 if (styleChangeType() == SubtreeStyleChange) |
| 1614 change = Force; | 1610 change = Force; |
| 1615 | 1611 |
| 1616 // Recalculating the root style (on the document) is not needed in the c
ommon case. | 1612 // Recalculating the root style (on the document) is not needed in the c
ommon case. |
| 1617 if ((change == Force) || (shouldDisplaySeamlesslyWithParent() && (change
>= Inherit))) { | 1613 if ((change == Force) || (shouldDisplaySeamlesslyWithParent() && (change
>= Inherit))) { |
| 1618 // style selector may set this again during recalc | 1614 // style selector may set this again during recalc |
| 1619 m_hasNodesWithPlaceholderStyle = false; | 1615 m_hasNodesWithPlaceholderStyle = false; |
| 1620 | 1616 |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1840 void Document::clearStyleResolver() | 1836 void Document::clearStyleResolver() |
| 1841 { | 1837 { |
| 1842 m_styleResolver.clear(); | 1838 m_styleResolver.clear(); |
| 1843 } | 1839 } |
| 1844 | 1840 |
| 1845 void Document::attach(const AttachContext& context) | 1841 void Document::attach(const AttachContext& context) |
| 1846 { | 1842 { |
| 1847 ASSERT(!attached()); | 1843 ASSERT(!attached()); |
| 1848 ASSERT(!m_axObjectCache || this != topDocument()); | 1844 ASSERT(!m_axObjectCache || this != topDocument()); |
| 1849 | 1845 |
| 1850 if (!m_renderArena) | |
| 1851 m_renderArena = RenderArena::create(); | |
| 1852 | |
| 1853 // Create the rendering tree | 1846 // Create the rendering tree |
| 1854 setRenderer(new (m_renderArena.get()) RenderView(this)); | 1847 setRenderer(new RenderView(this)); |
| 1855 renderView()->setIsInWindow(true); | 1848 renderView()->setIsInWindow(true); |
| 1856 | 1849 |
| 1857 recalcStyle(Force); | 1850 recalcStyle(Force); |
| 1858 | 1851 |
| 1859 ContainerNode::attach(context); | 1852 ContainerNode::attach(context); |
| 1860 } | 1853 } |
| 1861 | 1854 |
| 1862 void Document::detach(const AttachContext& context) | 1855 void Document::detach(const AttachContext& context) |
| 1863 { | 1856 { |
| 1864 ASSERT(attached()); | 1857 ASSERT(attached()); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1911 | 1904 |
| 1912 if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument()) | 1905 if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument()) |
| 1913 parentDocument()->didRemoveEventTargetNode(this); | 1906 parentDocument()->didRemoveEventTargetNode(this); |
| 1914 | 1907 |
| 1915 // This is required, as our Frame might delete itself as soon as it detaches | 1908 // This is required, as our Frame might delete itself as soon as it detaches |
| 1916 // us. However, this violates Node::detach() semantics, as it's never | 1909 // us. However, this violates Node::detach() semantics, as it's never |
| 1917 // possible to re-attach. Eventually Document::detach() should be renamed, | 1910 // possible to re-attach. Eventually Document::detach() should be renamed, |
| 1918 // or this setting of the frame to 0 could be made explicit in each of the | 1911 // or this setting of the frame to 0 could be made explicit in each of the |
| 1919 // callers of Document::detach(). | 1912 // callers of Document::detach(). |
| 1920 m_frame = 0; | 1913 m_frame = 0; |
| 1921 m_renderArena.clear(); | |
| 1922 | 1914 |
| 1923 if (m_mediaQueryMatcher) | 1915 if (m_mediaQueryMatcher) |
| 1924 m_mediaQueryMatcher->documentDestroyed(); | 1916 m_mediaQueryMatcher->documentDestroyed(); |
| 1925 | 1917 |
| 1926 lifecycleNotifier()->notifyDocumentWasDetached(); | 1918 lifecycleNotifier()->notifyDocumentWasDetached(); |
| 1927 } | 1919 } |
| 1928 | 1920 |
| 1929 void Document::prepareForDestruction() | 1921 void Document::prepareForDestruction() |
| 1930 { | 1922 { |
| 1931 disconnectDescendantFrames(); | 1923 disconnectDescendantFrames(); |
| (...skipping 3155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5087 { | 5079 { |
| 5088 return DocumentLifecycleNotifier::create(this); | 5080 return DocumentLifecycleNotifier::create(this); |
| 5089 } | 5081 } |
| 5090 | 5082 |
| 5091 DocumentLifecycleNotifier* Document::lifecycleNotifier() | 5083 DocumentLifecycleNotifier* Document::lifecycleNotifier() |
| 5092 { | 5084 { |
| 5093 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec
ycleNotifier()); | 5085 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec
ycleNotifier()); |
| 5094 } | 5086 } |
| 5095 | 5087 |
| 5096 } // namespace WebCore | 5088 } // namespace WebCore |
| OLD | NEW |