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
Перейти к файлу
stransky e9207013f4 Bug 1722450 [Wayland] Pause compositor when screen scale changes and content is not updated yet, r=sotaro
We need to track window compositor state in various cases, when compositor is paused after window creation,
when compositor is paused for hidden window (EGLSurface is missing) and paused compositor when layout is not updated yet
and drawing will lead to incorrect / obsoleted window content.

In this patch we track compositor state by WindowCompositorState atomic enum (because it can be accessed from Compositor thread)
and two private methods (PauseCompositorHiddenWindow and ResumeCompositorHiddenWindow) and two public ones (PauseCompositor() and ResumeCompositor).

Private interface is used by nsWindow when EGLSurface is missing so we can't render to window - it's initial compositor pause and
pause when window is hidden.

Public interface is used by nsWindow and WebRender compositor to disable/enable rendering when window content is updated.
When compositor is disabled by public interface it will be enabled automatically after a timeout (1s) or when content layout is updated.

Changes in the patch:

- Implement GtkCompositorWidget::RemoteLayoutSizeUpdated() to notify GtkCompositorWidget widget about layout size update in content process.
- Track nsWindow compositor state by WindowCompositorState
- Implement nsWindow::PauseCompositorHiddenWindow() and ResumeCompositorHiddenWindow() to handle internal nsWindow states.
- Implement nsWindow::PauseCompositor() and nsWindow::ResumeCompositor() to allow compositor pause/resume during content layout updates.
- Use timeout to resume compositor paused by public interface as a fallback when content is not updated or it takes too long.

