Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Go to file
Nika Layzell d6e6375a87 Bug 1728331 - Part 4: Make ContentParent KeepAlives explicit with RAII references, r=smaug,dom-worker-reviewers,asuth
This is a fairly significant patch, however it would be difficult to break it
down into smaller patches:

1) The various mechanisms used to manage ContentParent lifecycles have been
   merged together into a common "KeepAlive" system. A process will
   begin shutdown when its keepalive count reaches 0. (though it will
   still wait for all BrowserParents to also be dead before sending the
   actual shutdown message as before).

   This replaces a number of bespoke systems for tracking BrowserParent
   instances in different lifecycle states, remote workers, ongoing
   process switches, and preallocated processes.

2) KeepAlives are now managed automatically by a UniquePtr variant
   (Unique[Threadsafe]ContentParentKeepAlive). This makes the hand-off
   over KeepAlive lifecycles explicit, even for workers.

3) All KeepAlives are now keyed by a BrowserId, which will be 0 for keepalives
   not associated with a specific tab. This allows the new process
   selection logic to count all tabs other than the one being navigated
   when deciding which process to use.

4) The process switching logic now tracks it's KeepAlive with a BrowserId,
   meaning that ongoing process switches are considered when performing
   process selection, even if the BrowserParent hasn't been created yet.

Differential Revision: https://phabricator.services.mozilla.com/D213338
2024-06-24 23:19:28 +00:00
.cargo Bug 1880183 - Vendor the latest Application Services. r=bdk 2024-06-20 23:01:41 +00:00
.github/workflows
.vscode
accessible Bug 1903713: Avoid static nsTHashSet constructor via instance method, r=Jamie 2024-06-24 22:52:21 +00:00
browser Bug 1728331 - Part 4: Make ContentParent KeepAlives explicit with RAII references, r=smaug,dom-worker-reviewers,asuth 2024-06-24 23:19:28 +00:00
build Bug 1903369 - Move _COMPILATION_CFLAGS assignment at the end of the file r=glandium 2024-06-24 16:18:31 +00:00
caps Bug 1904004 - Use OriginAttributes::IsPrivateBrowsing instead of open coding PBM checks. r=timhuang,cookie-reviewers,anti-tracking-reviewers,profiler-reviewers,necko-reviewers,kershaw,dom-storage-reviewers,janv,canaltinova,dom-worker-reviewers,asuth 2024-06-24 11:06:18 +00:00
chrome
config Bug 1899177 - Part 5: Support simple calendar methods calling into ICU4X. r=spidermonkey-reviewers,dminor 2024-06-20 17:42:15 +00:00
devtools Backed out changeset 6a92033df002 (bug 1900362) for causing multiple failures. CLOSED TREE 2024-06-24 19:31:51 +03:00
docs Bug 1902213 - Add Pernosco documentation r=gcp 2024-06-24 20:31:23 +00:00
docshell Bug 1728331 - Part 4: Make ContentParent KeepAlives explicit with RAII references, r=smaug,dom-worker-reviewers,asuth 2024-06-24 23:19:28 +00:00
dom Bug 1728331 - Part 4: Make ContentParent KeepAlives explicit with RAII references, r=smaug,dom-worker-reviewers,asuth 2024-06-24 23:19:28 +00:00
editor Bug 1897865 - Make TextEditor stop dispatching beforeinput/input events during committing composition caused by setting its value r=m_kato 2024-06-18 00:30:49 +00:00
extensions Bug 1658094 - Add new cleaner for "cookie" permissions. r=pbz 2024-06-24 15:14:45 +00:00
gfx Bug 1902313 - Block pull-to-refresh on pages with overflow-y:hidden. r=hiro,geckoview-reviewers,ohall 2024-06-24 21:14:40 +00:00
gradle/wrapper Backed out 2 changesets (bug 1900345) for preventing Fenix builds with Android Studio in the repository root. a=backout 2024-06-12 18:05:25 +02:00
hal
image Bug 1901076 - Part 2. Expose frame count variant of metadata decoders. r=tnikkel 2024-06-24 22:44:30 +00:00
intl Bug 1903993 - Use the SPDX license format for mozilla-central-managed crates r=emilio 2024-06-24 10:23:39 +00:00
ipc Bug 1901851 - Part 3: Make PRemoteWorkerService a toplevel actor which manages PRemoteWorker, r=dom-worker-reviewers,asuth 2024-06-24 23:19:26 +00:00
js Bug 1894231 - P7 Remove mozJSModuleLoader::ScriptReaderRunnable::mWorkerPrivate. r=dom-worker-reviewers,asuth 2024-06-24 22:20:53 +00:00
layout Bug 1901851 - Part 3: Make PRemoteWorkerService a toplevel actor which manages PRemoteWorker, r=dom-worker-reviewers,asuth 2024-06-24 23:19:26 +00:00
media Bug 1904318 - Update libjxl by release instead of weeks r=tnikkel 2024-06-24 14:00:23 +00:00
memory Backed out 4 changesets (bug 1875768) for causing cppunittest-1proc failures CLOSED TREE 2024-06-07 08:18:50 +03:00
mfbt Bug 1899160 part 1 - Add support for allocating JS strings with a refcounted StringBuffer. r=sfink 2024-06-24 07:41:48 +00:00
mobile Bug 1893784 - Reduce tab swipe to delete animation duration from 300ms (default) to 230ms r=android-reviewers,calu 2024-06-24 22:49:34 +00:00
modules Bug 1728331 - Part 2: Remove JS process selectors, r=smaug 2024-06-24 23:19:28 +00:00
mozglue Bug 1894073 - Suppress TSan false positive during an edge case in process launch. r=decoder,ipc-reviewers,nika 2024-06-18 13:47:52 +00:00
netwerk Bug 697151 - distinguish between SYNC and ASYNC XMLHttpRequests in nsIContentPolicy types, and have ChannelEventQueue::MaybeSuspendIfEventsAreSuppressed only suspend async ones; r=nika,necko-reviewers,peterv,dom-storage-reviewers,asuth,kershaw 2024-06-24 18:45:18 +00:00
nsprpub
other-licenses Bug 1896868: update InetBgDL.dll nsis plugin with a statically linked version r=nalexander,jcristau 2024-05-27 14:19:48 +00:00
parser Bug 1901414 - Skip 1747514.html in tsan too since it's too slow. 2024-06-14 13:53:23 +02:00
python Bug 1500188 - Don't modify working tree, index or HEAD when pushing to try with git. r=releng-reviewers,sheehan,ahal 2024-06-24 23:07:29 +00:00
remote Bug 1839858 - [remote] Remove no longer supported vendor capability "moz:useNonSpecCompliantPointerOrigin". r=webdriver-reviewers,jdescottes 2024-06-24 10:30:10 +00:00
security Backed out changeset 59eba805400c (bug 1893921) the fix didn't address the problem on macOS 14.5 CLOSED TREE 2024-06-25 02:15:36 +03:00
services No Bug, mozilla-central repo-update HSTS HPKP remote-settings tld-suffixes - r=release-managers,pascalc 2024-06-24 11:37:45 +00:00
servo Bug 1595620 - Add support for -webkit-font-feature-settings as an alias of font-feature-settings. r=emilio 2024-06-24 21:11:11 +00:00
startupcache
storage Bug 1900093 - Add OPEN_NOT_EXCLUSIVE option for opening sqlite database. r=mak 2024-06-12 00:17:58 +00:00
supply-chain Bug 1902718 - Add a dependency to etagere 0.2.13. r=lsalzman,supply-chain-reviewers 2024-06-24 14:28:09 +00:00
taskcluster Bug 1903389 - increase nr of chunks on windows/debug for WebGPU CTS r=webgpu-reviewers,ErichDonGubler 2024-06-24 23:05:10 +00:00
testing Bug 1728331 - Part 2: Remove JS process selectors, r=smaug 2024-06-24 23:19:28 +00:00
third_party Bug 1902718 - Add a dependency to etagere 0.2.13. r=lsalzman,supply-chain-reviewers 2024-06-24 14:28:09 +00:00
toolkit Bug 1728331 - Part 4: Make ContentParent KeepAlives explicit with RAII references, r=smaug,dom-worker-reviewers,asuth 2024-06-24 23:19:28 +00:00
tools Bug 1500188 - Change the API to create a try commit. r=releng-reviewers,sheehan,ahal 2024-06-24 23:07:29 +00:00
uriloader Bug 1904004 - Use OriginAttributes::IsPrivateBrowsing instead of open coding PBM checks. r=timhuang,cookie-reviewers,anti-tracking-reviewers,profiler-reviewers,necko-reviewers,kershaw,dom-storage-reviewers,janv,canaltinova,dom-worker-reviewers,asuth 2024-06-24 11:06:18 +00:00
view Bug 1902325 - Remove zIndex concept from views. r=tnikkel,layout-reviewers 2024-06-18 14:56:11 +00:00
widget Bug 1903418 - Add xkb symbols to mozwayland. r=stransky 2024-06-24 23:06:28 +00:00
xpcom Bug 1728331 - Part 3: Remove unused EnsureContentProcess method from nsIXULRuntime, r=smaug 2024-06-24 23:19:28 +00:00
xpfe/appshell Bug 1902315 - Remove other widget z-level fiction. r=win-reviewers,rkraesig,geckoview-reviewers,spohl,m_kato 2024-06-19 07:47:36 +00:00
.arcconfig
.babel-eslint.rc.js
.clang-format
.clang-format-ignore
.cron.yml Bug 1686981 - optimize searchfox taskcluster cron jobs. r=taskgraph-reviewers,gbrown 2024-06-13 08:20:02 +00:00
.eslintignore Backed out 5 changesets (bug 1901534, bug 1891854, bug 1901520) for causing xpc failures @ test_BackupService_renderTemplate.js CLOSED TREE 2024-06-25 01:24:56 +03:00
.eslintrc-rollouts.js Bug 1899030 - Part 5: Remove miscellaneous unused asrouter code from newtab. r=mconley,omc-reviewers,frontend-codestyle-reviewers,pdahiya 2024-06-19 19:45:02 +00:00
.eslintrc-test-paths.js Bug 1900002 - Move tabbrowser tests into a browser/ folder. r=frontend-codestyle-reviewers,dwalker 2024-06-04 13:20:52 +00:00
.eslintrc.js Bug 1897898 - Separate out ESLint rule rollouts configurations to a separate module. r=frontend-codestyle-reviewers,Gijs 2024-05-21 13:38:01 +00:00
.git-blame-ignore-revs
.gitattributes
.gitignore
.hg-annotate-ignore-revs
.hg-format-source
.hgignore
.hgtags No bug - tagging af9948205327480d29bfcb960d5308ad4a2d0ce7 with FIREFOX_NIGHTLY_128_END a=release DONTBUILD CLOSED TREE 2024-06-10 16:25:48 +00:00
.lando.ini
.lldbinit
.mailmap
.prettierignore Bug 1897498 - Add a mechanism for exporting backup snapshots to a single file archive. r=Gijs,valentin,backup-reviewers,frontend-codestyle-reviewers,Standard8,kpatenio 2024-06-11 13:05:58 +00:00
.prettierrc.js
.stylelintignore Bug 1899373 - Update PDF.js to 24e12d515dce2f11b392410dd6e6e9926270ac65 r=pdfjs-reviewers,frontend-codestyle-reviewers,marco 2024-05-30 12:35:49 +00:00
.stylelintrc.js
.taskcluster.yml
.trackerignore
.yamllint
.ycm_extra_conf.py
aclocal.m4 Bug 1903070 - Remove unused mozprog.m4 and mozheader.m4 r=glandium 2024-06-19 09:00:55 +00:00
AUTHORS
build.gradle Bug 1896020 - Upgrade apilint gradle plugin to 0.5.3. r=geckoview-reviewers,calu 2024-06-11 03:07:38 +00:00
Cargo.lock Bug 1901539 - crashreporter: create an HTTP interface r=gsvelto 2024-06-24 20:04:06 +00:00
Cargo.toml Bug 1880183 - Vendor the latest Application Services. r=bdk 2024-06-20 23:01:41 +00:00
client.mk
client.py
CLOBBER Bug 1904318 - Update libjxl by release instead of weeks r=tnikkel 2024-06-24 14:00:23 +00:00
configure
configure.py
GNUmakefile
gradle.properties
gradlew Backed out 2 changesets (bug 1900345) for preventing Fenix builds with Android Studio in the repository root. a=backout 2024-06-12 18:05:25 +02:00
gradlew.bat
LICENSE
mach
mach.cmd
mach.ps1
Makefile.in
mots.yaml Bug 1901531 - Add :jeddai as Experiments peer r=emcminn,Gijs,zeid 2024-06-10 15:22:22 +00:00
moz.build Bug 1903972 - content-security docs r=ckerschb 2024-06-21 13:42:13 +00:00
moz.configure Bug 1903040 - Move Child Process Name for IPC checks from old-configure to moz.configure r=glandium 2024-06-24 07:36:55 +00:00
mozilla-config.h.in
old-configure.in Bug 1378595 - Remove redundant -fno-exceptions flag r=glandium 2024-06-24 16:18:30 +00:00
package-lock.json Bug 1898556 - Remove eslint-plugin-file-header, update various node modules. r=frontend-codestyle-reviewers,Gijs 2024-05-24 14:55:33 +00:00
package.json Bug 1898556 - Remove eslint-plugin-file-header, update various node modules. r=frontend-codestyle-reviewers,Gijs 2024-05-24 14:55:33 +00:00
pyproject.toml
README.txt
settings.gradle
substitute-local-geckoview.gradle
test.mozbuild

An explanation of the Firefox Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://firefox-source-docs.mozilla.org/contributing/directory_structure.html

For information on how to build Firefox from the source code and create the patch see:

    https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html

If you have a question about developing Firefox, and can't find the solution
on https://firefox-source-docs.mozilla.org/, you can try asking your question on Matrix at chat.mozilla.org in `Introduction` (https://chat.mozilla.org/#/room/#introduction:mozilla.org) channel.


Nightly development builds can be downloaded from:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://www.mozilla.org/firefox/channel/desktop/#nightly

Keep in mind that nightly builds, which are used by Firefox developers for
testing, may be buggy.