mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-07 18:04:46 +00:00
Bug 1819664 - Cleanup mutation pending elements. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D171359
This commit is contained in:
parent
b14d9e44e8
commit
67cde8c9d2
@ -111,33 +111,28 @@ void L10nMutations::ContentInserted(nsIContent* aChild) {
|
||||
|
||||
void L10nMutations::ContentRemoved(nsIContent* aChild,
|
||||
nsIContent* aPreviousSibling) {
|
||||
if (!mObserving) {
|
||||
if (!mObserving || mPendingElements.IsEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!aChild->IsElement()) {
|
||||
return;
|
||||
}
|
||||
Element* elem = aChild->AsElement();
|
||||
|
||||
if (!IsInRoots(elem)) {
|
||||
Element* elem = Element::FromNode(*aChild);
|
||||
if (!elem || !IsInRoots(elem)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ErrorResult rv;
|
||||
Sequence<OwningNonNull<Element>> elements;
|
||||
DOMLocalization::GetTranslatables(*aChild, elements, rv);
|
||||
DOMLocalization::GetTranslatables(*aChild, elements, IgnoreErrors());
|
||||
|
||||
for (auto& elem : elements) {
|
||||
mPendingElements.RemoveElement(elem);
|
||||
mPendingElementsHash.EnsureRemoved(elem);
|
||||
if (mPendingElementsHash.EnsureRemoved(elem)) {
|
||||
mPendingElements.RemoveElement(elem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void L10nMutations::L10nElementChanged(Element* aElement) {
|
||||
if (!mPendingElementsHash.Contains(aElement)) {
|
||||
if (mPendingElementsHash.EnsureInserted(aElement)) {
|
||||
mPendingElements.AppendElement(aElement);
|
||||
mPendingElementsHash.Insert(aElement);
|
||||
}
|
||||
|
||||
if (!mRefreshDriver) {
|
||||
@ -211,8 +206,8 @@ void L10nMutations::FlushPendingTranslations() {
|
||||
RefPtr<Promise> promise =
|
||||
mDOMLocalization->TranslateElements(elements, IgnoreErrors());
|
||||
if (promise) {
|
||||
RefPtr<PromiseNativeHandler> l10nMutationFinalizationHandler =
|
||||
new L10nMutationFinalizationHandler(
|
||||
auto l10nMutationFinalizationHandler =
|
||||
MakeRefPtr<L10nMutationFinalizationHandler>(
|
||||
mDOMLocalization->GetParentObject());
|
||||
promise->AppendNativeHandler(l10nMutationFinalizationHandler);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user