Files
tubestation/dom/animation/AnimationComparator.h
Emilio Cobos Álvarez 65f7282704 Bug 1947516 - Avoid unstable ordering in OwningElementRef comparisons. r=boris,smaug
Use shadow-dom aware ordering, and pick an order for disconnected elements
based on subtree root, because there's not too much useful things to do.

The spec should probably define what happens in those cases I guess...

That's not a useful order, mind you, but it prevents breaking the invariants
the sort algorithms rely on.

Change the comparison to return an int just because it's easier to debug.

Differential Revision: https://phabricator.services.mozilla.com/D237878
2025-03-25 12:14:03 +00:00

34 lines
1.1 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_AnimationComparator_h
#define mozilla_AnimationComparator_h
#include "mozilla/dom/Animation.h"
namespace mozilla {
// Although this file is called AnimationComparator, we don't actually
// implement AnimationComparator (to compare const Animation& parameters)
// since it's not actually needed (yet).
template <typename AnimationPtrType>
class AnimationPtrComparator {
mutable nsContentUtils::NodeIndexCache mCache;
public:
bool Equals(const AnimationPtrType& a, const AnimationPtrType& b) const {
return a == b;
}
bool LessThan(const AnimationPtrType& a, const AnimationPtrType& b) const {
return a->CompareCompositeOrder(*b, mCache) < 0;
}
};
} // namespace mozilla
#endif // mozilla_AnimationComparator_h