| 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) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. |
| 7 * All rights reserved. | 7 * All rights reserved. |
| 8 * Copyright (C) 2009 Google Inc. All rights reserved. | 8 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
| 10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
| (...skipping 1715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1726 else | 1726 else |
| 1727 setNeedsLayoutAndPrefWidthsRecalc(LayoutInvalidationReason::StyleChange); | 1727 setNeedsLayoutAndPrefWidthsRecalc(LayoutInvalidationReason::StyleChange); |
| 1728 } | 1728 } |
| 1729 | 1729 |
| 1730 if (diff.needsPaintInvalidationSubtree() || | 1730 if (diff.needsPaintInvalidationSubtree() || |
| 1731 updatedDiff.needsPaintInvalidationSubtree()) | 1731 updatedDiff.needsPaintInvalidationSubtree()) |
| 1732 setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); | 1732 setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); |
| 1733 else if (diff.needsPaintInvalidationObject() || | 1733 else if (diff.needsPaintInvalidationObject() || |
| 1734 updatedDiff.needsPaintInvalidationObject()) | 1734 updatedDiff.needsPaintInvalidationObject()) |
| 1735 setShouldDoFullPaintInvalidation(); | 1735 setShouldDoFullPaintInvalidation(); |
| 1736 else if (diff.needsPaintInvalidationSelection()) | |
| 1737 invalidatePaintForSelection(); | |
| 1738 | 1736 |
| 1739 // Text nodes share style with their parents but the paint properties don't | 1737 // Text nodes share style with their parents but the paint properties don't |
| 1740 // apply to them, hence the !isText() check. | 1738 // apply to them, hence the !isText() check. |
| 1741 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && !isText() && | 1739 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && !isText() && |
| 1742 (diff.transformChanged() || diff.opacityChanged() || | 1740 (diff.transformChanged() || diff.opacityChanged() || |
| 1743 diff.zIndexChanged() || diff.filterChanged() || | 1741 diff.zIndexChanged() || diff.filterChanged() || |
| 1744 diff.backdropFilterChanged() || diff.cssClipChanged())) { | 1742 diff.backdropFilterChanged() || diff.cssClipChanged())) { |
| 1745 setNeedsPaintPropertyUpdate(); | 1743 setNeedsPaintPropertyUpdate(); |
| 1746 | 1744 |
| 1747 // We don't need to invalidate paint of objects on SPv2 when only paint | 1745 // We don't need to invalidate paint of objects on SPv2 when only paint |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1933 | 1931 |
| 1934 if (oldStyle && oldStyle->styleType() == PseudoIdNone) | 1932 if (oldStyle && oldStyle->styleType() == PseudoIdNone) |
| 1935 applyPseudoStyleChanges(*oldStyle); | 1933 applyPseudoStyleChanges(*oldStyle); |
| 1936 } | 1934 } |
| 1937 | 1935 |
| 1938 void LayoutObject::applyPseudoStyleChanges(const ComputedStyle& oldStyle) { | 1936 void LayoutObject::applyPseudoStyleChanges(const ComputedStyle& oldStyle) { |
| 1939 if (oldStyle.hasPseudoStyle(PseudoIdFirstLine) || | 1937 if (oldStyle.hasPseudoStyle(PseudoIdFirstLine) || |
| 1940 styleRef().hasPseudoStyle(PseudoIdFirstLine)) | 1938 styleRef().hasPseudoStyle(PseudoIdFirstLine)) |
| 1941 applyFirstLineChanges(oldStyle); | 1939 applyFirstLineChanges(oldStyle); |
| 1942 | 1940 |
| 1943 // TODO(rune@opera.com): Move the invalidation for ::selection here. | 1941 if (oldStyle.hasPseudoStyle(PseudoIdSelection) || |
| 1944 // Instead of having a PaintInvalidationSelectionOnly PaintInvalidationType | 1942 styleRef().hasPseudoStyle(PseudoIdSelection)) |
| 1945 // used for the element diff, we should use PaintInvalidationObject diff on | 1943 invalidatePaintForSelection(); |
| 1946 // the pseudo element style here instead. | |
| 1947 } | 1944 } |
| 1948 | 1945 |
| 1949 void LayoutObject::applyFirstLineChanges(const ComputedStyle& oldStyle) { | 1946 void LayoutObject::applyFirstLineChanges(const ComputedStyle& oldStyle) { |
| 1950 if (oldStyle.hasPseudoStyle(PseudoIdFirstLine)) { | 1947 if (oldStyle.hasPseudoStyle(PseudoIdFirstLine)) { |
| 1951 RefPtr<ComputedStyle> oldPseudoStyle = | 1948 RefPtr<ComputedStyle> oldPseudoStyle = |
| 1952 oldStyle.getCachedPseudoStyle(PseudoIdFirstLine); | 1949 oldStyle.getCachedPseudoStyle(PseudoIdFirstLine); |
| 1953 if (styleRef().hasPseudoStyle(PseudoIdFirstLine) && oldPseudoStyle) { | 1950 if (styleRef().hasPseudoStyle(PseudoIdFirstLine) && oldPseudoStyle) { |
| 1954 RefPtr<ComputedStyle> newPseudoStyle = | 1951 RefPtr<ComputedStyle> newPseudoStyle = |
| 1955 uncachedFirstLineStyle(mutableStyle()); | 1952 uncachedFirstLineStyle(mutableStyle()); |
| 1956 if (newPseudoStyle) { | 1953 if (newPseudoStyle) { |
| (...skipping 1642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3599 const blink::LayoutObject* root = object1; | 3596 const blink::LayoutObject* root = object1; |
| 3600 while (root->parent()) | 3597 while (root->parent()) |
| 3601 root = root->parent(); | 3598 root = root->parent(); |
| 3602 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); | 3599 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); |
| 3603 } else { | 3600 } else { |
| 3604 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); | 3601 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); |
| 3605 } | 3602 } |
| 3606 } | 3603 } |
| 3607 | 3604 |
| 3608 #endif | 3605 #endif |
| OLD | NEW |