| 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 { | 64 { |
| 65 detachNonDistributedNodes(); | 65 detachNonDistributedNodes(); |
| 66 m_nodes.clear(); | 66 m_nodes.clear(); |
| 67 m_distributed.clear(); | 67 m_distributed.clear(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 inline void DistributionPool::populateChildren(const ContainerNode& parent) | 70 inline void DistributionPool::populateChildren(const ContainerNode& parent) |
| 71 { | 71 { |
| 72 clear(); | 72 clear(); |
| 73 for (Node* child = parent.firstChild(); child; child = child->nextSibling())
{ | 73 for (Node* child = parent.firstChild(); child; child = child->nextSibling())
{ |
| 74 if (isHTMLSlotElement(child)) { |
| 75 // TODO(hayato): Support re-distribution across v0 and v1 shadow tre
es |
| 76 continue; |
| 77 } |
| 74 if (isActiveInsertionPoint(*child)) { | 78 if (isActiveInsertionPoint(*child)) { |
| 75 InsertionPoint* insertionPoint = toInsertionPoint(child); | 79 InsertionPoint* insertionPoint = toInsertionPoint(child); |
| 76 for (size_t i = 0; i < insertionPoint->distributedNodesSize(); ++i) | 80 for (size_t i = 0; i < insertionPoint->distributedNodesSize(); ++i) |
| 77 m_nodes.append(insertionPoint->distributedNodeAt(i)); | 81 m_nodes.append(insertionPoint->distributedNodeAt(i)); |
| 78 } else { | 82 } else { |
| 79 m_nodes.append(child); | 83 m_nodes.append(child); |
| 80 } | 84 } |
| 81 } | 85 } |
| 82 m_distributed.resize(m_nodes.size()); | 86 m_distributed.resize(m_nodes.size()); |
| 83 m_distributed.fill(false); | 87 m_distributed.fill(false); |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 root->olderShadowRoot()->setShadowInsertionPointOfYoungerShadowRoot(
shadowInsertionPoint); | 325 root->olderShadowRoot()->setShadowInsertionPointOfYoungerShadowRoot(
shadowInsertionPoint); |
| 322 } | 326 } |
| 323 if (ElementShadow* shadow = shadowWhereNodeCanBeDistributed(*shadowInser
tionPoint)) | 327 if (ElementShadow* shadow = shadowWhereNodeCanBeDistributed(*shadowInser
tionPoint)) |
| 324 shadow->setNeedsDistributionRecalc(); | 328 shadow->setNeedsDistributionRecalc(); |
| 325 } | 329 } |
| 326 InspectorInstrumentation::didPerformElementShadowDistribution(host()); | 330 InspectorInstrumentation::didPerformElementShadowDistribution(host()); |
| 327 } | 331 } |
| 328 | 332 |
| 329 void ElementShadow::distributeV1() | 333 void ElementShadow::distributeV1() |
| 330 { | 334 { |
| 331 // TODO(hayato): Implement this | 335 if (!m_slotAssignment) |
| 336 m_slotAssignment = adoptPtr(new SlotAssignment()); |
| 337 m_slotAssignment->resolveAssignment(youngestShadowRoot()); |
| 332 } | 338 } |
| 333 | 339 |
| 334 void ElementShadow::didDistributeNode(const Node* node, InsertionPoint* insertio
nPoint) | 340 void ElementShadow::didDistributeNode(const Node* node, InsertionPoint* insertio
nPoint) |
| 335 { | 341 { |
| 336 #if ENABLE(OILPAN) | 342 #if ENABLE(OILPAN) |
| 337 NodeToDestinationInsertionPoints::AddResult result = m_nodeToInsertionPoints
.add(node, nullptr); | 343 NodeToDestinationInsertionPoints::AddResult result = m_nodeToInsertionPoints
.add(node, nullptr); |
| 338 if (result.isNewEntry) | 344 if (result.isNewEntry) |
| 339 result.storedValue->value = adoptPtrWillBeNoop(new DestinationInsertionP
oints()); | 345 result.storedValue->value = adoptPtrWillBeNoop(new DestinationInsertionP
oints()); |
| 340 result.storedValue->value->append(insertionPoint); | 346 result.storedValue->value->append(insertionPoint); |
| 341 #else | 347 #else |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 visitor->trace(m_nodeToInsertionPoints); | 401 visitor->trace(m_nodeToInsertionPoints); |
| 396 visitor->trace(m_selectFeatures); | 402 visitor->trace(m_selectFeatures); |
| 397 // Shadow roots are linked with previous and next pointers which are traced. | 403 // Shadow roots are linked with previous and next pointers which are traced. |
| 398 // It is therefore enough to trace one of the shadow roots here and the | 404 // It is therefore enough to trace one of the shadow roots here and the |
| 399 // rest will be traced from there. | 405 // rest will be traced from there. |
| 400 visitor->trace(m_shadowRoots.head()); | 406 visitor->trace(m_shadowRoots.head()); |
| 401 #endif | 407 #endif |
| 402 } | 408 } |
| 403 | 409 |
| 404 } // namespace | 410 } // namespace |
| OLD | NEW |