Commit Graph
111 Commits
Author SHA1 Message Date
Nika Layzell d17ad0547f Bug 1994423 - Split MediaSource BlobURL Storage from BlobImpl, r=asuth,media-playback-reviewers,karlt,timhuang
This separates the MediaSource storage from the primary BlobImpl
storage. The goal here is to separate this simpler process-local storage
from the more complex cross-process store.

There is very little overlap in how these two types of URLs are used,
with a MediaSource URL not being usable anywhere other than in media
elements. This makes performing the separation relatively
straightforward.

The design in this patch attaches the MediaSource storage to the
DocGroup, which will limit access to the specific Window Agent. This
also makes it simpler to cycle-collect than the previous global-storage
based approach.

Differential Revision: https://phabricator.services.mozilla.com/D268717
2026-03-25 18:35:05 +00:00
Sylvestre Ledru 9eb1a31a98 Bug 2023419 - Remove Emacs/Vim modelines from dom/ r=emilio,media-playback-reviewers,webidl,padenot
replaced by .editorconfig
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D287843
2026-03-16 21:02:32 +00:00
Emilio Cobos Álvarez f2c51e823e Bug 2017011 - Remove dom.arena_allocator.enabled. r=dom-core,smaug
It's been true for a while and no plans to make it false anytime soon.

Differential Revision: https://phabricator.services.mozilla.com/D283479
2026-02-16 11:05:51 +00:00
Paul Bone bfc9f41c0b Bug 1928254 - pt 1. Label arenas for the profiler r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D227440
2025-05-27 08:04:02 +00:00
Serban Stanca 72ddd15355 Revert "Bug 1928254 - pt 8. Improve the idle purge markers r=jstutte" for causing multiple failures.
This reverts commit 1de23dc2a6.

This reverts commit dc7de1e170.

This reverts commit 0891965b10.

This reverts commit 52c855715a.

This reverts commit fcdc85d6b4.

This reverts commit 1fa61503c2.

This reverts commit df279eb40e.

This reverts commit dd4278a7d5.
2025-05-16 08:52:29 +00:00
Paul Bone dd4278a7d5 Bug 1928254 - pt 1. Label arenas for the profiler r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D227440
2025-05-16 07:32:47 +00:00
Atila Butkovits 77ba9a0aeb Revert "Bug 1928254 - pt 8. Improve the idle purge markers r=jstutte"
This reverts commit 990a75a96b.

Revert "Bug 1928254 - pt 7. Add more details to the Purge marker r=jstutte,profiler-reviewers,canaltinova"

This reverts commit c4b8597e6e.

Revert "Bug 1928254 - pt 6. Move PurgeResult to mozjemalloc_types.h r=jstutte"

This reverts commit 3f6a9d0a98.

Revert "Bug 1928254 - pt 5. Rename purge_result_t to avoid confusion with PurgeResult r=jstutte"

This reverts commit 5a56d09f72.

Revert "Bug 1928254 - pt 4. Add profiler markers for mozjemalloc's Purge() r=florian,profiler-reviewers"

This reverts commit e699aa7901.

Revert "Bug 1928254 - pt 3. Time the purge operation in mozjemalloc r=glandium"

This reverts commit 3b891ccfc3.

Revert "Bug 1928254 - pt 2. Add profiler callbacks for mozjemalloc r=glandium"

This reverts commit 362172ca5b.

Revert "Bug 1928254 - pt 1. Label arenas for the profiler r=glandium"

This reverts commit b1f31febeb.
2025-05-15 05:33:53 +00:00
Paul Bone b1f31febeb Bug 1928254 - pt 1. Label arenas for the profiler r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D227440
2025-05-15 04:46:02 +00:00
Florian Quèze 9885783942 Bug 1956726 - remove leftover Telemetry.h includes in .cpp files, r=chutten,geckoview-reviewers,cookie-reviewers,win-reviewers,dom-storage-reviewers,gstoll,valentin,m_kato,janv.
Differential Revision: https://phabricator.services.mozilla.com/D244351
2025-04-08 13:03:02 +00:00
Nika Layzell e284750379 Bug 1665474 - Part 1: Make origin keying explicit in the DocGroup key, r=farre
The UsesOriginAgentCluster method returns a Maybe<bool>, to allow for an
uncertain state in the future (when the origin-agent-cluster status can be
unknown until a network request is received).

Differential Revision: https://phabricator.services.mozilla.com/D236970
2025-03-03 22:51:26 +00:00
Emilio Cobos Álvarez 610e57d843 Bug 1873967 - Remove DocGroup::TryToLoadIframesInBackground. r=sefeng
This is somewhat complex, untested, never shipped, and predates
fission.

Remove it to simplify the code.

