gecko-dev/dom/l10n
Jan-Niklas Jaeschke 4265f72859 Bug 1777925: Replaced MutationObserver array container type with linked list. r=smaug
Deletion of mutation observers from a list resulted in O(n^2) behavior and could lead to massive freezes.
This is resolved by using a LinkedList instead, reducing complexity to O(n).

A safely iterable doubly linked list was implemented based on `mozilla::DoublyLinkedList`,
allowing to insert and remove elements while iterating the list.

Due to the nature of `mozilla::DoublyLinkedList`, every Mutation Observer now inherits `mozilla::DoublyLinkedListElement<T>`.
This implies that a Mutation Observer can only be part of one DoublyLinkedList.
This conflicts with some Mutation Observers, which are being added to multiple `nsINode`s.
To continue supporting this, new MutationObserver base classes `nsMultiMutationObserver` and `nsStubMultiMutationObserver` are introduced,
which create `MutationObserverWrapper` objects each time they are added to a `nsINode`.
The wrapper objects forward every call to the actual observer.

Differential Revision: https://phabricator.services.mozilla.com/D157031
2022-09-21 11:31:44 +00:00
..
tests Bug 1789765 - Fix broken links to 'Fluent for Firefox Developers' page. r=firefox-source-docs-reviewers,marco DONTBUILD 2022-09-08 19:03:25 +00:00
components.conf
DocumentL10n.cpp Bug 1772006 - Part 5: Simplify and move the string searching APIs from ns[T]StringObsolete, r=xpcom-reviewers,necko-reviewers,eeejay,dragana,barret 2022-07-30 00:12:48 +00:00
DocumentL10n.h Bug 1768189 - Part 17: Apply modernize-concat-nested-namespaces to dom/ipc/URLClassifierParent.h ... r=andi 2022-05-09 20:41:09 +00:00
DOMLocalization.cpp Bug 1751836 - Drive-by: Simplify L10nMutations::FlushPendingTranslations. r=dminor 2022-05-02 15:12:30 +00:00
DOMLocalization.h Bug 1768189 - Part 17: Apply modernize-concat-nested-namespaces to dom/ipc/URLClassifierParent.h ... r=andi 2022-05-09 20:41:09 +00:00
L10nMutations.cpp Bug 1777925: Replaced MutationObserver array container type with linked list. r=smaug 2022-09-21 11:31:44 +00:00
L10nMutations.h Bug 1777925: Replaced MutationObserver array container type with linked list. r=smaug 2022-09-21 11:31:44 +00:00
L10nOverlays.cpp Bug 1761893 - Remove aria-valuetext from a list of localisable attributes. r=smaug,nordzilla,Jamie,eemeli 2022-08-18 17:09:54 +00:00
L10nOverlays.h Bug 1768189 - Part 17: Apply modernize-concat-nested-namespaces to dom/ipc/URLClassifierParent.h ... r=andi 2022-05-09 20:41:09 +00:00
moz.build