зеркало из https://github.com/mozilla/gecko-dev.git
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
2243494a74
The Custom Highlight API allows a use case where a `Range` of a `Highlight` is also used as `Selection`. Due to the decision to use the `Selection` mechanism to display `Highlight`s, a `Range` can be part of several `Selection`s. Since the `Range` has a pointer to its associated `Selection` to notify about changes, this must be adapted to allow several `Selections`. As a tradeoff of performance and memory usage, the `Selection`s are stored as `mozilla::LinkedList`. A helper class `mozilla::SelectionListWrapper` was implemented to allow `Selection`s to be in multiple of these lists and without having to be derived from `LinkedListElement<T>`. To simplify usage of the list, the use case "does this range belong to Selection x?" is wrapped into the convenience method`IsInSelection(Selection&)`; The method previously named like this was renamed to `IsInAnySelection()` to be named more precisely. Registering and unregistering of the closest common inclusive ancestor of the `Range` is done when the first `Selection` is registered and the last `Selection` is unregistered. Differential Revision: https://phabricator.services.mozilla.com/D169597 |
||
---|---|---|
.cargo | ||
.vscode | ||
accessible | ||
browser | ||
build | ||
caps | ||
chrome | ||
config | ||
devtools | ||
docs | ||
docshell | ||
dom | ||
editor | ||
extensions | ||
gfx | ||
gradle/wrapper | ||
hal | ||
image | ||
intl | ||
ipc | ||
js | ||
layout | ||
media | ||
memory | ||
mfbt | ||
mobile | ||
modules | ||
mozglue | ||
netwerk | ||
nsprpub | ||
other-licenses | ||
parser | ||
python | ||
remote | ||
security | ||
services | ||
servo | ||
startupcache | ||
storage | ||
supply-chain | ||
taskcluster | ||
testing | ||
third_party | ||
toolkit | ||
tools | ||
uriloader | ||
view | ||
widget | ||
xpcom | ||
xpfe/appshell | ||
.arcconfig | ||
.babel-eslint.rc.js | ||
.clang-format | ||
.clang-format-ignore | ||
.cron.yml | ||
.eslintignore | ||
.eslintrc-test-paths.js | ||
.eslintrc.js | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.hg-annotate-ignore-revs | ||
.hg-format-source | ||
.hgignore | ||
.hgtags | ||
.isort.cfg | ||
.lando.ini | ||
.lldbinit | ||
.mailmap | ||
.prettierignore | ||
.prettierrc.js | ||
.taskcluster.yml | ||
.trackerignore | ||
.yamllint | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
CLOBBER | ||
Cargo.lock | ||
Cargo.toml | ||
GNUmakefile | ||
LICENSE | ||
Makefile.in | ||
README.txt | ||
aclocal.m4 | ||
build.gradle | ||
client.mk | ||
client.py | ||
configure | ||
configure.py | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
mach | ||
mach.cmd | ||
mach.ps1 | ||
mots.yaml | ||
moz.build | ||
moz.configure | ||
mozilla-config.h.in | ||
old-configure.in | ||
package-lock.json | ||
package.json | ||
settings.gradle | ||
substitute-local-geckoview.gradle | ||
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.