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
34 lines
1.1 KiB
C++
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
|