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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 2669003002: Optimize outline paint invalidation (Closed)
Patch Set: - Created 3 years, 10 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) 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 1833 matching lines...) Expand 10 before | Expand all | Expand 10 after
1844 block->setScrollAnchorDisablingStyleChanged(true); 1844 block->setScrollAnchorDisablingStyleChanged(true);
1845 return; 1845 return;
1846 } 1846 }
1847 } 1847 }
1848 object = object->parent(); 1848 object = object->parent();
1849 } 1849 }
1850 } 1850 }
1851 1851
1852 void LayoutObject::styleDidChange(StyleDifference diff, 1852 void LayoutObject::styleDidChange(StyleDifference diff,
1853 const ComputedStyle* oldStyle) { 1853 const ComputedStyle* oldStyle) {
1854 // First assume the outline will be affected. It may be updated when we know
1855 // it's not affected.
1856 bool hasOutline = m_style->hasOutline();
1857 setOutlineMayBeAffectedByDescendants(hasOutline);
1858 if (!hasOutline)
1859 setPreviousOutlineMayBeAffectedByDescendants(false);
1860
1854 if (s_affectsParentBlock) 1861 if (s_affectsParentBlock)
1855 handleDynamicFloatPositionChange(this); 1862 handleDynamicFloatPositionChange(this);
1856 1863
1857 if (!m_parent) 1864 if (!m_parent)
1858 return; 1865 return;
1859 1866
1860 if (diff.needsFullLayout()) { 1867 if (diff.needsFullLayout()) {
1861 LayoutCounter::layoutObjectStyleChanged(*this, oldStyle, *m_style); 1868 LayoutCounter::layoutObjectStyleChanged(*this, oldStyle, *m_style);
1862 1869
1863 // If the in-flow state of an element is changed, disable scroll 1870 // If the in-flow state of an element is changed, disable scroll
(...skipping 1628 matching lines...) Expand 10 before | Expand all | Expand 10 after
3492 const blink::LayoutObject* root = object1; 3499 const blink::LayoutObject* root = object1;
3493 while (root->parent()) 3500 while (root->parent())
3494 root = root->parent(); 3501 root = root->parent();
3495 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3502 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3496 } else { 3503 } else {
3497 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); 3504 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)");
3498 } 3505 }
3499 } 3506 }
3500 3507
3501 #endif 3508 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698