Depends on D198183

Differential Revision: https://phabricator.services.mozilla.com/D198184
2024-01-10 22:33:17 +00:00
Emilio Cobos Álvarez d02e297b2d Bug 1624819 - Remove TaskCategory and other quantum dom remnants. r=smaug,media-playback-reviewers,credential-management-reviewers,cookie-reviewers,places-reviewers,win-reviewers,valentin,mhowell,sgalich,alwu
Sorry this is not a particularly easy patch to review. But it should be
mostly straight-forward.

I kept Document::Dispatch mostly for convenience, but could be
cleaned-up too / changed by SchedulerGroup::Dispatch. Similarly maybe
that can just be NS_DispatchToMainThread if we add an NS_IsMainThread
check there or something (to preserve shutdown semantics).

Differential Revision: https://phabricator.services.mozilla.com/D190450
2023-10-10 08:51:12 +00:00
Florian Quèze de6cef3975 Bug 1836191 - remove PerformanceCounter that was only used by ChromeUtils.requestPerformanceMetrics, r=smaug.
Differential Revision: https://phabricator.services.mozilla.com/D179697
2023-06-08 21:53:18 +00:00
Florian Quèze 0e354778bd Bug 1836191 - remove ChromeUtils.requestPerformanceMetrics that was only used by about:performance, r=smaug.
Differential Revision: https://phabricator.services.mozilla.com/D179696
2023-06-08 21:53:18 +00:00
Andrew McCreight 188ac80e29 Bug 1805931, part 2 - Automated removal of uses of ROOT and UNROOT CC macros. r=smaug
As of the prior patch, these are no longer needed. I removed
these with a script, then ran clang-format on the files, then
manually reverted a few unrelated changed from the formatter.

Differential Revision: https://phabricator.services.mozilla.com/D164829
2022-12-15 19:45:01 +00:00
Paul Bone ea089bd8e8 Bug 1760920 - pt 4. Remove CollectMemoryInfo(RefPtr<BrowsingContext> &, _) r=nika
Remove this 2nd unnecessary code path.

Differential Revision: https://phabricator.services.mozilla.com/D146675
2022-11-07 22:36:36 +00:00
Nika Layzell 4df4c3621e Bug 1780614 - Track potential crossoriginisolated status on BCG, r=smaug,kmag
This patch changes how BrowsingContextGroups track CrossOriginIsolated
status such that it should be more consistently tracked and easier to
assert in the places which depend on it. In the new state of the world,
a flag is stored within the BCG's ID which tracks whether it was
created for cross-origin isolated documents, and that is also checked
when making decisions about how to isolate initial about:blank
documents, and whether to allow certain changes to
CrossOriginOpenerPolicy.

This flag is stashed within the ID, as it needs to be preserved if the
BCG is destroyed and then re-created from the ID (which may be e.g.
round-tripped through JS code). I also considered making the ID be a
string instead, to make it easier to include extra information like
this, and more clear where the information is stored, however :kmag
generally preferred using a bit within the integer ID.

These new assertions should now be less likely to spuriously fail due to
a DocShell disappearing or similar as well, which should help fix the
original issue.

Differential Revision: https://phabricator.services.mozilla.com/D152695
2022-08-03 15:58:27 +00:00
Nika Layzell c320f56d5b Bug 1738103 - Part 4: Add XPCOM support for shutdown tasks, r=necko-reviewers,KrisWright
Tasks registered with shutdown tasks are called when the target
nsISerialEventTarget is about to be destroyed.

Differential Revision: https://phabricator.services.mozilla.com/D129840
2022-03-23 22:22:04 +00:00
Chris Peterson 91d039e9f2 Bug 1744425 - Replace nsContentUtils::GenerateUUID() to nsID::GenerateUUID(). r=nika
Bug 1723674 added a new nsID::GenerateUUID() static factory function to generate UUIDs without the overhead of querying and instantiating an nsIUUIDGenerator object. nsContentUtils::GenerateUUID() is a utility function that amortizes that overhead by holding an nsIUUIDGenerator singleton. That's no longer necessary because code that calls nsContentUtils::GenerateUUID() can now just call nsID::GenerateUUID(). No nsIUUDGenerator is needed.

Differential Revision: https://phabricator.services.mozilla.com/D132866
2022-02-03 04:39:34 +00:00
Cosmin Sabou c26566def8 Backed out changeset 1778ca2ab291 (bug 1744425) for bc failures on browser_xpcom_graph_wait.js. CLOSED TREE 2021-12-08 07:20:54 +02:00
Chris Peterson 6e3e9adfcc Bug 1744425 - Replace nsContentUtils::GenerateUUID() to nsID::GenerateUUID(). r=nika
Bug 1723674 added a new nsID::GenerateUUID() static factory function to generate UUIDs without the overhead of querying and instantiating an nsIUUIDGenerator object. nsContentUtils::GenerateUUID() is a utility function that amortizes that overhead by holding an nsIUUIDGenerator singleton. That's no longer necessary because code that calls nsContentUtils::GenerateUUID() can now just call nsID::GenerateUUID(). No nsIUUDGenerator is needed.

