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

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

Issue 77863002: Update styleRecalc so that it traverses shadow insertion points in 2 pass algorithms (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Make styleRecalc traverse shadow trees in 2 pass algorithm Created 7 years 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 | Annotate | Revision Log
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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Appl e Inc. All rights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Appl e Inc. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 class Attribute; 44 class Attribute;
45 class ClientRect; 45 class ClientRect;
46 class ClientRectList; 46 class ClientRectList;
47 class DOMStringMap; 47 class DOMStringMap;
48 class DOMTokenList; 48 class DOMTokenList;
49 class ElementRareData; 49 class ElementRareData;
50 class ElementShadow; 50 class ElementShadow;
51 class ExceptionState; 51 class ExceptionState;
52 class Image; 52 class Image;
53 class InputMethodContext; 53 class InputMethodContext;
54 class InsertionPoint;
54 class IntSize; 55 class IntSize;
55 class Locale; 56 class Locale;
56 class MutableStylePropertySet; 57 class MutableStylePropertySet;
57 class PropertySetCSSStyleDeclaration; 58 class PropertySetCSSStyleDeclaration;
58 class PseudoElement; 59 class PseudoElement;
59 class RenderRegion; 60 class RenderRegion;
60 class ShadowRoot; 61 class ShadowRoot;
61 class StylePropertySet; 62 class StylePropertySet;
62 63
63 enum AffectedSelectorType { 64 enum AffectedSelectorType {
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 void cloneDataFromElement(const Element&); 298 void cloneDataFromElement(const Element&);
298 299
299 bool hasEquivalentAttributes(const Element* other) const; 300 bool hasEquivalentAttributes(const Element* other) const;
300 301
301 virtual void copyNonAttributePropertiesFromElement(const Element&) { } 302 virtual void copyNonAttributePropertiesFromElement(const Element&) { }
302 303
303 virtual void attach(const AttachContext& = AttachContext()) OVERRIDE; 304 virtual void attach(const AttachContext& = AttachContext()) OVERRIDE;
304 virtual void detach(const AttachContext& = AttachContext()) OVERRIDE; 305 virtual void detach(const AttachContext& = AttachContext()) OVERRIDE;
305 virtual RenderObject* createRenderer(RenderStyle*); 306 virtual RenderObject* createRenderer(RenderStyle*);
306 virtual bool rendererIsNeeded(const RenderStyle&); 307 virtual bool rendererIsNeeded(const RenderStyle&);
307 void recalcStyle(StyleRecalcChange, Text* nextTextSibling = 0); 308 void recalcStyle(StyleRecalcChange, Text* nextTextSibling = 0, InsertionPoin t* shadowInsertionPoint = 0);
308 void didAffectSelector(AffectedSelectorMask); 309 void didAffectSelector(AffectedSelectorMask);
309 310
310 bool supportsStyleSharing() const; 311 bool supportsStyleSharing() const;
311 312
312 ElementShadow* shadow() const; 313 ElementShadow* shadow() const;
313 ElementShadow& ensureShadow(); 314 ElementShadow& ensureShadow();
314 PassRefPtr<ShadowRoot> createShadowRoot(ExceptionState&); 315 PassRefPtr<ShadowRoot> createShadowRoot(ExceptionState&);
315 ShadowRoot* shadowRoot() const; 316 ShadowRoot* shadowRoot() const;
316 ShadowRoot* youngestShadowRoot() const; 317 ShadowRoot* youngestShadowRoot() const;
318 ShadowRoot* oldestShadowRoot() const;
317 319
318 bool hasAuthorShadowRoot() const { return shadowRoot(); } 320 bool hasAuthorShadowRoot() const { return shadowRoot(); }
319 virtual void didAddShadowRoot(ShadowRoot&); 321 virtual void didAddShadowRoot(ShadowRoot&);
320 ShadowRoot* userAgentShadowRoot() const; 322 ShadowRoot* userAgentShadowRoot() const;
321 ShadowRoot& ensureUserAgentShadowRoot(); 323 ShadowRoot& ensureUserAgentShadowRoot();
322 const AtomicString& shadowPseudoId() const; 324 const AtomicString& shadowPseudoId() const;
323 bool isInDescendantTreeOf(const Element* shadowHost) const; 325 bool isInDescendantTreeOf(const Element* shadowHost) const;
324 326
325 RenderStyle* computedStyle(PseudoId = NOPSEUDO); 327 RenderStyle* computedStyle(PseudoId = NOPSEUDO);
326 328
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 void styleAttributeChanged(const AtomicString& newStyleString, AttributeModi ficationReason); 569 void styleAttributeChanged(const AtomicString& newStyleString, AttributeModi ficationReason);
568 570
569 void updatePresentationAttributeStyle(); 571 void updatePresentationAttributeStyle();
570 572
571 void inlineStyleChanged(); 573 void inlineStyleChanged();
572 PropertySetCSSStyleDeclaration* inlineStyleCSSOMWrapper(); 574 PropertySetCSSStyleDeclaration* inlineStyleCSSOMWrapper();
573 void setInlineStyleFromString(const AtomicString&); 575 void setInlineStyleFromString(const AtomicString&);
574 MutableStylePropertySet* ensureMutableInlineStyle(); 576 MutableStylePropertySet* ensureMutableInlineStyle();
575 577
576 StyleRecalcChange recalcOwnStyle(StyleRecalcChange); 578 StyleRecalcChange recalcOwnStyle(StyleRecalcChange);
577 void recalcChildStyle(StyleRecalcChange); 579 void recalcChildStyle(StyleRecalcChange, InsertionPoint* shadowInsertionPoin t);
esprehn 2013/12/11 09:53:27 = 0, so you don't need to pass it below.
578 580
579 // FIXME: These methods should all be renamed to something better than "chec k", 581 // FIXME: These methods should all be renamed to something better than "chec k",
580 // since it's not clear that they alter the style bits of siblings and child ren. 582 // since it's not clear that they alter the style bits of siblings and child ren.
581 void checkForChildrenAdjacentRuleChanges(); 583 void checkForChildrenAdjacentRuleChanges();
582 void checkForSiblingStyleChanges(bool finishedParsingCallback, Node* beforeC hange, Node* afterChange, int childCountDelta); 584 void checkForSiblingStyleChanges(bool finishedParsingCallback, Node* beforeC hange, Node* afterChange, int childCountDelta);
583 inline void checkForEmptyStyleChange(RenderStyle*); 585 inline void checkForEmptyStyleChange(RenderStyle*);
584 586
585 void updatePseudoElement(PseudoId, StyleRecalcChange); 587 void updatePseudoElement(PseudoId, StyleRecalcChange);
586 588
587 inline void createPseudoElementIfNeeded(PseudoId); 589 inline void createPseudoElementIfNeeded(PseudoId);
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 } 887 }
886 888
887 inline bool isShadowHost(const Element* element) 889 inline bool isShadowHost(const Element* element)
888 { 890 {
889 return element && element->shadow(); 891 return element && element->shadow();
890 } 892 }
891 893
892 } // namespace 894 } // namespace
893 895
894 #endif 896 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698