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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 } | 214 } |
215 } | 215 } |
216 | 216 |
217 // We could have been distributed into in a detached subtree, make sure to | 217 // We could have been distributed into in a detached subtree, make sure to |
218 // clear the distribution when inserted again to avoid cycles. | 218 // clear the distribution when inserted again to avoid cycles. |
219 clearDistribution(); | 219 clearDistribution(); |
220 | 220 |
221 return InsertionDone; | 221 return InsertionDone; |
222 } | 222 } |
223 | 223 |
224 void InsertionPoint::removedFrom(ContainerNode* insertionPoint) | 224 void InsertionPoint::removedFrom(ContainerNode* insertionPoint, Node* next) |
225 { | 225 { |
226 ShadowRoot* root = containingShadowRoot(); | 226 ShadowRoot* root = containingShadowRoot(); |
227 if (!root) | 227 if (!root) |
228 root = insertionPoint->containingShadowRoot(); | 228 root = insertionPoint->containingShadowRoot(); |
229 | 229 |
230 if (root) { | 230 if (root) { |
231 if (ElementShadow* rootOwner = root->owner()) | 231 if (ElementShadow* rootOwner = root->owner()) |
232 rootOwner->setNeedsDistributionRecalc(); | 232 rootOwner->setNeedsDistributionRecalc(); |
233 } | 233 } |
234 | 234 |
235 // host can be null when removedFrom() is called from ElementShadow destruct
or. | 235 // host can be null when removedFrom() is called from ElementShadow destruct
or. |
236 ElementShadow* rootOwner = root ? root->owner() : 0; | 236 ElementShadow* rootOwner = root ? root->owner() : 0; |
237 | 237 |
238 // Since this insertion point is no longer visible from the shadow subtree,
it need to clean itself up. | 238 // Since this insertion point is no longer visible from the shadow subtree,
it need to clean itself up. |
239 clearDistribution(); | 239 clearDistribution(); |
240 | 240 |
241 if (m_registeredWithShadowRoot && insertionPoint->treeScope().rootNode() ==
root) { | 241 if (m_registeredWithShadowRoot && insertionPoint->treeScope().rootNode() ==
root) { |
242 ASSERT(root); | 242 ASSERT(root); |
243 m_registeredWithShadowRoot = false; | 243 m_registeredWithShadowRoot = false; |
244 root->didRemoveInsertionPoint(this); | 244 root->didRemoveInsertionPoint(this); |
245 if (rootOwner) { | 245 if (rootOwner) { |
246 if (canAffectSelector()) | 246 if (canAffectSelector()) |
247 rootOwner->willAffectSelector(); | 247 rootOwner->willAffectSelector(); |
248 } | 248 } |
249 } | 249 } |
250 | 250 |
251 HTMLElement::removedFrom(insertionPoint); | 251 HTMLElement::removedFrom(insertionPoint, next); |
252 } | 252 } |
253 | 253 |
254 DEFINE_TRACE(InsertionPoint) | 254 DEFINE_TRACE(InsertionPoint) |
255 { | 255 { |
256 visitor->trace(m_distributedNodes); | 256 visitor->trace(m_distributedNodes); |
257 HTMLElement::trace(visitor); | 257 HTMLElement::trace(visitor); |
258 } | 258 } |
259 | 259 |
260 const InsertionPoint* resolveReprojection(const Node* projectedNode) | 260 const InsertionPoint* resolveReprojection(const Node* projectedNode) |
261 { | 261 { |
(...skipping 29 matching lines...) Expand all Loading... |
291 if (!insertionPoints) | 291 if (!insertionPoints) |
292 return; | 292 return; |
293 for (size_t i = 0; i < insertionPoints->size(); ++i) | 293 for (size_t i = 0; i < insertionPoints->size(); ++i) |
294 results.append(insertionPoints->at(i).get()); | 294 results.append(insertionPoints->at(i).get()); |
295 ASSERT(current != insertionPoints->last().get()); | 295 ASSERT(current != insertionPoints->last().get()); |
296 current = insertionPoints->last().get(); | 296 current = insertionPoints->last().get(); |
297 } | 297 } |
298 } | 298 } |
299 | 299 |
300 } // namespace blink | 300 } // namespace blink |
OLD | NEW |