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

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

Issue 198783006: Hold SVGFontFaceElement in SVGDocumentExtensions until StyleRecalc is finished (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed indent Created 6 years, 9 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
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 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 1806 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 1817
1818 // As a result of the style recalculation, the currently hovered element mig ht have been 1818 // As a result of the style recalculation, the currently hovered element mig ht have been
1819 // detached (for example, by setting display:none in the :hover style), sche dule another mouseMove event 1819 // detached (for example, by setting display:none in the :hover style), sche dule another mouseMove event
1820 // to check if any other elements ended up under the mouse pointer due to re -layout. 1820 // to check if any other elements ended up under the mouse pointer due to re -layout.
1821 if (hoverNode() && !hoverNode()->renderer() && frame()) 1821 if (hoverNode() && !hoverNode()->renderer() && frame())
1822 frame()->eventHandler().dispatchFakeMouseMoveEventSoon(); 1822 frame()->eventHandler().dispatchFakeMouseMoveEventSoon();
1823 1823
1824 if (m_focusedElement && !m_focusedElement->isFocusable()) 1824 if (m_focusedElement && !m_focusedElement->isFocusable())
1825 clearFocusedElementSoon(); 1825 clearFocusedElementSoon();
1826 1826
1827 #if ENABLE(SVG_FONTS)
1828 if (svgExtensions())
1829 accessSVGExtensions().removePendingSVGFontFaceElementsForRemoval();
1830 #endif
1827 InspectorInstrumentation::didRecalculateStyle(cookie); 1831 InspectorInstrumentation::didRecalculateStyle(cookie);
1828 } 1832 }
1829 1833
1830 void Document::updateStyleForNodeIfNeeded(Node* node) 1834 void Document::updateStyleForNodeIfNeeded(Node* node)
1831 { 1835 {
1832 if (!shouldCallRecalcStyleForDocument()) 1836 if (!shouldCallRecalcStyleForDocument())
1833 return; 1837 return;
1834 1838
1835 // At this point, we know that we need to recalc some style on the document in order to fully update styles. 1839 // At this point, we know that we need to recalc some style on the document in order to fully update styles.
1836 // However, style on 'node' only needs to be recalculated if a global recomp utation is needed, or a node on 1840 // However, style on 'node' only needs to be recalculated if a global recomp utation is needed, or a node on
(...skipping 3607 matching lines...) Expand 10 before | Expand all | Expand 10 after
5444 } 5448 }
5445 5449
5446 void Document::invalidateNodeListCaches(const QualifiedName* attrName) 5450 void Document::invalidateNodeListCaches(const QualifiedName* attrName)
5447 { 5451 {
5448 HashSet<LiveNodeListBase*>::iterator end = m_listsInvalidatedAtDocument.end( ); 5452 HashSet<LiveNodeListBase*>::iterator end = m_listsInvalidatedAtDocument.end( );
5449 for (HashSet<LiveNodeListBase*>::iterator it = m_listsInvalidatedAtDocument. begin(); it != end; ++it) 5453 for (HashSet<LiveNodeListBase*>::iterator it = m_listsInvalidatedAtDocument. begin(); it != end; ++it)
5450 (*it)->invalidateCache(attrName); 5454 (*it)->invalidateCache(attrName);
5451 } 5455 }
5452 5456
5453 } // namespace WebCore 5457 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/fast/dom/remove-svg-font-face-element-crash-expected.txt ('k') | Source/core/svg/SVGDocumentExtensions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698