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
Перейти к файлу
Timothy Nikkel 227f22acef Bug 1651332. Use purely relative scroll offset updates for many scrollbar initiated scrolls. r=kats
This patch basically attempts to make clicking in the scrollbar track outside of the scrollthumb "work". Clicking in the scrollbar track usually does a page scroll via nsSliderFrame::PageScroll. This eventually ends up in ScrollFrameHelper::ScrollBy where we turn the request from a relative one ("scroll by a page") into an absolute one ("scroll to this position").

This page scroll is typically a smooth scroll and is currently done on the main thread/layout side. Once we start scrolling the visual viewport offset with the scrollbars we can no longer do this purely on the layout side, we at least need the help of the compositor side. I think the simplest way to do this is to hand the scroll request off to the compositor and have it handle the whole thing.

Now we need to consider the following situation: user clicks scrollbar track to page scroll, smooth scroll gets partway complete on the compositor, user clicks again on scrollbar track for a further page scroll. The main thread can't send an absolute scroll offset update request to the compositor at this point because it has outdated information (it needs a 'starting position' to add the page scroll offset amount) so it'll end up scrolling to the wrong place. It has to send a relative scroll offset update.

We already have a mechanism to send relative scroll offset updates. It is implemented by sending a base scroll offset and the desired scroll offset, and then on the compositor send the difference between those two is computed and then added to the scroll offset.

This patch creates a new mechanism (so called "pure relative") that just sends a relative offset update without any absolute scroll positions. The reason I did this is because the existing relative scroll offset update mechanism is not aware of visual viewport offsets, but rather only layout scroll position. For example, here

https://searchfox.org/mozilla-central/rev/8d55e18875b89cdf2a22a7cba60dc40999c18356/layout/generic/nsGfxScrollFrame.h#446

the value we use for the base scroll offset (mApzScrollPos) is set to the layout scroll position. It may be entirely reasonable to make this existing mechanism vv offset aware, but I wanted to implement something to get it working with a smaller chance of regressions to things that already exist and work. Ideally these two mechanims would be merged.

