Commit e99081a9 authored by Hayato Ito's avatar Hayato Ito Committed by Commit Bot

Refactor SlotAssignment to clarify which parts are related to Incremental Shadow DOM

Also, rename the following functions as follows:

- SlotAssignment::RecalcAssignmentNg => SlotAssignment::RecalcAssignment
- SlotAssignment::RecalcAssignment => SlotAssignment::RecalcAssignmentForDistribution

No behavior change.

Bug: 776656
Change-Id: I9b13f2c840533299c670a08d1015524e0d71824d
Reviewed-on: https://chromium-review.googlesource.com/992078Reviewed-by: default avatarTakayoshi Kochi <kochi@chromium.org>
Commit-Queue: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547975}
parent fdac10a1
......@@ -213,7 +213,7 @@ void SlotAssignment::SetNeedsAssignmentRecalc() {
}
}
void SlotAssignment::RecalcAssignmentNg() {
void SlotAssignment::RecalcAssignment() {
DCHECK(RuntimeEnabledFeatures::IncrementalShadowDOMEnabled());
if (!needs_assignment_recalc_)
......@@ -265,7 +265,7 @@ void SlotAssignment::RecalcAssignmentNg() {
slot->RecalcFlatTreeChildren();
}
void SlotAssignment::RecalcAssignment() {
void SlotAssignment::RecalcAssignmentForDistribution() {
DCHECK(!RuntimeEnabledFeatures::IncrementalShadowDOMEnabled());
for (Member<HTMLSlotElement> slot : Slots())
......@@ -309,7 +309,7 @@ void SlotAssignment::RecalcAssignment() {
void SlotAssignment::RecalcDistribution() {
DCHECK(!RuntimeEnabledFeatures::IncrementalShadowDOMEnabled());
RecalcAssignment();
RecalcAssignmentForDistribution();
const HeapVector<Member<HTMLSlotElement>>& slots = Slots();
for (auto slot : slots)
......
......@@ -37,7 +37,6 @@ class SlotAssignment final : public GarbageCollected<SlotAssignment> {
// Instead, provide alternative, HTMLSlotElement::hasAssignedNodesSlow()
// so that slotchange can be detected.
void RecalcDistribution();
const HeapVector<Member<HTMLSlotElement>>& Slots();
void DidAddSlot(HTMLSlotElement&);
......@@ -48,14 +47,15 @@ class SlotAssignment final : public GarbageCollected<SlotAssignment> {
bool FindHostChildBySlotName(const AtomicString& slot_name) const;
void SetNeedsAssignmentRecalc();
// For Incremental Shadow DOM
void RecalcAssignmentNg();
void Trace(blink::Visitor*);
// For Incremental Shadow DOM
bool NeedsAssignmentRecalc() const { return needs_assignment_recalc_; }
void SetNeedsAssignmentRecalc();
void RecalcAssignment();
// For Non-Incremental Shadow DOM
void RecalcDistribution();
private:
explicit SlotAssignment(ShadowRoot& owner);
......@@ -71,13 +71,14 @@ class SlotAssignment final : public GarbageCollected<SlotAssignment> {
HTMLSlotElement* GetCachedFirstSlotWithoutAccessingNodeTree(
const AtomicString& slot_name);
void RecalcAssignment();
void DidAddSlotInternal(HTMLSlotElement&);
void DidRemoveSlotInternal(HTMLSlotElement&,
const AtomicString& slot_name,
SlotMutationType);
// For Non-Incremental Shadow DOM
void RecalcAssignmentForDistribution();
HeapVector<Member<HTMLSlotElement>> slots_;
Member<TreeOrderedMap> slot_map_;
WeakMember<ShadowRoot> owner_;
......
......@@ -44,9 +44,9 @@ void SlotAssignmentEngine::RecalcSlotAssignments() {
HeapHashSet<WeakMember<ShadowRoot>>(shadow_roots_needing_recalc_)) {
DCHECK(shadow_root->isConnected());
DCHECK(shadow_root->NeedsSlotAssignmentRecalc());
// SlotAssignment::RecalcAssignmentNg() will remove its shadow root from
// SlotAssignment::RecalcAssignment() will remove its shadow root from
// shadow_roots_needing_recalc_.
shadow_root->GetSlotAssignment().RecalcAssignmentNg();
shadow_root->GetSlotAssignment().RecalcAssignment();
}
DCHECK(shadow_roots_needing_recalc_.IsEmpty());
}
......
......@@ -103,7 +103,7 @@ const HeapVector<Member<Node>>& HTMLSlotElement::AssignedNodes() const {
return assigned_nodes_;
}
if (RuntimeEnabledFeatures::IncrementalShadowDOMEnabled()) {
ContainingShadowRoot()->GetSlotAssignment().RecalcAssignmentNg();
ContainingShadowRoot()->GetSlotAssignment().RecalcAssignment();
return assigned_nodes_;
}
......@@ -272,7 +272,7 @@ void HTMLSlotElement::DispatchSlotChangeEvent() {
Node* HTMLSlotElement::AssignedNodeNextTo(const Node& node) const {
DCHECK(SupportsAssignment());
if (RuntimeEnabledFeatures::IncrementalShadowDOMEnabled())
ContainingShadowRoot()->GetSlotAssignment().RecalcAssignmentNg();
ContainingShadowRoot()->GetSlotAssignment().RecalcAssignment();
else
DCHECK(!NeedsDistributionRecalc());
// TODO(crbug.com/776656): Use {node -> index} map to avoid O(N) lookup
......@@ -286,7 +286,7 @@ Node* HTMLSlotElement::AssignedNodeNextTo(const Node& node) const {
Node* HTMLSlotElement::AssignedNodePreviousTo(const Node& node) const {
DCHECK(SupportsAssignment());
if (RuntimeEnabledFeatures::IncrementalShadowDOMEnabled())
ContainingShadowRoot()->GetSlotAssignment().RecalcAssignmentNg();
ContainingShadowRoot()->GetSlotAssignment().RecalcAssignment();
else
DCHECK(!NeedsDistributionRecalc());
// TODO(crbug.com/776656): Use {node -> index} map to avoid O(N) lookup
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment