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
Jamie Nicol 6918615b37 Bug 1756700 - Delay compositor creation on Android to allow time for GPU process to launch. r=gfx-reviewers,geckoview-reviewers,aosmond,calu
We noticed a cold_view_nav_start regression on Fenix from enabling the
GPU process, and profiles showed time spent synchronously waiting for
the GPU process to launch. This occured because the compositor was
being created in nsWindow::Create, and as it requires the GPU process
to be running it had to block until launch completed. The process is
launched when the gfxPlatform is first initialized, but that was only
occuring immediately prior to creating the compositor, which did not
give it enough time to complete asynchronously.

This patch makes it so that we initialize the gfxPlatform slightly
earlier, and importantly delay creating the compositor until it is
actually required. This gives the process enough time to launch
asynchronously meaning we do not have to block.

We started deliberately creating the compositor early on Android
because of bug 1453501, to avoid a race condition where the compositor
didn't exist when RemoteLayerTreeOwner::Initialize was called, causing
us to use a basic layer manager. However, since bug 1741156 landed we
now create the compositor on-demand, meaning this is no longer a
possibility.

Delaying compositor creation can, however, uncover another race
condition. If the UICompositorControllerChild is opened on the UI
thread before the main thread is able to set its pointer to the
widget, then the java GeckoSession will never be notified that the
compositor has been opened, and composition will never be
resumed. This patch fixes this issue by setting the
UiCompositorControllerChild's widget pointer in its constructor rather
than immediately afterwards.

Differential Revision: https://phabricator.services.mozilla.com/D139842
2022-03-02 16:56:28 +00:00
.cargo Bug 1757473 - Update AudioIPC macOS branch to 8e3c4c1b. r=cubeb-reviewers,chunmin 2022-03-01 04:56:47 +00:00
.vscode
accessible Bug 1757257: Don't assert for a null frame in TextAttrsMgr::GetAttributes. r=morgan 2022-03-01 21:16:43 +00:00
browser Bug 1755519 - Add language switching to about:welcome; r=pdahiya,platform-i18n-reviewers,flod,dminor 2022-03-02 15:52:43 +00:00
build Bug 1751948 - Part 6: Add basic support for running IPDL unit tests during gtest, r=ipc-reviewers,andi,handyman 2022-02-28 21:01:49 +00:00
caps Bug 1755947 - Simplify nsIPrincipal.isSameOrigin(). r=bholley 2022-02-17 18:11:58 +00:00
chrome
config Bug 1746350 - [loong64] Add LoongArch64 backend support. r=lth,jandem 2022-02-25 14:55:26 +00:00
devtools Bug 1757744 - [devtools] Show custom toolbox title for XPCShell debugging r=nchevobbe 2022-03-02 16:50:13 +00:00
docs Bug 1756534 - Update builders to rustc 1.59. r=sylvestre 2022-02-25 08:27:04 +00:00
docshell Backed out 2 changesets (bug 1741671) for causing wpt failures on back-forward-cache/events.html CLOSED TREE 2022-03-01 14:44:53 -05:00
dom Bug 1757576 - Fix non-unified-build bustage in dom/media/gmp/GMPParent.cpp; r=media-playback-reviewers,bryce 2022-03-02 14:18:37 +00:00
editor Bug 1757492 - part 2: Clean up HTMLEditor::DoSplitNode r=m_kato 2022-03-02 11:55:06 +00:00
extensions Bug 1736844 - Add interrupt flag to storage service methods opening database; r=dom-storage-reviewers,mak,janv 2022-02-17 06:22:27 +00:00
gfx Bug 1756700 - Delay compositor creation on Android to allow time for GPU process to launch. r=gfx-reviewers,geckoview-reviewers,aosmond,calu 2022-03-02 16:56:28 +00:00
gradle/wrapper
hal Bug 1753574 - hal::LockOrientation can return error status. r=smaug,geckoview-reviewers,agi,calu 2022-03-02 03:48:14 +00:00
image Bug 1756587. Fix a couple of aInnerWindowId parameters to be uint64_t in ImageFactory.cpp. r=aosmond 2022-02-26 07:22:44 +00:00
intl Bug 1755519 - Add JSM for langpack matching logic; r=platform-i18n-reviewers,nordzilla 2022-03-02 15:52:43 +00:00
ipc Bug 1755979: Pass accessibilty resource ID down from the parent. r=Jamie,nika 2022-03-02 11:06:33 +00:00
js Bug 1757273 - wasm: Fix more uncovered bustage. r=lth 2022-03-01 17:18:20 +00:00
layout Bug 1756750 - Reftest for SVG-in-OT font with embedded bitmaps. r=emilio 2022-03-02 15:58:14 +00:00
media Bug 1757483 - Update libjxl and highway r=tnikkel 2022-03-01 12:17:02 +00:00
memory Bug 1756570 - [loong64] Add basic build support for LoongArch64 port. r=glandium 2022-02-25 03:42:34 +00:00
mfbt Bug 1756570 - [loong64] Add basic build support for LoongArch64 port. r=glandium 2022-02-25 03:42:34 +00:00
mobile Bug 1753574 - Don't resolve lock promise until LockDeviceOrientation is finished. r=smaug,geckoview-reviewers,agi 2022-03-02 03:48:14 +00:00
modules Bug 1757647 - Implement Windows 11 overlay scrollbars. r=cmartin 2022-03-02 12:02:00 +00:00
mozglue Bug 1757100 - Move minimal platform-dependent part of RWLock to mozglue/misc/PlatformRWLock.h&cpp - r=glandium,xpcom-reviewers 2022-02-27 23:32:55 +00:00
netwerk Backed out changeset a5abe44e15f4 (bug 1748693) for causing /cookies/ failures. CLOSED TREE 2022-03-02 18:21:49 +02:00
nsprpub
other-licenses
parser Bug 1754301 - remove pref security.csp.enable r=ckerschb,mccr8 2022-02-15 16:03:27 +00:00
python Bug 1755562: Document Mach dependency management r=ahal 2022-03-02 15:51:30 +00:00
remote Bug 1757636 - Do case transformations for Element Send Keys, r=webdriver-reviewers,whimboo 2022-03-02 10:50:59 +00:00
security Bug 1129492 - Remove X11 access from the Linux content process sandbox. r=gcp,jgilbert 2022-03-01 20:36:18 +00:00
services No Bug, mozilla-central repo-update HSTS HPKP remote-settings tld-suffixes - a=repo-update r=dmeehan 2022-02-28 13:13:10 +00:00
servo Bug 1754547 - Generalize moz-os-version into moz-platform. r=dao,preferences-reviewers,Gijs 2022-02-10 15:50:31 +00:00
startupcache Backed out changeset f2359b80aaa2 (bug 1746447) for causing assertion failures in StartupCache. CLOSED TREE 2022-02-25 20:12:01 +02:00
storage Bug 1736844 - Add unit test for synchronous connection interrupt. r=dom-storage-reviewers,janv 2022-02-17 12:06:35 +00:00
taskcluster Bug 1754496 - [taskgraph] Use 'util/time.py' from vendored taskgraph, r=taskgraph-reviewers,aki 2022-03-02 16:43:08 +00:00
testing Bug 1757424 - [devtools] Log an object with a lot of properties in DAMP bulklog test. r=ochameau,perftest-reviewers,davehunt. 2022-03-02 16:17:52 +00:00
third_party Bug 1757483 - Update libjxl and highway r=tnikkel 2022-03-01 12:17:02 +00:00
toolkit Bug 1756495 - Ensure script registration is complete when a new process is spawned during the registration. r=robwu 2022-03-02 16:15:41 +00:00
tools Bug 1668867 - nsProfiler::WaitOnePeriodicSampling also waits for children to run their sampling loop - r=canaltinova 2022-03-01 06:56:03 +00:00
uriloader Bug 749872 - remove unused/not-run test_handlerApps.xhtml, r=mtigley 2022-02-25 22:18:19 +00:00
view
widget Bug 1756700 - Delay compositor creation on Android to allow time for GPU process to launch. r=gfx-reviewers,geckoview-reviewers,aosmond,calu 2022-03-02 16:56:28 +00:00
xpcom Bug 1690326 - Map Windows error 0x510 ERROR_CONTENT_BLOCKED to NS_ERROR_FILE_ACCESS_DENIED. r=xpcom-reviewers,nika 2022-03-02 14:10:19 +00:00
xpfe/appshell Bug 1743486: More Cut over for resistinfingerprinting API: UseStandinsForNativeColors and Appwindow r=tjr 2022-03-01 19:11:54 +00:00
.arcconfig
.babel-eslint.rc.js
.clang-format
.clang-format-ignore
.cron.yml
.eslintignore Bug 1755907 - [devtools] Enable eslint on debugger tests (except their test pages). r=nchevobbe 2022-02-23 18:38:26 +00:00
.eslintrc.js Bug 1745810 - remove use of ChromeUtils.import(..., null) from CustomizableUI tests, r=Standard8 2022-02-25 22:18:32 +00:00
.flake8
.git-blame-ignore-revs
.gitattributes
.gitignore Bug 1751511 - Save to Pocket panels, don't minify css build. r=gvn 2022-01-25 16:11:07 +00:00
.hg-annotate-ignore-revs
.hg-format-source
.hgignore Bug 1751511 - Save to Pocket panels, don't minify css build. r=gvn 2022-01-25 16:11:07 +00:00
.hgtags No bug - tagging c0ed4893120fe99dabf73c109dc77bdf109ae628 with FIREFOX_NIGHTLY_98_END a=release DONTBUILD CLOSED TREE 2022-02-07 15:33:01 +00:00
.lando.ini
.lldbinit
.mailmap
.prettierignore
.prettierrc
.taskcluster.yml
.trackerignore
.yamllint
.ycm_extra_conf.py
aclocal.m4
AUTHORS
build.gradle Bug 1754474 - Update to Glean 44.0.0 and glean_parser 5.0.1. r=janerik 2022-02-15 13:35:07 +00:00
Cargo.lock Bug 1757449 - Make WR NativeFontHandle use String instead of CGFont on macOS. r=jrmuizel 2022-03-02 10:11:05 +00:00
Cargo.toml Bug 1755956 - Add initial boilerplate for origin trials. r=smaug,hsivonen 2022-02-18 13:57:30 +00:00
client.mk
client.py
CLOBBER
configure.in
configure.py
GNUmakefile
gradle.properties
gradlew
gradlew.bat
LICENSE
mach Bug 1752927: Avoid distutils deprecation warning on every Mach call r=ahal 2022-02-04 21:49:15 +00:00
mach.cmd
mach.ps1
Makefile.in Bug 1751515 - Part 3: Do not install artifact test archive when --disable-tests. r=firefox-build-system-reviewers,glandium 2022-01-26 19:08:57 +00:00
moz.build Bug 1753127 - NSPR doc: move the doc into docs/nspr UPGRADE_NSS_RELEASE r=kaie,bbeurdouche 2022-02-02 17:19:51 +00:00
moz.configure Bug 1596656 - Move STRIP to python configure. r=firefox-build-system-reviewers,andi 2022-01-28 03:00:13 +00:00
mozilla-config.h.in
old-configure.in Bug 1752064 - Move the remainder of AS to python configure. r=firefox-build-system-reviewers,andi 2022-02-03 00:06:29 +00:00
package-lock.json Bug 1753652 - Update various node_modules to their latest versions. r=Gijs 2022-02-07 17:28:47 +00:00
package.json Bug 1753652 - Update various node_modules to their latest versions. r=Gijs 2022-02-07 17:28:47 +00:00
README.txt
settings.gradle Bug 1753914 - ./mach environment is failed in gradle task on Windows. r=nalexander 2022-02-08 06:19:41 +00:00
substitute-local-geckoview.gradle Bug 1752381 - only parse stdout in substitute-local-geckoview. r=nalexander 2022-02-02 18:00:46 +00:00
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.