Differential Revision: https://phabricator.services.mozilla.com/D82688
2020-07-19 14:56:24 +00:00
.cargo Bug 1654312 - Support NullScriptThing. r=nbp 2020-07-22 12:08:59 +00:00
.vscode Bug 1646417 - Add `mrcrowl.hg` as a default plugin to `vscode` r=andi 2020-06-17 16:26:45 +00:00
accessible Bug 1654444 - Check text change element on webarea dispatched text events. r=morgan 2020-07-22 18:04:24 +00:00
browser Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy 2020-07-22 23:17:45 +00:00
build Bug 1654674 - Make revert-r362047-and-r362065.patch work with clang-12 r=froydnj 2020-07-22 23:34:43 +00:00
caps Bug 1607092 - Add new quote from Book of Mozilla for GeckoView r=geckoview-reviewers,Pike,agi 2020-07-07 02:22:07 +00:00
chrome Bug 1649221: Update ChromeUtils.generateQI callers to pass strings. r=mccr8,remote-protocol-reviewers,marionette-reviewers,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,preferences-reviewers,agi,whimboo,Bebe,twisniewski 2020-07-10 23:58:28 +00:00
config Bug 1653909 - Use the stub file for the icu data file dependencies. r=froydnj 2020-07-21 13:13:02 +00:00
devtools Backed out 2 changesets (bug 921504) for wpt failures on inert-retargeting-iframe.tentative.html . CLOSED TREE 2020-07-22 23:53:55 +03:00
docs no bug - doc - Import the 'Pocket Guide: Shipping Firefox' in tree r=RyanVM 2020-07-22 17:46:54 +00:00
docshell Bug 1653839 - Fix error 'mozilla/dom/RTCCertificateBinding.h' file not found on mingw builds. r=keeler 2020-07-22 16:22:55 +00:00
dom Bug 1654099 - Look to the correct frame when determining root element styles for "potentially scrollable" check. r=emilio 2020-07-23 00:59:16 +00:00
editor Bug 1653674 - Unskip passing fission tests, r=kmag 2020-07-21 15:42:48 +00:00
extensions Bug 1651165 - Rename idle service r=Gijs,geckoview-reviewers,snorp 2020-07-20 16:06:59 +00:00
gfx Bug 1651332. Use purely relative scroll offset updates for many scrollbar initiated scrolls. r=kats 2020-07-19 14:56:24 +00:00
gradle/wrapper
hal Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj 2020-07-01 08:29:29 +00:00
image Bug 1648064 - Switch DOM images to work like CSS images for the purposes of printing. r=tnikkel,smaug 2020-07-22 20:29:00 +00:00
intl Bug 1264836 - Automatically convert the little-endian ICU data file for big-endian builds. r=firefox-build-system-reviewers,rstewart 2020-07-17 22:25:57 +00:00
ipc Bug 1632687 - Part 3: Introduce an OS-dependent ChannelId type to reflect that Unix doesn't use channel IDs. r=mccr8 2020-07-22 19:04:48 +00:00
js Bug 1646378: Invalidate the root script in MaybeInvalidateWarp r=jandem 2020-07-22 21:57:45 +00:00
layout Bug 1651332. Use purely relative scroll offset updates for many scrollbar initiated scrolls. r=kats 2020-07-19 14:56:24 +00:00
media Bug 1654611 - remove unnecessary mWindow in RTCDTMFSender. r=smaug 2020-07-22 19:06:08 +00:00
memory Bug 1651079 - Add necessary LOCAL_INCLUDES for StackWalk.cpp in memory/replace/logalloc/replay. r=rstewart 2020-07-08 21:37:24 +00:00
mfbt Bug 1607940 - Stand up webgl.out-of-process:true path. r=handyman,nika,froydnj 2020-07-21 22:56:52 +00:00
mobile Bug 1607092 - Add new quote from Book of Mozilla for GeckoView r=geckoview-reviewers,Pike,agi 2020-07-07 02:22:07 +00:00
modules Bug 1651332. Create a pref to gate the new scrollbar code on. r=kats 2020-07-19 10:04:04 +00:00
mozglue Bug 1648606: Suppress flag-checking race in libusrsctp's sctp_close. r=decoder 2020-07-22 15:21:41 +00:00
netwerk Bug 1605895, r=kershaw,necko-reviewers 2020-07-21 13:47:47 +00:00
nsprpub Bug 1652330 - NSPR_4_27_BETA1 to pick up a backwards compatible macOS 11 system library fix. r=kjacobs UPGRADE_NSPR_RELEASE 2020-07-21 18:22:05 +00:00
other-licenses Bug 1634535 - Move ply to third_party/python r=glandium 2020-05-05 16:02:02 +00:00
parser Bug 1366973: Rename security flags to not contain DATA anymore r=geckoview-reviewers,ckerschb,snorp 2020-07-15 11:20:45 +00:00
python Bug 1654607: Upgrades glean in bootstrap r=firefox-build-system-reviewers,rstewart 2020-07-22 19:48:23 +00:00
remote Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy 2020-07-22 23:17:45 +00:00
security Backed out changeset afc05ca167e7 (bug 1652463) for causing mochitest media spi failures. 2020-07-22 18:37:47 +03:00
services Bug 1635656 - add support for storing and fetching FxA ecosystem telemetry ids. r=rfkelly,markh 2020-07-21 23:05:04 +00:00
servo Backed out 2 changesets (bug 921504) for wpt failures on inert-retargeting-iframe.tentative.html . CLOSED TREE 2020-07-22 23:53:55 +03:00
startupcache Bug 1651941 - Free unreferenced child StartupCache entries on send r=froydnj 2020-07-22 20:31:31 +00:00
storage Bug 1652546 - Disable mozStorage exclusive lock fallback for file URIs. r=asuth 2020-07-16 01:56:11 +00:00
taskcluster Bug 1654673 - Build dump_syms with linux64-clang-9 r=froydnj 2020-07-23 00:02:57 +00:00
testing Bug 1654099 - Look to the correct frame when determining root element styles for "potentially scrollable" check. r=emilio 2020-07-23 00:59:16 +00:00
third_party Bug 1654312 - Support NullScriptThing. r=nbp 2020-07-22 12:08:59 +00:00
toolkit Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy 2020-07-22 23:17:45 +00:00
tools Bug 1654535 - [tryselect] Update |mach try --help| text with corrected default selector, DONTBUILD, r=smacleod 2020-07-22 20:45:57 +00:00
uriloader Bug 1653541 - always allow webextensions to navigate to external protocol URIs, r=robwu 2020-07-20 21:48:21 +00:00
view
widget Bug 1650748 - Prevent DMABUF usage with GLX. r=nical 2020-07-22 18:58:11 +00:00
xpcom Backed out 2 changesets (bug 921504) for wpt failures on inert-retargeting-iframe.tentative.html . CLOSED TREE 2020-07-22 23:53:55 +03:00
xpfe/appshell Bug 1653214 - Part 2: Remove nsIBaseWindow::Create; r=nika 2020-07-16 20:42:20 +00:00
.arcconfig
.babel-eslint.rc.js
.clang-format
.clang-format-ignore Bug 1651731: [lint] Only allow files that are typically executable to have shebang lines override permission check; r=linter-reviewers,sylvestre 2020-07-09 21:16:32 +00:00
.cron.yml Bug 1649168: Add a cron target that will trigger scriptworker canaries; r=rail 2020-07-10 16:11:13 +00:00
.eslintignore Bug 1618465 - Move pdf.js to toolkit (main files). r=bdahl,Pike 2020-07-02 07:13:46 +00:00
.eslintrc.js Bug 1603779 - Part 6: Remove now-obsolete exceptions from .eslintrc.js. r=Gijs 2020-07-10 15:16:06 +00:00
.flake8 Bug 1654090 - Replace testing/mochitest/pywebsocket with pywebsocket3; r=jmaher 2020-07-22 02:06:38 +00:00
.git-blame-ignore-revs Bug 1633969 - Refresh .git-blame-ignore-revs. r=sylvestre 2020-04-30 16:38:19 +00:00
.gitattributes
.gitignore Bug 1651214 - Ignore .python-version file at top of checkout r=nalexander 2020-07-07 23:41:55 +00:00
.hg-annotate-ignore-revs
.hg-format-source
.hgignore Bug 1651214 - Ignore .python-version file at top of checkout r=nalexander 2020-07-07 23:41:55 +00:00
.hgtags No bug - tagging 4c7e22cb6a476089657b971f2ebe333c5649a4a9 with FIREFOX_NIGHTLY_79_END a=release DONTBUILD CLOSED TREE 2020-06-29 15:15:37 +00:00
.lldbinit
.mailmap Bug 1650456 - Correct name in a few places, r=froydnj 2020-07-03 20:20:29 +00:00
.prettierignore
.prettierrc
.taskcluster.yml Bug 1652184: Report to perherder stats about bugbug timings; r=ahal 2020-07-13 19:53:00 +00:00
.trackerignore
.yamllint
.ycm_extra_conf.py Bug 1646256 - Make rust-analyzer and YouCompleteMe work with mozilla-central. r=sylvestre 2020-06-17 17:53:56 +00:00
AUTHORS
CLOBBER Bug 1651807 - CLOBBER because build system regards file as missing which got moved in bug 1618465. DONTBUILD a=clobber 2020-07-13 12:28:32 +02:00
Cargo.lock Bug 1654312 - Support NullScriptThing. r=nbp 2020-07-22 12:08:59 +00:00
Cargo.toml Bug 1636539 - Part 2: Add defaultagent-static Rust crate fetching remote disabled flag. r=bytesized 2020-07-21 22:17:26 +00:00
GNUmakefile
LEGAL
LICENSE
Makefile.in Bug 1654371 - Get verbose output from `mach artifact install` in artifact builds if we're doing verbose build logging r=froydnj 2020-07-21 19:49:55 +00:00
README.txt
aclocal.m4 Bug 1635764 - Move --with-system-icu and --with-intl-api to python configure. r=firefox-build-system-reviewers,rstewart 2020-05-29 21:29:52 +00:00
build.gradle Bug 1641983 - Update apilint to 0.3.0. r=snorp 2020-06-01 15:58:01 +00:00
client.mk Bug 1633016 - Remove a bunch of references to PYTHON(2) in Makefiles r=glandium 2020-05-05 19:53:22 +00:00
client.py Bug 1650306 - Address the defects found by the pylint/no-else-return rule. r=sylvestre 2020-07-08 09:24:49 +00:00
configure.in Bug 1644887 - `configure` calls into `$PYTHON3` rather than `python3` directly r=glandium 2020-06-10 21:29:27 +00:00
configure.py Bug 1649901 - Improve reproducibility of config_status_deps.in files r=froydnj 2020-07-01 22:55:52 +00:00
gradle.properties
gradlew
gradlew.bat
mach Bug 1638963 - Run 'mach geckoview-junit' with py3; r=jmaher 2020-07-22 18:08:02 +00:00
moz.build Bug 1648348 - Create "Writing Rust Code" docs. r=froydnj,zbraniecki,lina. 2020-07-07 07:38:27 +00:00
moz.configure Bug 1641291 - Part 1: Allow cross-compiling from host macOS -> Windows target. r=froydnj 2020-07-07 02:13:35 +00:00
mozilla-config.h.in
old-configure.in Backed out changeset 0650d1a61f16 (bug 1653950) for bustages on gversionmacros.h CLOSED TREE 2020-07-23 03:42:33 +03:00
package-lock.json Bug 1653195 - Update eslint-plugin-mozilla's eslint-visitor-keys to be the same as the top-level include. r=mossop 2020-07-20 12:33:56 +00:00
package.json
settings.gradle Backed out changeset d0ff30e1d830 (bug 1650692) for toolchains failures on ImageDecoderTest.kt. CLOSED TREE 2020-07-15 07:42:37 +03:00
substitute-local-geckoview.gradle
test.mozbuild

README.txt

An explanation of the Mozilla 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 Mozilla from the source code and create the patch see:

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

If you have a question about developing Mozilla, and can't find the solution
on https://developer.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 Mozilla developers for
testing, may be buggy.