Differential Revision: https://phabricator.services.mozilla.com/D121650
2021-08-11 07:48:53 +00:00
.cargo Backed out changeset 634412ce2943 (bug 1724141) for causing failures at Mutex_posix.cpp. CLOSED TREE 2021-08-11 01:04:49 +03:00
.vscode
accessible Backed out changeset b70a28c9a533 (bug 1723563) for causing failures on browser_accessibility_indicator.js. CLOSED TREE 2021-08-10 22:25:00 +03:00
browser Bug 1721525 - Replace Cu.reportError with log warnings for Contile r=mythmon 2021-08-10 20:07:24 +00:00
build Bug 1724374 - Handle the macos SDK through the same code paths as sysroots. r=firefox-build-system-reviewers,andi 2021-08-11 07:47:14 +00:00
caps Bug 1724206 - Use WebExtensionPolicy webidl definition for addonPolicy property on nsIPrincipal. r=Gijs 2021-08-05 18:16:17 +00:00
chrome Bug 1695162 - Use range-based for instead of custom hashtable iterators. r=xpcom-reviewers,kmag 2021-03-17 15:49:46 +00:00
config Bug 1724606 - Replace uses of MACOSX_DEPLOYMENT_TARGET env variable with -mmacosx-version-min flag. r=firefox-build-system-reviewers,andi 2021-08-11 07:40:57 +00:00
devtools Bug 1723573 - Migrate mochitest-devtools-chrome from AWS to Azure r=jmaher 2021-08-10 14:49:46 +00:00
docs Bug 1722456 - [devtools] Update documentation to find Devtools reviewers r=Honza 2021-08-02 14:14:22 +00:00
docshell Bug 1724905 - Remove native only updateURLAndHistory in nsIDocShell; r=smaug 2021-08-10 22:15:09 +00:00
dom Bug 1717078 - Enable av1 pref for color_quads tests. r=gfx-reviewers,jrmuizel 2021-08-11 07:46:53 +00:00
editor Bug 1723895 - Make `WhiteSpaceVisibilityKeeper::ReplaceText()` call `GetInclusiveNextNBSPPointIfNeedToReplaceWithASCIIWhiteSpace` with end of the replacing range instead of start of it r=m_kato 2021-08-10 23:41:19 +00:00
extensions Bug 1719110 - Don't use sync IPC to show suggestion by spellchecker. r=Gijs 2021-08-10 03:55:25 +00:00
gfx Bug 1722450 [Wayland] Pause compositor when screen scale changes and content is not updated yet, r=sotaro 2021-08-11 07:48:53 +00:00
gradle/wrapper
hal Bug 1720688 - Support extended attribute syntax in protocol declarations, r=mccr8 2021-07-22 02:24:43 +00:00
image Bug 1724727 - Make SVG image blob recordings use visibility rects. r=jrmuizel 2021-08-09 20:39:31 +00:00
intl Bug 1719550 - Remove nsCollation; r=platform-i18n-reviewers,nordzilla 2021-08-10 16:01:19 +00:00
ipc Bug 1723934 - Remove old and useless crash annotations r=KrisWright 2021-08-09 20:08:17 +00:00
js Bug 1723124 - Part 2: Add JS shell testing function for promise jobs. r=jandem 2021-08-10 16:04:22 +00:00
layout Bug 1724808. Take into account ancestor documents in other processes' resolution when pre-decoding images. r=hiro 2021-08-11 07:18:09 +00:00
media Bug 1723247 - Update mp4parse-rust to 5326af6 r=kinetik 2021-08-03 23:23:42 +00:00
memory Bug 1720342: Do not run logalloc tests for the CodeQL build r=glandium 2021-07-23 17:00:46 +00:00
mfbt Bug 1341265 - Part 11: Optimise Set.prototype.has for objects in CacheIR. r=iain 2021-08-10 09:55:22 +00:00
mobile Bug 1599979 - Enable LSNG on Release; r=dom-storage-reviewers,jari,jstutte 2021-08-10 14:53:34 +00:00
modules Backed out changeset 4f793a75cd93 (bug 1724072) for geckoview failures . CLOSED TREE 2021-08-10 19:19:35 +03:00
mozglue Bug 1721569 - Use std::this_thread::get_id() on other platforms - r=florian 2021-08-11 03:27:52 +00:00
netwerk Bug 1724871 - P2: Update ODOH to version 1, r=necko-reviewers,valentin 2021-08-10 19:50:05 +00:00
nsprpub Bug 1715584 - Update to NSPR_4_32_RTM (no code change). r=bbeurdouche UPGRADE_NSPR_RELEASE DONTBUILD 2021-07-01 09:07:04 +00:00
other-licenses Bug 1710751: Create LINKS_TO relation to track anchors and their corresponding elements r=eeejay 2021-05-26 21:31:42 +00:00
parser Bug 1718184 - pt 1. IdleTaskRunner now uses TimeDuration r=nika 2021-07-13 01:42:32 +00:00
python Bug 1724374 - Handle the macos SDK through the same code paths as sysroots. r=firefox-build-system-reviewers,andi 2021-08-11 07:47:14 +00:00
remote Bug 1713442 - [remote] Rename all messagehandler test modules to follow the correct naming pattern r=webdriver-reviewers,whimboo 2021-08-10 21:34:23 +00:00
security Bug 1723753 - Remove XRE_USER_SYS_EXTENSION_DEV_DIR r=handyman,robwu,haik,gcp 2021-08-10 15:54:02 +00:00
services Bug 1654693 - Make sure Remote Settings doesn't use HTTP3 r=mixedpuppy,jwhitlock 2021-08-10 14:54:04 +00:00
servo Bug 1706080 - [css-fonts] Implement 'font-synthesis: small-caps'. r=jfkthame 2021-08-09 21:41:34 +00:00
startupcache
storage Bug 1719550 - Use Intl.Collator in test_locale_collation.js; r=platform-i18n-reviewers,nordzilla 2021-08-10 16:01:18 +00:00
taskcluster Bug 1724969 - Fix run-task when not running_as_root r=releng-reviewers,jmaher 2021-08-10 20:54:58 +00:00
testing Bug 1611303 - Always assume a flex item needs a block-axis resize in final reflow. r=dholbert 2021-08-10 21:43:14 +00:00
third_party Backed out changeset 634412ce2943 (bug 1724141) for causing failures at Mutex_posix.cpp. CLOSED TREE 2021-08-11 01:04:49 +03:00
toolkit Bug 1724679 [Linux] Check env variables for '1' to enable them, r=jhorak 2021-08-11 07:28:57 +00:00
tools Bug 1721569 - Use std::this_thread::get_id() on other platforms - r=florian 2021-08-11 03:27:52 +00:00
uriloader Bug 1724296 - Remove many skip-if(verify) test annotations (xpcshell); r=jmaher,necko-reviewers 2021-08-06 13:25:50 +00:00
view Bug 1722258 - Convert more LayerManager usage to use WindowRenderer. r=miko 2021-08-05 06:48:34 +00:00
widget Bug 1722450 [Wayland] Pause compositor when screen scale changes and content is not updated yet, r=sotaro 2021-08-11 07:48:53 +00:00
xpcom Bug 1723753 - Remove XRE_USER_SYS_EXTENSION_DEV_DIR r=handyman,robwu,haik,gcp 2021-08-10 15:54:02 +00:00
xpfe/appshell Bug 1613705 - [localization] part9: Update DOMLocalization to match Localization constructor. r=nika,emilio 2021-08-03 16:25:13 +00:00
.arcconfig
.babel-eslint.rc.js
.clang-format
.clang-format-ignore Bug 1719491 - revert clang-format of tools/profiler/public/GeckoTraceEvent.h. r=ng 2021-07-07 15:57:17 +00:00
.cron.yml Bug 1722708 - Adjust time for l10n-cross-channel to run closer to m-c merges, r=aki 2021-07-28 17:44:55 +00:00
.eslintignore Bug 1721109 - Move ProfilerGetSymbols code out of toolkit/components/extensions and into devtools directories. r=canaltinova 2021-07-29 20:28:44 +00:00
.eslintrc.js Bug 1716642 - Replaced calls to GlobalManager.extensionMap.get() with WebExtensionPolicy.getByID(). r=Standard8,kmag,robwu 2021-06-24 15:06:17 +00:00
.flake8 Bug 1714641: Remove usages of vendored "wptserve_py2" library r=jgraham,ahal 2021-06-09 15:48:51 +00:00
.git-blame-ignore-revs
.gitattributes
.gitignore
.hg-annotate-ignore-revs
.hg-format-source
.hgignore
.hgtags No bug - tagging 82f33bb4e9dbcb837a484109a607d28eac7837dd with FIREFOX_NIGHTLY_92_END a=release DONTBUILD CLOSED TREE 2021-08-09 16:20:38 +00:00
.lando.ini Bug 1714470: add `.lando.ini` file r=zeid DONTBUILD 2021-06-08 12:52:25 +00:00
.lldbinit
.mailmap
.prettierignore
.prettierrc
.taskcluster.yml Bug 1721729 - Increase decision task timeout to 60 minutes, r?#taskgraph-reviewers! CLOSED TREE 2021-07-22 17:27:36 +00:00
.trackerignore
.yamllint
.ycm_extra_conf.py
AUTHORS
CLOBBER Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2021-07-12 12:48:42 +00:00
Cargo.lock Backed out changeset 634412ce2943 (bug 1724141) for causing failures at Mutex_posix.cpp. CLOSED TREE 2021-08-11 01:04:49 +03:00
Cargo.toml Bug 1670261 - Upgrade Glean, include glean-ffi and re-export its symbols. r=chutten 2021-08-10 07:49:07 +00:00
GNUmakefile
LICENSE
Makefile.in
README.txt
aclocal.m4
build.gradle Bug 1670261 - Ensure the Glean versions in the project match. r=agi,chutten 2021-08-10 07:49:08 +00:00
client.mk
client.py No bug - fix client.py update_nss on python3. r=firefox-build-system-reviewers,mhentges,bbeurdouche 2021-05-05 16:59:09 +00:00
configure.in
configure.py Bug 1720591: Remove unused patch_main() for Python < 3.4 on Windows r=ahal 2021-07-16 16:34:42 +00:00
gradle.properties
gradlew
gradlew.bat
mach Bug 1713173 - Add `--profile-command` flag for profiling `mach` commands. r=firefox-build-system-reviewers,mhentges 2021-06-02 21:28:56 +00:00
mach.ps1
moz.build Bug 1705403 - Replace FOG's Glean autodocs with link to Glean Dictionary r=janerik DONTBUILD 2021-05-10 13:33:09 +00:00
moz.configure Bug 1725092 - Change how --enable/disable-gtest-in-build is handled. r=firefox-build-system-reviewers,andi 2021-08-11 05:45:06 +00:00
mozilla-config.h.in
old-configure.in Bug 1723389 - Bump the required version of system pixman. r=firefox-build-system-reviewers,andi 2021-08-03 04:41:02 +00:00
package-lock.json Bug 1702858 - Update node modules for latest versions, remove obsolete. r=mossop 2021-05-19 16:53:53 +00:00
package.json Bug 1702858 - Update node modules for latest versions, remove obsolete. r=mossop 2021-05-19 16:53:53 +00:00
settings.gradle
substitute-local-geckoview.gradle Bug 1724782 - Allow substituting GeckoView lite and omni builds. r=nalexander 2021-08-10 20:24:33 +00:00
test.mozbuild

README.txt

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.