Differential Revision: https://phabricator.services.mozilla.com/D132866
2021-12-08 03:19:11 +00:00
Olli Pettay 8fca8cd6ac Bug 1722991, don't try to load iframes in the background when Fission is enabled r=sefeng
The feature isn't Fission compatible at the moment and it is disabled by default anyhow, so
better try to not use it with Fission so that some crashes can be avoided.

Differential Revision: https://phabricator.services.mozilla.com/D121714
2021-08-04 18:26:52 +00:00
Andi-Bogdan Postelnicu b65cdc23a6 Bug 1519636 - Reformat recent changes to the Google coding style. r=necko-reviewers,geckoview-reviewers,agi
Updated with clang-format version 11.0.1 (taskcluster-GI8pmG3eQ_OSXfjFfr2yFw)

\# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D113294
2021-04-26 15:52:25 +00:00
Tom Tung 73d74023f9 Bug 1686426 - Add a debug assertion to ensure all documents in a DocGroup have the same cross-origin-isolated state; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D109104
2021-03-25 10:05:29 +00:00
Simon Giesecke 2161198260 Bug 708901 - Migrate to nsTHashSet in dom/base. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D108593
2021-03-24 17:56:46 +00:00
Csoregi Natalia 37fe7677dd Backed out 13 changesets (bug 708901, bug 1184468) for causing build bustage on GeckoViewHistory.cpp. CLOSED TREE
Backed out changeset b1e4c01e63b8 (bug 708901)
Backed out changeset 37b52cce83c0 (bug 708901)
Backed out changeset eee75f33f060 (bug 708901)
Backed out changeset 479bf64c7986 (bug 708901)
Backed out changeset 15a8fb94d15d (bug 708901)
Backed out changeset be31ccd9a61d (bug 708901)
Backed out changeset fc54f4eaedd5 (bug 708901)
Backed out changeset 03c3a56c3d13 (bug 708901)
Backed out changeset 73f11d3c1298 (bug 708901)
Backed out changeset aed22fd80893 (bug 708901)
Backed out changeset 74d8249fbe7e (bug 708901)
Backed out changeset acb725eb3c1d (bug 1184468)
Backed out changeset 70f3ea6efec4 (bug 1184468)
2021-03-24 19:26:20 +02:00
Simon Giesecke f29debc280 Bug 708901 - Migrate to nsTHashSet in dom/base. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D108593
2021-03-24 16:58:58 +00:00
Nika Layzell 1dab7892f1 Bug 1675820 - Part 6: Make DocGroup cycle-collected, r=farre,smaug
Previously, the DocGroup type was not cycle-collected, as it needed to have
references from other threads for Quantum DOM. Nowadays the only off-main-thread
use of DocGroup is for dispatching runnables to the main thread which should be
tracked using a performance counter for about:performance. This means we can
remove the DocGroup references from these dispatching callsites, only storing
the Performance Counter we're interested in, and simplify make DocGroup be
cycle-collected itself.

This fixes a leak caused by adding the WindowGlobalChild getter to
WindowContext, by allowing cycles between the document and its BrowsingContext
to be broken by the cycle-collector.

Differential Revision: https://phabricator.services.mozilla.com/D108865
2021-03-18 19:24:50 +00:00
Andreas Farre 75a6601071 Bug 1682141: Stop searching for top window if top contex has no window context. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D100325
2020-12-22 14:52:27 +00:00
Andreas Farre 97d2ead049 Bug 1682141 - Stop searching for top window if there is no top window. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D99661
2020-12-14 13:16:04 +00:00
Andreas Farre 2bd69db15d Bug 1646505 - Fix about:performance for Fission. r=tarek
With fission it's not possible to use
nsPIDOMWindowOuter::GetInProcessTop and expect to find the top-level
window, since it might be in another process. Instead we use
BrowsingContext::Top. Another issue is that it's not possible to
traverse children by recursively calling GetTabSizes, instead we need
to use BrowsingContext traversal mechanics.

Memory reporting is a bit tricky, since now doc gropus belonging to a
cross process top level browsing context needs to report it's memory
usage and can't skip it, so this is also handled.

Differential Revision: https://phabricator.services.mozilla.com/D97312
2020-12-11 15:56:23 +00:00
Simon Giesecke eae3689379 Bug 1673931 - Avoid including Document.h from header files. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D95046

