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

Side by Side Diff: Source/core/css/resolver/StyleResolverState.cpp

Issue 15871005: Avoid N^2 walk placing renderers when building the render tree (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Reversing the snapshotting logic to fix a bug, and updating test expectations. Created 7 years, 6 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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 27 matching lines...) Expand all
38 if (m_hasUAAppearance) { 38 if (m_hasUAAppearance) {
39 m_borderData = m_style->border(); 39 m_borderData = m_style->border();
40 m_backgroundData = *m_style->backgroundLayers(); 40 m_backgroundData = *m_style->backgroundLayers();
41 m_backgroundColor = m_style->backgroundColor(); 41 m_backgroundColor = m_style->backgroundColor();
42 } 42 }
43 } 43 }
44 44
45 void StyleResolverState::clear() 45 void StyleResolverState::clear()
46 { 46 {
47 m_element = 0; 47 m_element = 0;
48 m_childIndex = 0;
48 m_styledElement = 0; 49 m_styledElement = 0;
49 m_parentStyle = 0; 50 m_parentStyle = 0;
50 m_parentNode = 0; 51 m_parentNode = 0;
51 m_regionForStyling = 0; 52 m_regionForStyling = 0;
52 m_pendingImageProperties.clear(); 53 m_pendingImageProperties.clear();
53 m_hasPendingShaders = false; 54 m_hasPendingShaders = false;
54 m_pendingSVGDocuments.clear(); 55 m_pendingSVGDocuments.clear();
55 } 56 }
56 57
57 void StyleResolverState::initElement(Element* e) 58 void StyleResolverState::initElement(Element* e, int childIndex)
58 { 59 {
59 m_element = e; 60 m_element = e;
61 m_childIndex = childIndex;
60 m_styledElement = e && e->isStyledElement() ? static_cast<StyledElement*>(e) : 0; 62 m_styledElement = e && e->isStyledElement() ? static_cast<StyledElement*>(e) : 0;
61 m_elementLinkState = e ? e->document()->visitedLinkState()->determineLinkSta te(e) : NotInsideLink; 63 m_elementLinkState = e ? e->document()->visitedLinkState()->determineLinkSta te(e) : NotInsideLink;
62 } 64 }
63 65
64 void StyleResolverState::initForStyleResolve(Document* document, Element* e, Ren derStyle* parentStyle, RenderRegion* regionForStyling) 66 void StyleResolverState::initForStyleResolve(Document* document, Element* e, Ren derStyle* parentStyle, RenderRegion* regionForStyling)
65 { 67 {
66 m_regionForStyling = regionForStyling; 68 m_regionForStyling = regionForStyling;
67 69
68 if (e) { 70 if (e) {
69 NodeRenderingContext context(e); 71 NodeRenderingContext context(e);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 return RenderTheme::focusRingColor(); 146 return RenderTheme::focusRingColor();
145 case CSSValueCurrentcolor: 147 case CSSValueCurrentcolor:
146 return style()->color(); 148 return style()->color();
147 default: 149 default:
148 return colorForCSSValue(ident); 150 return colorForCSSValue(ident);
149 } 151 }
150 } 152 }
151 153
152 154
153 } // namespace WebCore 155 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698