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

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

Issue 27513004: Make ElementRareData::ensureShadow() return a reference (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix nit Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/Element.h ('k') | Source/core/dom/ElementRareData.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1659 matching lines...) Expand 10 before | Expand all | Expand 10 after
1670 updatePseudoElement(AFTER, change); 1670 updatePseudoElement(AFTER, change);
1671 updatePseudoElement(BACKDROP, change); 1671 updatePseudoElement(BACKDROP, change);
1672 } 1672 }
1673 } 1673 }
1674 1674
1675 ElementShadow* Element::shadow() const 1675 ElementShadow* Element::shadow() const
1676 { 1676 {
1677 return hasRareData() ? elementRareData()->shadow() : 0; 1677 return hasRareData() ? elementRareData()->shadow() : 0;
1678 } 1678 }
1679 1679
1680 ElementShadow* Element::ensureShadow() 1680 ElementShadow& Element::ensureShadow()
1681 { 1681 {
1682 return ensureElementRareData()->ensureShadow(); 1682 return ensureElementRareData()->ensureShadow();
1683 } 1683 }
1684 1684
1685 void Element::didAffectSelector(AffectedSelectorMask mask) 1685 void Element::didAffectSelector(AffectedSelectorMask mask)
1686 { 1686 {
1687 setNeedsStyleRecalc(); 1687 setNeedsStyleRecalc();
1688 if (ElementShadow* elementShadow = shadowOfParentForDistribution(this)) 1688 if (ElementShadow* elementShadow = shadowOfParentForDistribution(this))
1689 elementShadow->didAffectSelector(mask); 1689 elementShadow->didAffectSelector(mask);
1690 } 1690 }
1691 1691
1692 PassRefPtr<ShadowRoot> Element::createShadowRoot(ExceptionState& es) 1692 PassRefPtr<ShadowRoot> Element::createShadowRoot(ExceptionState& es)
1693 { 1693 {
1694 if (alwaysCreateUserAgentShadowRoot()) 1694 if (alwaysCreateUserAgentShadowRoot())
1695 ensureUserAgentShadowRoot(); 1695 ensureUserAgentShadowRoot();
1696 1696
1697 if (RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled()) 1697 if (RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled())
1698 return ensureShadow()->addShadowRoot(this, ShadowRoot::AuthorShadowRoot) ; 1698 return ensureShadow().addShadowRoot(this, ShadowRoot::AuthorShadowRoot);
1699 1699
1700 // Since some elements recreates shadow root dynamically, multiple shadow 1700 // Since some elements recreates shadow root dynamically, multiple shadow
1701 // subtrees won't work well in that element. Until they are fixed, we disabl e 1701 // subtrees won't work well in that element. Until they are fixed, we disabl e
1702 // adding author shadow root for them. 1702 // adding author shadow root for them.
1703 if (!areAuthorShadowsAllowed()) { 1703 if (!areAuthorShadowsAllowed()) {
1704 es.throwUninformativeAndGenericDOMException(HierarchyRequestError); 1704 es.throwUninformativeAndGenericDOMException(HierarchyRequestError);
1705 return 0; 1705 return 0;
1706 } 1706 }
1707 return ensureShadow()->addShadowRoot(this, ShadowRoot::AuthorShadowRoot); 1707 return ensureShadow().addShadowRoot(this, ShadowRoot::AuthorShadowRoot);
1708 } 1708 }
1709 1709
1710 ShadowRoot* Element::shadowRoot() const 1710 ShadowRoot* Element::shadowRoot() const
1711 { 1711 {
1712 ElementShadow* elementShadow = shadow(); 1712 ElementShadow* elementShadow = shadow();
1713 if (!elementShadow) 1713 if (!elementShadow)
1714 return 0; 1714 return 0;
1715 ShadowRoot* shadowRoot = elementShadow->youngestShadowRoot(); 1715 ShadowRoot* shadowRoot = elementShadow->youngestShadowRoot();
1716 if (shadowRoot->type() == ShadowRoot::AuthorShadowRoot) 1716 if (shadowRoot->type() == ShadowRoot::AuthorShadowRoot)
1717 return shadowRoot; 1717 return shadowRoot;
(...skipping 13 matching lines...) Expand all
1731 } 1731 }
1732 } 1732 }
1733 1733
1734 return 0; 1734 return 0;
1735 } 1735 }
1736 1736
1737 ShadowRoot* Element::ensureUserAgentShadowRoot() 1737 ShadowRoot* Element::ensureUserAgentShadowRoot()
1738 { 1738 {
1739 if (ShadowRoot* shadowRoot = userAgentShadowRoot()) 1739 if (ShadowRoot* shadowRoot = userAgentShadowRoot())
1740 return shadowRoot; 1740 return shadowRoot;
1741 ShadowRoot* shadowRoot = ensureShadow()->addShadowRoot(this, ShadowRoot::Use rAgentShadowRoot); 1741 ShadowRoot* shadowRoot = ensureShadow().addShadowRoot(this, ShadowRoot::User AgentShadowRoot);
1742 didAddUserAgentShadowRoot(shadowRoot); 1742 didAddUserAgentShadowRoot(shadowRoot);
1743 return shadowRoot; 1743 return shadowRoot;
1744 } 1744 }
1745 1745
1746 bool Element::childTypeAllowed(NodeType type) const 1746 bool Element::childTypeAllowed(NodeType type) const
1747 { 1747 {
1748 switch (type) { 1748 switch (type) {
1749 case ELEMENT_NODE: 1749 case ELEMENT_NODE:
1750 case TEXT_NODE: 1750 case TEXT_NODE:
1751 case COMMENT_NODE: 1751 case COMMENT_NODE:
(...skipping 1991 matching lines...) Expand 10 before | Expand all | Expand 10 after
3743 return 0; 3743 return 0;
3744 } 3744 }
3745 3745
3746 Attribute* UniqueElementData::attributeItem(unsigned index) 3746 Attribute* UniqueElementData::attributeItem(unsigned index)
3747 { 3747 {
3748 ASSERT_WITH_SECURITY_IMPLICATION(index < length()); 3748 ASSERT_WITH_SECURITY_IMPLICATION(index < length());
3749 return &m_attributeVector.at(index); 3749 return &m_attributeVector.at(index);
3750 } 3750 }
3751 3751
3752 } // namespace WebCore 3752 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/dom/Element.h ('k') | Source/core/dom/ElementRareData.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698