| 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 1830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1841 return; | 1841 return; |
| 1842 | 1842 |
| 1843 RenderStyle* style = renderStyle(); | 1843 RenderStyle* style = renderStyle(); |
| 1844 | 1844 |
| 1845 // :empty selector. | 1845 // :empty selector. |
| 1846 checkForEmptyStyleChange(style); | 1846 checkForEmptyStyleChange(style); |
| 1847 | 1847 |
| 1848 if (!style || (needsStyleRecalc() && childrenAffectedByPositionalRules())) | 1848 if (!style || (needsStyleRecalc() && childrenAffectedByPositionalRules())) |
| 1849 return; | 1849 return; |
| 1850 | 1850 |
| 1851 // Forward positional selectors include the ~ selector, nth-child, nth-of-ty
pe, first-of-type and only-of-type. | 1851 // Forward positional selectors include nth-child, nth-of-type, first-of-typ
e and only-of-type. |
| 1852 // The indirect adjacent selector is the ~ selector. |
| 1852 // Backward positional selectors include nth-last-child, nth-last-of-type, l
ast-of-type and only-of-type. | 1853 // Backward positional selectors include nth-last-child, nth-last-of-type, l
ast-of-type and only-of-type. |
| 1853 // We have to invalidate everything following the insertion point in the for
ward case, and everything before the insertion point in the | 1854 // We have to invalidate everything following the insertion point in the for
ward and indirect adjacent case, |
| 1854 // backward case. | 1855 // and everything before the insertion point in the backward case. |
| 1855 // |afterChange| is 0 in the parser callback case, so we won't do any work f
or the forward case if we don't have to. | 1856 // |afterChange| is 0 in the parser callback case, so we won't do any work f
or the forward case if we don't have to. |
| 1856 // For performance reasons we just mark the parent node as changed, since we
don't want to make childrenChanged O(n^2) by crawling all our kids | 1857 // For performance reasons we just mark the parent node as changed, since we
don't want to make childrenChanged O(n^2) by crawling all our kids |
| 1857 // here. recalcStyle will then force a walk of the children when it sees tha
t this has happened. | 1858 // here. recalcStyle will then force a walk of the children when it sees tha
t this has happened. |
| 1858 if ((childrenAffectedByForwardPositionalRules() && afterChange) || (children
AffectedByBackwardPositionalRules() && beforeChange)) { | 1859 if (((childrenAffectedByForwardPositionalRules() || childrenAffectedByIndire
ctAdjacentRules()) && afterChange) |
| 1860 || (childrenAffectedByBackwardPositionalRules() && beforeChange)) { |
| 1859 setNeedsStyleRecalc(SubtreeStyleChange); | 1861 setNeedsStyleRecalc(SubtreeStyleChange); |
| 1860 return; | 1862 return; |
| 1861 } | 1863 } |
| 1862 | 1864 |
| 1863 // :first-child. In the parser callback case, we don't have to check anythi
ng, since we were right the first time. | 1865 // :first-child. In the parser callback case, we don't have to check anythi
ng, since we were right the first time. |
| 1864 // In the DOM case, we only need to do something if |afterChange| is not 0. | 1866 // In the DOM case, we only need to do something if |afterChange| is not 0. |
| 1865 // |afterChange| is 0 in the parser case, so it works out that we'll skip th
is block. | 1867 // |afterChange| is 0 in the parser case, so it works out that we'll skip th
is block. |
| 1866 if (childrenAffectedByFirstChildRules() && afterChange) { | 1868 if (childrenAffectedByFirstChildRules() && afterChange) { |
| 1867 // Find our new first child. | 1869 // Find our new first child. |
| 1868 Element* newFirstChild = ElementTraversal::firstWithin(*this); | 1870 Element* newFirstChild = ElementTraversal::firstWithin(*this); |
| (...skipping 1530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3399 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi
stItems | 3401 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi
stItems |
| 3400 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg
i?id=88405 | 3402 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg
i?id=88405 |
| 3401 if (isHTMLOptionElement(*this) || isHTMLOptGroupElement(*this)) | 3403 if (isHTMLOptionElement(*this) || isHTMLOptGroupElement(*this)) |
| 3402 return false; | 3404 return false; |
| 3403 if (FullscreenElementStack::isActiveFullScreenElement(this)) | 3405 if (FullscreenElementStack::isActiveFullScreenElement(this)) |
| 3404 return false; | 3406 return false; |
| 3405 return true; | 3407 return true; |
| 3406 } | 3408 } |
| 3407 | 3409 |
| 3408 } // namespace WebCore | 3410 } // namespace WebCore |
| OLD | NEW |