Depends on D95045
2020-11-23 16:07:43 +00:00
Sylvestre Ledru 68b806d604 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 17:04:01 +00:00
Butkovits Atila a6e7dcc53f Backed out changeset c0adbf7522dc (bug 1674637) for bustage on GMPParent.cpp. CLOSED TREE 2020-11-04 10:54:36 +02:00
Sylvestre Ledru 8f709b39e8 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 08:29:00 +00:00
Andi-Bogdan Postelnicu 1c944e1939 Bug 1626555 - Make dom/base buildable outside of unified-build environment. r=sg
Differential Revision: https://phabricator.services.mozilla.com/D93640
2020-10-19 12:18:01 +00:00
Andreas Farre c0913cffc3 Bug 1646996 - Proxy to main thread in ~DocGroup. r=smaug
When destroying the DocGroup, it will most certainly have no documents
attached to it, which makes labelling them a strange thing to do. And
the event target in DocGroup would most certainly dispatch to release
on the main thread anyway, so switch to do that right away.

Differential Revision: https://phabricator.services.mozilla.com/D88538
2020-08-28 10:14:39 +00:00
Simon Giesecke bea1b135f2 Bug 1660974 - Avoid merging signal slot lists in nsDOMMutationObserver::HandleMutationsInternal. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88122
2020-08-25 10:04:03 +00:00
Simon Giesecke a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Kris Maglione 27026d2594 Bug 1642425: Part 1 - Remove IsTopLevelWindow() method. r=baku
It doesn't do anything sensible under Fission.

Differential Revision: https://phabricator.services.mozilla.com/D77700
2020-06-17 18:01:00 +00:00
Jean-Yves Avenard 29404d7fd0 Bug 1644009 - P11. Make DocGroup's LabellingEventTarget implement nsIDirectTaskDispatcher. r=farre
It will simply forward the interface to the main thread.
This is the final step required to remove AbstractThread support here.

Differential Revision: https://phabricator.services.mozilla.com/D79095
2020-06-12 05:10:40 +00:00
Andreas Farre f8a93f114d Bug 1644452 - Release DocGroup::mArena on the DocGroup's event target. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D78907
2020-06-09 14:45:11 +00:00
Tom Tung 56faa0648b Bug 1601594 - P1 - Using Origin as the key for DocGroup; r=farre,nika
Differential Revision: https://phabricator.services.mozilla.com/D70347
2020-05-25 12:51:29 +00:00
Simon Giesecke ee110dab9d Bug 1628692 - Prepare dom/base for making FallibleTArray uncopyable. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D72625
2020-04-29 08:42:37 +00:00
Jean-Yves Avenard c8ecfee330 Bug 1630802 - P6. Always return AbstractThread::MainThread for AbstractMainThreadFor. r=bholley
This mechanism is currently unused (see bug 1624819), we can re-assess the issue once it becomes needed.

Differential Revision: https://phabricator.services.mozilla.com/D71491
2020-04-20 19:18:34 +00:00
Andreas Farre d59155326a Bug 1628120 - Make sure to dispatch to correct event target. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D71167
2020-04-16 14:14:43 +00:00
Andrew McCreight 6b363af583 Bug 1629668 - Remove DocGroup::ClearEventTarget(). r=farre
Differential Revision: https://phabricator.services.mozilla.com/D70733
2020-04-14 08:30:13 +00:00
Andreas Farre 9509fc894a Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas
TabGroup never really made any difference in which thread something go
dispatched to. This was the intended use, but development of TabGroups
with abstract main threads never made it that far. The good thing is
that thish makes it safe to also remove to the SystemGroup and instead
switch all SystemGroup dispatches to dispatches to main thread.

Timers for setTimeout and workers were the sole users of wrapped and
throttled event targets, that those throttled queues have been moved
to the BrowsingContextGroup and are now accessed explicitly.

The SchedulerEventTarget has been removed, since there are no longer a
separate event target for every TaskCategory. Instead a
LabellingEventTarget has been added to DocGroup to handle the case
where an event is dispatched do DocGroup or when an AbstractThread is
created using a DocGroup. This means that we'll actually label more
events correctly with the DocGroup that they belong to.

DocGroups have also been moved to BrowsingContextGroup.

Depends on D67636

Differential Revision: https://phabricator.services.mozilla.com/D65936
2020-04-07 15:17:47 +00:00
Bas Schouten 55dc9e2acd Bug 1563335 - Part 1: Implement mechanism to throttle JS execution. r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D59321
2020-03-26 00:36:24 +00:00
Sean Feng c4047b6160 Bug 1377999 - Add the capability to do DOM node Arena allocation r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57698
2020-03-17 14:52:37 +00:00