OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Neither the name of Google Inc. nor the names of its | 10 * * Neither the name of Google Inc. nor the names of its |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 oldRoot->setParentOrShadowHostNode(0); | 71 oldRoot->setParentOrShadowHostNode(0); |
72 oldRoot->setParentTreeScope(shadowHost->document()); | 72 oldRoot->setParentTreeScope(shadowHost->document()); |
73 oldRoot->setPrev(0); | 73 oldRoot->setPrev(0); |
74 oldRoot->setNext(0); | 74 oldRoot->setNext(0); |
75 ChildNodeRemovalNotifier(shadowHost).notify(oldRoot.get()); | 75 ChildNodeRemovalNotifier(shadowHost).notify(oldRoot.get()); |
76 } | 76 } |
77 | 77 |
78 m_distributor.invalidateDistribution(shadowHost); | 78 m_distributor.invalidateDistribution(shadowHost); |
79 } | 79 } |
80 | 80 |
81 void ElementShadow::attach() | 81 void ElementShadow::attach(const Node::AttachContext& context) |
82 { | 82 { |
83 ContentDistributor::ensureDistribution(youngestShadowRoot()); | 83 ContentDistributor::ensureDistribution(youngestShadowRoot()); |
84 | 84 |
| 85 Node::AttachContext childrenContext(context); |
| 86 childrenContext.resolvedStyle = 0; |
| 87 |
85 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) { | 88 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) { |
86 if (!root->attached()) | 89 if (!root->attached()) |
87 root->attach(); | 90 root->attach(childrenContext); |
88 } | 91 } |
89 } | 92 } |
90 | 93 |
91 void ElementShadow::detach() | 94 void ElementShadow::detach(const Node::AttachContext& context) |
92 { | 95 { |
| 96 Node::AttachContext childrenContext(context); |
| 97 childrenContext.resolvedStyle = 0; |
| 98 |
93 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) { | 99 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) { |
94 if (root->attached()) | 100 if (root->attached()) |
95 root->detach(); | 101 root->detach(childrenContext); |
96 } | 102 } |
97 } | 103 } |
98 | 104 |
99 bool ElementShadow::childNeedsStyleRecalc() const | 105 bool ElementShadow::childNeedsStyleRecalc() const |
100 { | 106 { |
101 ASSERT(youngestShadowRoot()); | 107 ASSERT(youngestShadowRoot()); |
102 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) | 108 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) |
103 if (root->childNeedsStyleRecalc()) | 109 if (root->childNeedsStyleRecalc()) |
104 return true; | 110 return true; |
105 | 111 |
(...skipping 30 matching lines...) Expand all Loading... |
136 info.addMember(m_shadowRoots, "shadowRoots"); | 142 info.addMember(m_shadowRoots, "shadowRoots"); |
137 ShadowRoot* shadowRoot = m_shadowRoots.head(); | 143 ShadowRoot* shadowRoot = m_shadowRoots.head(); |
138 while (shadowRoot) { | 144 while (shadowRoot) { |
139 info.addMember(shadowRoot, "shadowRoot"); | 145 info.addMember(shadowRoot, "shadowRoot"); |
140 shadowRoot = shadowRoot->next(); | 146 shadowRoot = shadowRoot->next(); |
141 } | 147 } |
142 info.addMember(m_distributor, "distributor"); | 148 info.addMember(m_distributor, "distributor"); |
143 } | 149 } |
144 | 150 |
145 } // namespace | 151 } // namespace |
OLD | NEW |