gecko-dev/dom/script
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
..
AutoEntryScript.cpp Bug 1720358 - Make AutoProfilerLabel available even when MOZ_GECKO_PROFILER is not defined, and remove ifdefs, r=gerald. 2021-07-15 22:04:22 +00:00
AutoEntryScript.h Bug 1720358 - Make AutoProfilerLabel available even when MOZ_GECKO_PROFILER is not defined, and remove ifdefs, r=gerald. 2021-07-15 22:04:22 +00:00
ModuleLoader.cpp Bug 1788532 - Block dynamic module load processing during sync XHR r=smaug 2022-09-15 09:14:11 +00:00
ModuleLoader.h Bug 1768189 - Part 26: Apply modernize-concat-nested-namespaces to dom/reporting/ReportingHeader.cpp ... r=andi 2022-05-09 20:41:13 +00:00
ScriptCompression.cpp Bug 1757833 - Add PerfStat probes for bytecode cache reads, writes, compression, and decompression r=nbp,necko-reviewers,kershaw 2022-05-20 18:25:42 +00:00
ScriptCompression.h Bug 1757833 - Extract methods ScriptBytecodeCompress and ScriptBytecodeDecompress r=nbp 2022-05-20 18:25:40 +00:00
ScriptDecoding.h Bug 1768189 - Part 26: Apply modernize-concat-nested-namespaces to dom/reporting/ReportingHeader.cpp ... r=andi 2022-05-09 20:41:13 +00:00
ScriptElement.cpp Bug 1777925: Replaced MutationObserver array container type with linked list. r=smaug 2022-09-21 11:31:44 +00:00
ScriptElement.h Bug 1768189 - Part 26: Apply modernize-concat-nested-namespaces to dom/reporting/ReportingHeader.cpp ... r=andi 2022-05-09 20:41:13 +00:00
ScriptLoadContext.cpp Bug 1788977 - Consolidate methods for finishing off-thread JS parse/decode. r=arai 2022-09-06 12:01:35 +00:00
ScriptLoadContext.h Bug 1768189 - Part 26: Apply modernize-concat-nested-namespaces to dom/reporting/ReportingHeader.cpp ... r=andi 2022-05-09 20:41:13 +00:00
ScriptLoadHandler.cpp Bug 1742438 - Part 7: Make ScriptDecoder an independent class rather than a base class; r=arai 2022-07-14 17:07:27 +00:00
ScriptLoadHandler.h Bug 1742438 - Part 7: Make ScriptDecoder an independent class rather than a base class; r=arai 2022-07-14 17:07:27 +00:00
ScriptLoader.cpp Backed out changeset 7cfadef6f30f (bug 1790765) for causing bug 1791309 2022-09-20 09:16:58 +03:00
ScriptLoader.h Bug 1788532 - Block dynamic module load processing during sync XHR r=smaug 2022-09-15 09:14:11 +00:00
ScriptSettings.cpp Bug 1763586 - Remove Element from LoadScript and child classes; r=jonco 2022-04-21 09:53:34 +00:00
ScriptSettings.h Bug 1726123 - Part 5: Add missing "js/" includes outside of SM. r=arai 2021-08-17 15:45:39 +00:00
ScriptTrace.h Bug 1742437 - re-scope all generic module/script loader files under js/loader; r=jonco 2022-02-21 15:39:09 +00:00
ShadowRealmGlobalScope.cpp Bug 1747059 - Correctly select microtask queue when enquing a job in a ShadowRealm in a worker. r=smaug 2022-06-28 22:04:19 +00:00
ShadowRealmGlobalScope.h Bug 1777574, automate CC zone handling, r=mccr8 2022-09-07 11:22:51 +00:00
moz.build Bug 1742438 - Part 8: Use mScriptData instead of custom load context field; r=arai,asuth 2022-07-14 17:07:27 +00:00
nsIScriptElement.cpp
nsIScriptElement.h Bug 1688879 - Part 2: Add support for import maps in ScriptElement/ScriptLoader/ScriptKind. r=jonco,yulia,smaug 2022-05-05 21:19:01 +00:00
nsIScriptLoaderObserver.idl Bug 1539884 - Part 17: Mark nsIScriptLoaderObserver::scriptEvaluated as can_run_script r=masayuki 2021-12-17 13:27:52 +00:00