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 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
6 * (C) 2007 David Smith (catfish.man@gmail.com) | 6 * (C) 2007 David Smith (catfish.man@gmail.com) |
7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. |
8 * (C) 2007 Eric Seidel (eric@webkit.org) | 8 * (C) 2007 Eric Seidel (eric@webkit.org) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 1753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1764 DCHECK(newStyle); | 1764 DCHECK(newStyle); |
1765 | 1765 |
1766 StyleRecalcChange localChange = ComputedStyle::stylePropagationDiff(oldStyle
.get(), newStyle.get()); | 1766 StyleRecalcChange localChange = ComputedStyle::stylePropagationDiff(oldStyle
.get(), newStyle.get()); |
1767 if (localChange == NoChange) { | 1767 if (localChange == NoChange) { |
1768 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), stylesUnchanged,
1); | 1768 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), stylesUnchanged,
1); |
1769 } else { | 1769 } else { |
1770 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), stylesChanged, 1
); | 1770 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), stylesChanged, 1
); |
1771 } | 1771 } |
1772 | 1772 |
1773 if (localChange == Reattach) { | 1773 if (localChange == Reattach) { |
1774 AttachContext reattachContext; | 1774 // TODO(nainar): Remove the style parameter being passed into buildOwnLa
yout(). |
1775 reattachContext.resolvedStyle = newStyle.get(); | 1775 // ComputedStyle will now be stored on Node and accessed in buildOwnLayo
ut() |
1776 bool layoutObjectWillChange = needsAttach() || layoutObject(); | 1776 // using mutableComputedStyle(). |
1777 reattach(reattachContext); | 1777 return buildOwnLayout(*newStyle); |
1778 if (layoutObjectWillChange || layoutObject()) | |
1779 return Reattach; | |
1780 return ReattachNoLayoutObject; | |
1781 } | 1778 } |
1782 | 1779 |
1783 DCHECK(oldStyle); | 1780 DCHECK(oldStyle); |
1784 | 1781 |
1785 if (localChange != NoChange) | 1782 if (localChange != NoChange) |
1786 updateCallbackSelectors(oldStyle.get(), newStyle.get()); | 1783 updateCallbackSelectors(oldStyle.get(), newStyle.get()); |
1787 | 1784 |
1788 if (LayoutObject* layoutObject = this->layoutObject()) { | 1785 if (LayoutObject* layoutObject = this->layoutObject()) { |
1789 if (localChange != NoChange || pseudoStyleCacheIsInvalid(oldStyle.get(),
newStyle.get()) || svgFilterNeedsLayerUpdate()) { | 1786 if (localChange != NoChange || pseudoStyleCacheIsInvalid(oldStyle.get(),
newStyle.get()) || svgFilterNeedsLayerUpdate()) { |
1790 layoutObject->setStyle(newStyle.get()); | 1787 layoutObject->setStyle(newStyle.get()); |
(...skipping 18 matching lines...) Expand all Loading... |
1809 return Inherit; | 1806 return Inherit; |
1810 newStyle->copyChildDependentFlagsFrom(*oldStyle); | 1807 newStyle->copyChildDependentFlagsFrom(*oldStyle); |
1811 } | 1808 } |
1812 if (oldStyle->hasPseudoElementStyle() || newStyle->hasPseudoElementStyle
()) | 1809 if (oldStyle->hasPseudoElementStyle() || newStyle->hasPseudoElementStyle
()) |
1813 return UpdatePseudoElements; | 1810 return UpdatePseudoElements; |
1814 } | 1811 } |
1815 | 1812 |
1816 return localChange; | 1813 return localChange; |
1817 } | 1814 } |
1818 | 1815 |
| 1816 StyleRecalcChange Element::buildOwnLayout(ComputedStyle& newStyle) |
| 1817 { |
| 1818 AttachContext reattachContext; |
| 1819 reattachContext.resolvedStyle = &newStyle; |
| 1820 bool layoutObjectWillChange = needsAttach() || layoutObject(); |
| 1821 reattach(reattachContext); |
| 1822 if (layoutObjectWillChange || layoutObject()) |
| 1823 return Reattach; |
| 1824 return ReattachNoLayoutObject; |
| 1825 } |
| 1826 |
1819 void Element::updateCallbackSelectors(const ComputedStyle* oldStyle, const Compu
tedStyle* newStyle) | 1827 void Element::updateCallbackSelectors(const ComputedStyle* oldStyle, const Compu
tedStyle* newStyle) |
1820 { | 1828 { |
1821 Vector<String> emptyVector; | 1829 Vector<String> emptyVector; |
1822 const Vector<String>& oldCallbackSelectors = oldStyle ? oldStyle->callbackSe
lectors() : emptyVector; | 1830 const Vector<String>& oldCallbackSelectors = oldStyle ? oldStyle->callbackSe
lectors() : emptyVector; |
1823 const Vector<String>& newCallbackSelectors = newStyle ? newStyle->callbackSe
lectors() : emptyVector; | 1831 const Vector<String>& newCallbackSelectors = newStyle ? newStyle->callbackSe
lectors() : emptyVector; |
1824 if (oldCallbackSelectors.isEmpty() && newCallbackSelectors.isEmpty()) | 1832 if (oldCallbackSelectors.isEmpty() && newCallbackSelectors.isEmpty()) |
1825 return; | 1833 return; |
1826 if (oldCallbackSelectors != newCallbackSelectors) | 1834 if (oldCallbackSelectors != newCallbackSelectors) |
1827 CSSSelectorWatch::from(document()).updateSelectorMatches(oldCallbackSele
ctors, newCallbackSelectors); | 1835 CSSSelectorWatch::from(document()).updateSelectorMatches(oldCallbackSele
ctors, newCallbackSelectors); |
1828 } | 1836 } |
(...skipping 1901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3730 | 3738 |
3731 DEFINE_TRACE_WRAPPERS(Element) | 3739 DEFINE_TRACE_WRAPPERS(Element) |
3732 { | 3740 { |
3733 if (hasRareData()) { | 3741 if (hasRareData()) { |
3734 visitor->traceWrappers(elementRareData()); | 3742 visitor->traceWrappers(elementRareData()); |
3735 } | 3743 } |
3736 ContainerNode::traceWrappers(visitor); | 3744 ContainerNode::traceWrappers(visitor); |
3737 } | 3745 } |
3738 | 3746 |
3739 } // namespace blink | 3747 } // namespace blink |
OLD | NEW |