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

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

Issue 1133263003: Maintain child dependent ComputedStyle flags if propagation stops. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 7 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
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 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 1725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1736 layoutObject->setStyleInternal(newStyle.get()); 1736 layoutObject->setStyleInternal(newStyle.get());
1737 } 1737 }
1738 } 1738 }
1739 1739
1740 if (styleChangeType() >= SubtreeStyleChange) 1740 if (styleChangeType() >= SubtreeStyleChange)
1741 return Force; 1741 return Force;
1742 1742
1743 if (change > Inherit || localChange > Inherit) 1743 if (change > Inherit || localChange > Inherit)
1744 return max(localChange, change); 1744 return max(localChange, change);
1745 1745
1746 if (localChange < Inherit && (oldStyle->hasPseudoElementStyle() || newStyle- >hasPseudoElementStyle())) 1746 if (localChange < Inherit) {
1747 return UpdatePseudoElements; 1747 if (oldStyle->hasChildDependentFlags()) {
1748 if (childNeedsStyleRecalc())
1749 return Inherit;
1750 newStyle->copyChildDependentFlagsFrom(*oldStyle);
1751 }
1752 if (oldStyle->hasPseudoElementStyle() || newStyle->hasPseudoElementStyle ())
1753 return UpdatePseudoElements;
1754 }
1748 1755
1749 return localChange; 1756 return localChange;
1750 } 1757 }
1751 1758
1752 void Element::updateCallbackSelectors(const ComputedStyle* oldStyle, const Compu tedStyle* newStyle) 1759 void Element::updateCallbackSelectors(const ComputedStyle* oldStyle, const Compu tedStyle* newStyle)
1753 { 1760 {
1754 Vector<String> emptyVector; 1761 Vector<String> emptyVector;
1755 const Vector<String>& oldCallbackSelectors = oldStyle ? oldStyle->callbackSe lectors() : emptyVector; 1762 const Vector<String>& oldCallbackSelectors = oldStyle ? oldStyle->callbackSe lectors() : emptyVector;
1756 const Vector<String>& newCallbackSelectors = newStyle ? newStyle->callbackSe lectors() : emptyVector; 1763 const Vector<String>& newCallbackSelectors = newStyle ? newStyle->callbackSe lectors() : emptyVector;
1757 if (oldCallbackSelectors.isEmpty() && newCallbackSelectors.isEmpty()) 1764 if (oldCallbackSelectors.isEmpty() && newCallbackSelectors.isEmpty())
(...skipping 1739 matching lines...) Expand 10 before | Expand all | Expand 10 after
3497 { 3504 {
3498 #if ENABLE(OILPAN) 3505 #if ENABLE(OILPAN)
3499 if (hasRareData()) 3506 if (hasRareData())
3500 visitor->trace(elementRareData()); 3507 visitor->trace(elementRareData());
3501 visitor->trace(m_elementData); 3508 visitor->trace(m_elementData);
3502 #endif 3509 #endif
3503 ContainerNode::trace(visitor); 3510 ContainerNode::trace(visitor);
3504 } 3511 }
3505 3512
3506 } // namespace blink 3513 } // namespace blink
OLDNEW
« no previous file with comments | « LayoutTests/fast/css/invalidation/explicit-inheritance-flag-expected.txt ('k') | Source/core/style/ComputedStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698