From a2ce5437cef58ba0fdccf7d469874a332b417bfe Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 30 Apr 2026 12:05:18 +0000 Subject: [PATCH] Bug 2024589 - doc: use the :searchfox: macro r=asuth,perftest-reviewers,necko-reviewers,mozperftest-reviewers,geckoview-reviewers,extension-reviewers,credential-management-reviewers,search-reviewers,releng-reviewers,places-reviewers,profiler-reviewers,win-reviewers,omc-reviewers,urlbar-reviewers,permissions-reviewers,core-sessionstore-reviewers,browser-installer-reviewers,layout-reviewers,dom-worker-reviewers,ai-platform-reviewers,niklas,sthompson,janerik,bhearsum,valentin,dshin,sparky,scunnane,canaltinova,hanna_a,handyman,ahal,farre,jteow,emz,nrishel,ohall,dimi,robwu,emilio Differential Revision: https://phabricator.services.mozilla.com/D288640 --- browser/branding/docs/index.rst | 2 +- .../components/backup/docs/architecture.rst | 4 +- .../places/docs/architecture-overview.rst | 63 ++--- .../places/docs/notifyObservers.rst | 7 +- browser/components/search/docs/index.rst | 3 +- browser/components/search/docs/telemetry.rst | 2 +- browser/components/touchbar/docs/index.rst | 15 +- .../urlbar/docs/dynamic-result-types.rst | 8 +- browser/components/urlbar/docs/index.rst | 2 +- browser/components/urlbar/docs/lifetime.rst | 36 +-- .../urlbar/docs/nontechnical-overview.rst | 4 +- browser/components/urlbar/docs/overview.rst | 12 +- .../components/urlbar/docs/ranking-legacy.rst | 4 +- browser/components/urlbar/docs/ranking.rst | 4 +- browser/components/urlbar/docs/telemetry.rst | 2 +- browser/components/urlbar/docs/testing.rst | 25 +- browser/components/urlbar/docs/utilities.rst | 4 +- browser/docs/BrowserUsageTelemetry.rst | 4 +- browser/docs/CommandLineParameters.rst | 3 +- .../extensions/formautofill/docs/index.rst | 18 +- .../installer/windows/docs/FullInstaller.rst | 4 +- browser/installer/windows/docs/Helper.rst | 6 +- .../installer/windows/docs/InstallerBuild.rst | 2 +- browser/installer/windows/docs/MSI.rst | 2 +- browser/installer/windows/docs/StubArch.rst | 2 +- build/docs/flatpak.rst | 2 +- build/docs/jar-manifests.rst | 20 +- build/docs/rust.rst | 13 +- build/docs/snap.rst | 11 +- build/docs/test_certificates.rst | 4 +- build/docs/toolchains.rst | 48 +--- .../coding-style/coding_style_cpp.rst | 2 +- .../format_cpp_code_with_clang-format.rst | 9 +- .../coding-style/rtl_guidelines.rst | 21 +- .../using_cxx_in_firefox_code.rst | 9 +- docs/code-quality/index.rst | 2 +- docs/code-quality/lint/create.rst | 18 +- docs/code-quality/lint/linters/clippy.rst | 6 +- .../rules/reject-importGlobalProperties.rst | 2 +- .../reject-scriptableunicodeconverter.rst | 4 +- docs/code-quality/lint/linters/eslint.rst | 7 +- .../code-quality/lint/linters/gecko-trace.rst | 4 +- docs/code-quality/lint/linters/license.rst | 3 +- docs/code-quality/lint/linters/perfdocs.rst | 6 +- docs/code-quality/lint/linters/ruff.rst | 7 +- .../lint/linters/test-manifest-toml.rst | 4 +- .../writing-new/adding-a-check.rst | 4 +- .../writing-new/advanced-check-features.rst | 2 +- .../writing-new/clang-query.rst | 3 +- docs/content-security/index.rst | 6 +- .../build/building_mobile_firefox.rst | 4 +- docs/contributing/contributing_to_mozilla.rst | 2 +- .../debugging/debugging_firefox_with_lldb.rst | 4 +- .../debugging_firefox_with_valgrind.rst | 2 +- .../debugging/debugging_on_macos.rst | 6 +- .../debugging/debugging_on_windows.rst | 2 +- .../debugging/debugging_webrtc_calls.rst | 70 ++--- docs/contributing/editors/vscode.rst | 2 +- docs/jsloader/jsloader-api.rst | 4 +- docs/jsloader/system-modules.rst | 10 +- docs/nspr/reference/pr_extern.rst | 2 +- docs/nspr/reference/pr_implement.rst | 2 +- docs/nspr/reference/prfileinfo.rst | 4 +- docs/nspr/reference/prfileinfo64.rst | 4 +- docs/nspr/reference/print32.rst | 2 +- docs/nspr/reference/print64.rst | 2 +- docs/nspr/reference/pruint32.rst | 2 +- docs/nspr/reference/pruint64.rst | 2 +- docs/overview/gecko.rst | 10 +- docs/setup/building_with_debug_symbols.rst | 2 +- docs/setup/macos_build.rst | 2 +- dom/docs/ipc/jsactors.rst | 10 +- dom/docs/ipc/process_model.rst | 18 +- dom/docs/navigation/BrowsingContext.rst | 20 +- dom/docs/workersAndStorage/CodeStyle.rst | 2 +- .../workersAndStorage/PerformanceTesting.rst | 15 +- editor/docs/IMEHandlingGuide.rst | 96 ++++--- extensions/permissions/docs/manager.rst | 9 +- extensions/permissions/docs/remote.rst | 3 +- gfx/docs/AsyncPanZoom.rst | 20 +- intl/docs/icu.rst | 2 +- ipc/docs/ipdl.rst | 30 +- ipc/docs/processes.rst | 262 +++++++----------- ipc/docs/utility_process.rst | 18 +- layout/docs/LayoutCodeReviewerChecklist.rst | 3 +- layout/docs/index.rst | 3 +- .../consumer/geckoview-quick-start.rst | 2 +- .../docs/geckoview/consumer/permissions.rst | 2 +- .../geckoview/consumer/web-extensions.rst | 4 +- .../contributor/for-gecko-engineers.rst | 2 +- .../contributor/geckoview-architecture.rst | 53 ++-- .../contributor/geckoview-quick-start.rst | 2 +- .../docs/geckoview/contributor/junit.rst | 102 +++---- .../docs/geckoview/design/save-to-pdf.rst | 2 +- mobile/android/docs/geckoview/index.rst | 2 +- mobile/android/docs/index.rst | 2 +- netwerk/docs/cache2/doc.rst | 13 +- netwerk/docs/http/lifecycle.rst | 91 +++--- netwerk/docs/http_server_for_testing.rst | 6 +- python/mach/docs/usage.rst | 2 +- python/mozperftest/perfdocs/vision.rst | 4 +- python/mozperftest/perfdocs/writing.rst | 12 +- services/sync/docs/engines.rst | 6 +- services/sync/docs/overview.rst | 2 +- services/sync/docs/rust-engines.rst | 4 +- taskcluster/docs/kinds/test.rst | 5 +- taskcluster/docs/optimization/index.rst | 4 +- taskcluster/docs/release-promotion-action.rst | 13 +- taskcluster/docs/taskgraph.rst | 6 +- taskcluster/docs/transforms/index.rst | 3 +- testing/docs/automated-testing/index.rst | 12 +- .../automated-testing/manifest-sandbox.rst | 12 +- testing/docs/chrome-tests/index.rst | 5 +- testing/docs/tests-for-new-config/index.rst | 6 +- testing/docs/tests-for-new-config/manual.rst | 6 +- testing/docs/xpcshell/index.rst | 2 +- testing/mozbase/docs/manifestparser.rst | 4 +- testing/perfdocs/generated/browsertime.rst | 25 +- testing/perfdocs/generated/debugging.rst | 4 +- .../perfdocs/generated/telemetry-alerting.rst | 2 +- testing/perfdocs/generated/writing.rst | 8 +- .../mach-try-perf/perfdocs/index.rst | 2 +- .../telemetry-alerting/perfdocs/index.rst | 2 +- .../raptor/raptor/perfdocs/browsertime.rst | 31 +-- .../raptor/raptor/perfdocs/contributing.rst | 2 +- testing/raptor/raptor/perfdocs/debugging.rst | 16 +- testing/raptor/raptor/perfdocs/index.rst | 2 +- testing/raptor/raptor/perfdocs/test-list.rst | 4 +- .../raptor/raptor/perfdocs/webextension.rst | 10 +- testing/talos/perfdocs/index.rst | 17 +- .../components/autocomplete/docs/index.rst | 48 ++-- .../crashes/docs/crash-ping-lifecycle.rst | 23 +- toolkit/components/extensions/docs/basics.rst | 8 +- .../components/extensions/docs/incognito.rst | 4 +- toolkit/components/extensions/docs/other.rst | 2 +- .../extensions/docs/webext-storage.rst | 6 +- .../extensions/docs/webidl_bindings.rst | 7 +- .../messaging-system/schemas/index.rst | 62 ++--- toolkit/components/ml/docs/models.rst | 4 +- .../pictureinpicture/docs/index.rst | 10 +- .../docs/nsIPromptService-reference.rst | 2 +- .../docs/implementation.rst | 2 +- .../search/docs/SearchConfigurationSchema.rst | 6 +- .../docs/SearchConfigurationSchemaArchive.rst | 7 +- .../search/docs/SearchEngineConfiguration.rst | 3 +- .../docs/SearchEngineConfigurationArchive.rst | 3 +- .../search/docs/SearchEnginesArchive.rst | 3 +- .../docs/SearchServiceHighlevelOverview.rst | 12 +- .../SearchServiceHighlevelOverviewArchive.rst | 16 +- .../sessionstore/docs/collection.rst | 16 +- .../sessionstore/docs/restoredata.rst | 6 +- .../components/sessionstore/docs/utils.rst | 4 +- .../telemetry/docs/data/main-ping.rst | 6 +- .../telemetry/docs/data/new-profile-ping.rst | 2 +- .../internals/integration_tests/index.rst | 2 +- .../docs/obsolete/collection/events.rst | 2 +- .../docs/obsolete/collection/histograms.rst | 6 +- .../docs/obsolete/collection/scalars.rst | 14 +- .../obsolete/collection/user-interactions.rst | 2 +- .../docs/start/adding-a-new-probe.rst | 12 +- .../docs/Using_the_Mozilla_symbol_server.rst | 2 +- toolkit/modules/docs/Region.rst | 11 +- .../mozapps/update/docs/BackgroundUpdates.rst | 9 +- .../update/docs/InAppUpdateProcess.rst | 4 +- tools/code-coverage/docs/index.rst | 2 +- tools/fuzzing/docs/fuzzing_interface.rst | 16 +- tools/fuzzing/docs/index.rst | 7 +- tools/lint/perfdocs/framework_gatherers.py | 2 +- tools/moztreedocs/docs/architecture.rst | 14 +- tools/moztreedocs/docs/redirect.rst | 2 +- tools/profiler/docs/buffer.rst | 8 +- tools/profiler/docs/code-overview.rst | 76 ++--- tools/profiler/docs/instrumenting-android.rst | 9 +- tools/profiler/docs/instrumenting-rust.rst | 9 +- tools/profiler/docs/markers-guide.rst | 18 +- tools/profiler/docs/memory.rst | 6 +- tools/sanitizer/docs/tsan.rst | 2 +- tools/tryselect/docs/presets.rst | 4 +- tools/update-verify/docs/index.rst | 6 +- uriloader/docs/uriloader.rst | 4 +- widget/windows/docs/blocklist.rst | 11 +- .../docs/windows-pointing-device/index.rst | 2 +- xpcom/docs/collections.rst | 4 +- xpcom/docs/hashtables.rst | 7 +- xpcom/docs/hashtables_detailed.rst | 13 +- xpcom/docs/mozpromise.rst | 8 +- xpcom/docs/stringguide.rst | 6 +- xpcom/docs/writing-xpcom-interface.rst | 8 +- 188 files changed, 939 insertions(+), 1253 deletions(-) diff --git a/browser/branding/docs/index.rst b/browser/branding/docs/index.rst index d09ee321ec14..0ca5feeac5f6 100644 --- a/browser/branding/docs/index.rst +++ b/browser/branding/docs/index.rst @@ -6,7 +6,7 @@ Firefox has multiple different sets of "branding" that are used to hold channel- * Product names (eg: "Mozilla Firefox", "Firefox Developer Edition") * Channel-specific preferences (eg: ``app.update.interval``) -Brandings are stored in the `branding subdirectory `_ and map to builds as follows: +Brandings are stored in the :searchfox:`branding subdirectory ` and map to builds as follows: - ``official`` is used for Release and Beta builds - ``aurora`` is used for Developer Edition builds diff --git a/browser/components/backup/docs/architecture.rst b/browser/components/backup/docs/architecture.rst index 3f108eea87bf..ab108076c79b 100644 --- a/browser/components/backup/docs/architecture.rst +++ b/browser/components/backup/docs/architecture.rst @@ -5,9 +5,7 @@ The ``BackupService`` module is architected in a way to make testing its individual components relatively easy with unit tests. The main entry point exists in a module called -``BackupService.sys.mjs``, which is `invoked and initialized via in the -BrowserGlue idle tasks -list `__ +``BackupService.sys.mjs``, which is :searchfox:`invoked and initialized via in the BrowserGlue idle tasks list ` The ``BackupService`` manages two high-level operations: creation of backups, and recovery from such backups. diff --git a/browser/components/places/docs/architecture-overview.rst b/browser/components/places/docs/architecture-overview.rst index 4616ce005041..df4d87421a34 100644 --- a/browser/components/places/docs/architecture-overview.rst +++ b/browser/components/places/docs/architecture-overview.rst @@ -14,57 +14,38 @@ Frontend -------- The frontend part of the bookmarking experience includes various kind of views: - * `Trees`_ - * `Menus`_ - * `Toolbars`_ + * :searchfox:`Trees ` + * :searchfox:`Menus ` + * :searchfox:`Toolbars ` - .. _Trees: https://searchfox.org/firefox-main/source/browser/components/places/content/places-tree.js - .. _Menus: https://searchfox.org/mozilla-central/rev/4c184ca81b28f1ccffbfd08f465709b95bcb4aa1/browser/components/places/content/browserPlacesViews.js#1990 - .. _Toolbars: https://searchfox.org/mozilla-central/rev/4c184ca81b28f1ccffbfd08f465709b95bcb4aa1/browser/components/places/content/browserPlacesViews.js#894 +All the views share a common :searchfox:`Controller ` that is responsible to handle operations and commands required by the views. Each view creates a Result object and receives notifications about changes from it. -All the views share a common `Controller`_ that is responsible to handle operations and commands required by the views. Each view creates a Result object and receives notifications about changes from it. +As an example, removing a bookmark from a view will call into the controller that calls into PlacesTransactions to actually do the removal. The removal will notify a :searchfox:`Places event `, that is caught by the Result, that will immediately update its internal representation of the bookmarks tree. Then the Result sends a notification to the view that will handle it, updating what the user is seeing. The system works according to the classical `Model-View-Controller`_ pattern. -As an example, removing a bookmark from a view will call into the controller that calls into PlacesTransactions to actually do the removal. The removal will notify a `Places event`_, that is caught by the Result, that will immediately update its internal representation of the bookmarks tree. Then the Result sends a notification to the view that will handle it, updating what the user is seeing. The system works according to the classical `Model-View-Controller`_ pattern. +Fronted dialogs and panels are written using xhtml and shadow DOM. The bookmark dialogs in particular are wrappers around a common template, :searchfox:`editBookmarkPanel.inc.xhtml `, it could be extended or overloaded like an object (overlay, similar to Web Component). -Fronted dialogs and panels are written using xhtml and shadow DOM. The bookmark dialogs in particular are wrappers around a common template, `editBookmarkPanel.inc.xhtml`_, it could be extended or overloaded like an object (overlay, similar to Web Component). +Most of the logic for the edit bookmark overlay lives in the generic script :searchfox:`editBookmark.js `. -Most of the logic for the edit bookmark overlay lives in the generic script `editBookmark.js`_. - -.. _Controller: https://searchfox.org/firefox-main/source/browser/components/places/content/controller.js -.. _Places event: https://searchfox.org/firefox-main/source/dom/chrome-webidl/PlacesEvent.webidl .. _Model-View-Controller: https://en.wikipedia.org/wiki/Model–view–controller -.. _editBookmarkPanel.inc.xhtml: https://searchfox.org/firefox-main/source/browser/components/places/content/editBookmarkPanel.inc.xhtml -.. _editBookmark.js: https://searchfox.org/firefox-main/source/browser/components/places/content/editBookmark.js Structure of Frontend ^^^^^^^^^^^^^^^^^^^^^ -Most part of frontend code is located in : `Browser/Components/Places/Content`_: +Most part of frontend code is located in : :searchfox:`Browser/Components/Places/Content `: - - `BookmarkProperties`_ , BookmarkProperties.xhtml - responsible for editBookmarks & newBookmark Dialog. The panel is initialized based on data given in the js object passed as ``window.arguments[0]``. ``Window.arguments[0]`` is set to the guid of the item, if the dialog is accepted. + - :searchfox:`BookmarkProperties ` , BookmarkProperties.xhtml - responsible for editBookmarks & newBookmark Dialog. The panel is initialized based on data given in the js object passed as ``window.arguments[0]``. ``Window.arguments[0]`` is set to the guid of the item, if the dialog is accepted. - BookmarksHistoyTooltip.xhtml - code responsible for tooltip - - `BookmarksSidebar`_, bookmarksSidebar.xhtml - code responsible for sidebar window. Searches through existing bookmarks tree for desired bookmark. - - `BrowserPlacesViews`_ - controls most views (menu, panels, toolbox). The base view implements everything that's common to the toolbar and menu views. - - `Controller`_ - controller shared by all places views. Connect UI and actual operations. - - `EditBookmark`_, editBookmarkPanel.inc.xhtml - controls edit bookmark panel. Observes changes for bookmarks and connects all UI manipulations with backend. - - `HistorySidebar`_, historySidebar.xhtml - code responsible for history sidebar window. Searches through existing tree for requested History. - - `Places-menupopup`_ - custom element definition for Places menus - - `Places-tree`_ - class ``MozPlacesTree`` - builds a custom element definition for the places tree. This is loaded into all XUL windows. Has to be wrapped in a block to prevent leaking to a window scope. + - :searchfox:`BookmarksSidebar `, bookmarksSidebar.xhtml - code responsible for sidebar window. Searches through existing bookmarks tree for desired bookmark. + - :searchfox:`BrowserPlacesViews ` - controls most views (menu, panels, toolbox). The base view implements everything that's common to the toolbar and menu views. + - :searchfox:`Controller ` - controller shared by all places views. Connect UI and actual operations. + - :searchfox:`EditBookmark `, editBookmarkPanel.inc.xhtml - controls edit bookmark panel. Observes changes for bookmarks and connects all UI manipulations with backend. + - :searchfox:`HistorySidebar `, historySidebar.xhtml - code responsible for history sidebar window. Searches through existing tree for requested History. + - :searchfox:`Places-menupopup ` - custom element definition for Places menus + - :searchfox:`Places-tree ` - class ``MozPlacesTree`` - builds a custom element definition for the places tree. This is loaded into all XUL windows. Has to be wrapped in a block to prevent leaking to a window scope. - Places.css, places.js, places.xhtml - responsible for Library window - PlacesCommands.inc.xhtml - commands for multiple windows - PlacesContextMenu.inc.xhtml - definition for context menu - - `TreeView`_ - implementation of the tree view - - .. _Browser/Components/Places/Content: https://searchfox.org/firefox-main/source/browser/components/places/content - .. _BookmarkProperties: https://searchfox.org/firefox-main/source/browser/components/places/content/bookmarkProperties.js - .. _BookmarksSidebar: https://searchfox.org/firefox-main/source/browser/components/places/content/bookmarksSidebar.js - .. _BrowserPlacesViews: https://searchfox.org/firefox-main/source/browser/components/places/content/browserPlacesViews.js - .. _EditBookmark: https://searchfox.org/firefox-main/source/browser/components/places/content/editBookmark.js - .. _HistorySidebar: https://searchfox.org/firefox-main/source/browser/components/places/content/historySidebar.js - .. _Places-menupopup: https://searchfox.org/firefox-main/source/browser/components/places/content/places-menupopup.js - .. _Places-tree: https://searchfox.org/firefox-main/source/browser/components/places/content/places-tree.js - .. _TreeView: https://searchfox.org/firefox-main/source/browser/components/places/content/treeView.js - + - :searchfox:`TreeView ` - implementation of the tree view Backend ------- @@ -78,21 +59,18 @@ Toolkit Places also provides a way to query bookmarks, through Results. This is Structure of Backend ^^^^^^^^^^^^^^^^^^^^ -Most part of backend code is located in : `Toolkit/Components/Places`_: +Most part of backend code is located in : :searchfox:`Toolkit/Components/Places `: - :doc:`Bookmarks` - Asynchronous API for managing bookmarks - :doc:`History` - Asynchronous API for managing history - - `PlacesUtils`_ - This module exports functions for Sync to use when applying remote records + - :searchfox:`PlacesUtils ` - This module exports functions for Sync to use when applying remote records - :doc:`PlacesTransactions` - This module serves as the transactions manager for Places - .. _Toolkit/Components/Places: https://searchfox.org/firefox-main/source/toolkit/components/places - .. _PlacesUtils: https://searchfox.org/firefox-main/source/toolkit/components/places/PlacesUtils.sys.mjs - Storage ------- Places uses `SQLite`_ (C-language library with a stable, cross-platform, and backwards compatible file format) as its data storage backend. -All the data is contained in a places.sqlite file, in the roaming Firefox profile folder. The database is accessed using a wrapper of the SQLite library called `mozStorage`_. +All the data is contained in a places.sqlite file, in the roaming Firefox profile folder. The database is accessed using a wrapper of the SQLite library called :searchfox:`mozStorage `. For storing our favicons we use favicons.sqlite which is represented as ATTACH-ed to places.sqlite. That makes it easier to use our two separate sqlites as one single database. Synchronization @@ -101,5 +79,4 @@ Synchronization Places works in strict contact with `Firefox Sync`_, to synchronize bookmarks and history across devices, thus you can meet Sync specific code in various parts of the Places codebase. Some of the code may refer to Weave, the old project name for Sync. .. _SQLite: https://www.sqlite.org/index.html -.. _mozStorage: https://searchfox.org/firefox-main/source/storage .. _Firefox Sync: https://www.mozilla.org/en-US/firefox/sync/ diff --git a/browser/components/places/docs/notifyObservers.rst b/browser/components/places/docs/notifyObservers.rst index 156d49b1a2d1..9a18188f7937 100644 --- a/browser/components/places/docs/notifyObservers.rst +++ b/browser/components/places/docs/notifyObservers.rst @@ -10,8 +10,8 @@ Generally - the Observer pattern follows a subscription model. A subscriber (com Each successful operation is noticed by observer for these events and passed to a subscriber. -`PlacesObservers.webidl`_ a Global Singleton which provides utilities to observe or notify all events. -`PlacesEvent.webidl`_ states all types of possible events and describes their features. In our case, events are: +:searchfox:`PlacesObservers.webidl ` a Global Singleton which provides utilities to observe or notify all events. +:searchfox:`PlacesEvent.webidl ` states all types of possible events and describes their features. In our case, events are: - ``“page-visited”`` - ``data: PlacesVisit`` Fired whenever a page is visited - ``“bookmark-added”`` - ``data: PlacesBookmarkAddition`` Fired whenever a bookmark (or a bookmark folder/separator) is created. @@ -30,6 +30,3 @@ Each successful operation is noticed by observer for these events and passed to - ``“page-rank-changed”`` - ``data: PlacesRanking`` Fired whenever pages ranking is changed. - ``“page-removed”`` - ``data: PlacesVisitRemoved`` Fired whenever a page or its visits are removed. This may be invoked when a page is removed from the store because it has no more visits, nor bookmarks. It may also be invoked when all or some of the page visits are removed, but the page itself is not removed from the store, because it may be bookmarked. - ``“purge-caches”`` - ``data: PlacesPurgeCaches`` Fired whenever changes happened that could not be observed through other notifications, for example a database fixup. When received, observers, especially data views, should drop any caches and reload from scratch. - - .. _PlacesObservers.webidl: https://searchfox.org/firefox-main/source/dom/chrome-webidl/PlacesObservers.webidl - .. _PlacesEvent.webidl: https://searchfox.org/firefox-main/source/dom/chrome-webidl/PlacesEvent.webidl diff --git a/browser/components/search/docs/index.rst b/browser/components/search/docs/index.rst index e951f6626df5..a0057fb37962 100644 --- a/browser/components/search/docs/index.rst +++ b/browser/components/search/docs/index.rst @@ -13,7 +13,7 @@ The search area covers: Search Engine handling is taken care of with the `toolkit Search Service`_. -Most of the search code lives in `browser/components/search`_. +Most of the search code lives in :searchfox:`browser/components/search`. .. toctree:: @@ -22,4 +22,3 @@ Most of the search code lives in `browser/components/search`_. telemetry .. _toolkit Search Service: /toolkit/search/index.html -.. _browser/components/search: https://searchfox.org/firefox-main/source/browser/components/search diff --git a/browser/components/search/docs/telemetry.rst b/browser/components/search/docs/telemetry.rst index d3329745a861..211aed49bffb 100644 --- a/browser/components/search/docs/telemetry.rst +++ b/browser/components/search/docs/telemetry.rst @@ -212,5 +212,5 @@ browser.search.adclicks.* .. _additional telemetry of its own: /browser/urlbar/telemetry.html .. _SearchSERPTelemetry.sys.mjs and the associated parent/child actors: https://searchfox.org/mozilla-central/search?q=&path=SearchSERPTelemetry*.sys.mjs&case=false®exp=false -.. _BrowserSearchTelemetry: https://searchfox.org/firefox-main/source/browser/components/search/BrowserSearchTelemetry.sys.mjs +.. _BrowserSearchTelemetry: :searchfox:`browser/components/search/BrowserSearchTelemetry.sys.mjs` .. _sap.counts Event documentation: https://dictionary.telemetry.mozilla.org/apps/firefox_desktop/metrics/sap_counts diff --git a/browser/components/touchbar/docs/index.rst b/browser/components/touchbar/docs/index.rst index 090fbd8c7719..0e0f7573743e 100644 --- a/browser/components/touchbar/docs/index.rst +++ b/browser/components/touchbar/docs/index.rst @@ -53,7 +53,7 @@ JavaScript API ``browser/components/touchbar/MacTouchBar.sys.mjs`` defines what specific inputs are available to the user, what icon they will have, what action they will perform, -and so on. Inputs are defined in the ``gBuiltInInputs`` object `in that file`_. +and so on. Inputs are defined in the ``gBuiltInInputs`` object :searchfox:`in that file `. When creating a new object in ``gBuiltInInputs``, the available properties are documented in the JSDoc for ``TouchBarInput``: @@ -98,8 +98,6 @@ Clarification on some of these properties is warranted. ``kInputTypes.POPOVER``, any input type except another ``kInputTypes.POPOVER`` can be used. -.. _in that file: https://searchfox.org/mozilla-central/rev/669fac9888b173c02baa4c036e980c0c204dfe02/browser/components/touchbar/MacTouchBar.sys.mjs#76 - Input types ----------- @@ -238,12 +236,10 @@ will make the input available in the Touch Bar customization window (accessible from the Firefox menu bar item). If you want to to add your new input to the default set, add its identifier -here_, where ``type`` is a value from ``kAllowedInputTypes`` in that +:searchfox:`here `, where ``type`` is a value from ``kAllowedInputTypes`` in that file and ``key`` is the value you set for ``title`` in ``gBuiltInInputs``. You should request approval from UX before changing the default set of inputs. -.. _here: https://searchfox.org/mozilla-central/rev/ebe492edacc75bb122a2b380e4cafcca3470864c/widget/cocoa/nsTouchBar.mm#100 - If you are interested in adding new features to Firefox's implementation of the Touch Bar API, read on! @@ -259,7 +255,7 @@ The best resource to understand the Touch Bar API is Apple's these APIs and how one might extend ``nsTouchBar`` to enable new Touch Bar features. -Every new Firefox window initializes ``nsTouchBar`` (link_). The function +Every new Firefox window initializes ``nsTouchBar`` (:searchfox:`link `). The function ``makeTouchBar`` is looked for automatically on every new instance of an ``NSWindow*``. If ``makeTouchBar`` is defined, that window will own a new instance of ``nsTouchBar``. @@ -277,7 +273,6 @@ created containing a default set of inputs. ``initWithInputs`` can also take an initialized with only those inputs available. .. _official documentation: https://developer.apple.com/documentation/appkit/nstouchbar?language=objc -.. _link: https://searchfox.org/mozilla-central/rev/ebe492edacc75bb122a2b380e4cafcca3470864c/widget/cocoa/nsCocoaWindow.mm#2877 NSTouchBarItemIdentifiers ------------------------- @@ -304,7 +299,7 @@ If you need to generate an identifier, use the convenience method .. warning:: - ``NSTouchBarItemIdentifier`` `is used in one other place`_: setting + ``NSTouchBarItemIdentifier`` :searchfox:`is used in one other place `: setting ``customizationIdentifier``. Do not ever change this string. If it is changed, any customizations users have made to the layout of their Touch Bar in Firefox will be erased. @@ -316,8 +311,6 @@ which are the actual objects used by Apple's Touch Bar API and displayed in the Touch Bar. It is important to understand the difference between ``TouchBarInput`` and ``NSTouchBarItem``! -.. _is used in one other place: https://searchfox.org/mozilla-central/rev/ebe492edacc75bb122a2b380e4cafcca3470864c/widget/cocoa/nsTouchBar.mm#71 - TouchBarInput creation flow --------------------------- Creating a Touch Bar and its ``TouchBarInputs`` flows as follows: diff --git a/browser/components/urlbar/docs/dynamic-result-types.rst b/browser/components/urlbar/docs/dynamic-result-types.rst index 48a6a11d229c..3bbe221b794c 100644 --- a/browser/components/urlbar/docs/dynamic-result-types.rst +++ b/browser/components/urlbar/docs/dynamic-result-types.rst @@ -178,9 +178,7 @@ for a description of this object. ~~~~~~~~~~~~~~~~~~~~ If you are creating the provider in the internal address bar implementation in -mozilla-central, then add styling to `dynamic-results.css`_. - -.. _dynamic-results.css: https://searchfox.org/firefox-main/source/browser/themes/shared/urlbar/dynamic-results.css +mozilla-central, then add styling to :searchfox:`dynamic-results.css `. The rest of this section will discuss the CSS rules you need to use to style your results. @@ -630,7 +628,5 @@ Appendix A: Examples This section lists some example and real-world consumers of dynamic result types. -`Tab-to-Search Provider`__ +:searchfox:`Tab-to-Search Provider ` This is a built-in provider in mozilla-central that uses dynamic result types. - -__ https://searchfox.org/firefox-main/source/browser/components/urlbar/UrlbarProviderTabToSearch.sys.mjs diff --git a/browser/components/urlbar/docs/index.rst b/browser/components/urlbar/docs/index.rst index 253a09e781ba..288d72f09a00 100644 --- a/browser/components/urlbar/docs/index.rst +++ b/browser/components/urlbar/docs/index.rst @@ -25,7 +25,7 @@ If you are interested in the technical details, you might want to skip ahead to Codebase -------- -The address bar code lives in `browser/components/urlbar `_. +The address bar code lives in :searchfox:`browser/components/urlbar `. Table of Contents ----------------- diff --git a/browser/components/urlbar/docs/lifetime.rst b/browser/components/urlbar/docs/lifetime.rst index d8db4aa966e4..89b4bb72e96f 100644 --- a/browser/components/urlbar/docs/lifetime.rst +++ b/browser/components/urlbar/docs/lifetime.rst @@ -18,14 +18,14 @@ of April 2023. #. The user types a query (e.g. "coffee near me") into the *UrlbarInput* ` DOM element `_. - That DOM element `tells `_ + That DOM element :searchfox:`tells ` *UrlbarInput* that text is being input. #. - *UrlbarInput* `starts a search `_. - It `creates `_ + *UrlbarInput* :searchfox:`starts a search `. + It :searchfox:`creates ` a `UrlbarQueryContext `_ - and `passes it to UrlbarController `_. + and :searchfox:`passes it to UrlbarController `. The query context is an object that will exist for the lifetime of the query and it's how we keep track of what results to show. It contains information like what kind of results are allowed, the search string ("coffee near me", @@ -33,20 +33,20 @@ of April 2023. *UrlbarQueryContext* is created every time the text in the input changes. #. - *UrlbarController* `tells ProvidersManager `_ + *UrlbarController* :searchfox:`tells ProvidersManager ` that the providers should fetch results. #. - *ProvidersManager* tells `each `_ + *ProvidersManager* tells :searchfox:`each ` provider to decide if it wants to provide results for this query by calling - their `isActive `_ + their :searchfox:`isActive ` methods. The provider can decide whether or not it will be active for this query. Some providers are rarely active: for example, - *UrlbarProviderTopSites* `isn't active if the user has typed a search string `_. + *UrlbarProviderTopSites* :searchfox:`isn't active if the user has typed a search string `. #. *ProvidersManager* then tells the *active* providers to fetch results by - `calling their startQuery method `_. + :searchfox:`calling their startQuery method `. #. The providers fetch results for the query asynchronously. Each provider @@ -57,9 +57,9 @@ of April 2023. #. The providers send their results back to *ProvidersManager*. They do - this one result at a time by `calling the addCallback callback `_ + this one result at a time by :searchfox:`calling the addCallback callback ` passed into startQuery. *ProvidersManager* takes all the results from all the - providers and `puts them into the list of unsorted results `_. + providers and :searchfox:`puts them into the list of unsorted results `. Due to the asynchronous and parallel nature of providers, this and the following steps may occur multiple times per search. Some providers may take @@ -71,7 +71,7 @@ of April 2023. following steps. #. - *ProvidersManager* `asks `_ + *ProvidersManager* :searchfox:`asks ` *UrlbarMuxer* to sort the unsorted results. #. @@ -83,15 +83,15 @@ of April 2023. #. Once the results are sorted, *ProvidersManager* - `tells UrlbarController `_ + :searchfox:`tells UrlbarController ` that results are ready to be shown. #. - *UrlbarController* `sends out a notification `_ - that results are ready to be shown. *UrlbarView* was `listening `_ - for that notification. Once the view gets the notification, it `calls #updateResults `_ - to create `DOM nodes `_ - for each *UrlbarResult* and `inserts them `_ + *UrlbarController* :searchfox:`sends out a notification ` + that results are ready to be shown. *UrlbarView* was :searchfox:`listening ` + for that notification. Once the view gets the notification, it :searchfox:`calls #updateResults ` + to create :searchfox:`DOM nodes ` + for each *UrlbarResult* and :searchfox:`inserts them ` into the view's DOM element. As described above, we may reach this step multiple times per search. That diff --git a/browser/components/urlbar/docs/nontechnical-overview.rst b/browser/components/urlbar/docs/nontechnical-overview.rst index 1b6fdd98c9fb..e3ba1f6a0eef 100644 --- a/browser/components/urlbar/docs/nontechnical-overview.rst +++ b/browser/components/urlbar/docs/nontechnical-overview.rst @@ -485,7 +485,7 @@ Search Interventions Search interventions help the user perform a task based on their search string. There are three kinds of interventions, and each is triggered by typing a -certain set of phrases_ in the input. They always appear as the second result, +certain set of :searchfox:`phrases ` in the input. They always appear as the second result, after the heuristic result. The three kinds of interventions are: @@ -518,8 +518,6 @@ Currently this feature is limited to English-speaking locales, but work is ongoing to build a more sophisticated intent-matching platform to support other locales, more complex search strings, and more kinds of interventions. -.. _phrases: https://searchfox.org/mozilla-central/rev/c4d682be93f090e99d5f4049ceb7b6b6c03d0632/browser/components/urlbar/UrlbarProviderInterventions.jsm#64 - Search Tips ~~~~~~~~~~~ diff --git a/browser/components/urlbar/docs/overview.rst b/browser/components/urlbar/docs/overview.rst index f04b1bb74078..74d9ed635226 100644 --- a/browser/components/urlbar/docs/overview.rst +++ b/browser/components/urlbar/docs/overview.rst @@ -72,7 +72,7 @@ The Model The *Model* is the component responsible for retrieving search results based on the user's input, and sorting them accordingly to their importance. -At the core is the `ProvidersManager `_, +At the core is the :searchfox:`ProvidersManager `, a component tracking all the available search providers, and managing searches across them. @@ -92,7 +92,7 @@ Queries can be canceled. terminating any running and future SQL query, unless a query is running inside a *runInCriticalSection* task. -The *searchString* gets tokenized by the `UrlbarTokenizer `_ +The *searchString* gets tokenized by the :searchfox:`UrlbarTokenizer ` component into tokens, some of these tokens have a special meaning and can be used by the user to restrict the search to specific result type (See the *UrlbarTokenizer::TYPE* enum). @@ -246,7 +246,7 @@ indicated by the UrlbarQueryContext.muxer property. The Controller -------------- -`UrlbarController `_ +:searchfox:`UrlbarController ` is the component responsible for reacting to user's input, by communicating proper course of action to the Model (e.g. starting/stopping a query) and the View (e.g. showing/hiding a panel). It is also responsible for reporting Telemetry. @@ -279,7 +279,7 @@ user and handling their input. The View is a replaceable component, as such what is described here is a reference for the default View, but may not be valid for other implementations. -`UrlbarInput.sys.mjs `_ +:searchfox:`UrlbarInput.sys.mjs ` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Implements an input box *View*, owns an *UrlbarView*. @@ -323,7 +323,7 @@ Implements an input box *View*, owns an *UrlbarView*. value; } -`UrlbarView.sys.mjs `_ +:searchfox:`UrlbarView.sys.mjs ` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Represents the base *View* implementation, communicates with the *Controller*. @@ -353,7 +353,7 @@ Represents the base *View* implementation, communicates with the *Controller*. UrlbarResult ------------ -An `UrlbarResult `_ +An :searchfox:`UrlbarResult ` instance represents a single search result with a result type, that identifies specific kind of results. Each kind has its own properties, that the *View* may support, and a few common diff --git a/browser/components/urlbar/docs/ranking-legacy.rst b/browser/components/urlbar/docs/ranking-legacy.rst index cd6e7948d34a..c667be00655a 100644 --- a/browser/components/urlbar/docs/ranking-legacy.rst +++ b/browser/components/urlbar/docs/ranking-legacy.rst @@ -15,7 +15,7 @@ Before results appear in the UrlbarView, they are fetched from providers. Each `UrlbarProvider `_ implements its own internal ranking and returns sorted results. -Externally all the results are ranked by the `UrlbarMuxer `_ +Externally all the results are ranked by the :searchfox:`UrlbarMuxer ` according to a hardcoded list of groups and sub-groups. .. NOTE:: Preferences can influence the groups order, for example by putting @@ -192,7 +192,7 @@ Frecency is recalculated: In this case, when a change influencing frecency happens, the ``recalc_frecency`` database field for the page is set to ``1``. -Recalculation is done by the `PlacesFrecencyRecalculator `_ module. +Recalculation is done by the :searchfox:`PlacesFrecencyRecalculator ` module. The Recalculator is notified when ``PlacesUtils.history.shouldStartFrecencyRecalculation`` value changes from false to true, that means there's values to recalculate. A DeferredTask is armed, that will look for a user idle opportunity diff --git a/browser/components/urlbar/docs/ranking.rst b/browser/components/urlbar/docs/ranking.rst index b7547a836229..2db28552be3f 100644 --- a/browser/components/urlbar/docs/ranking.rst +++ b/browser/components/urlbar/docs/ranking.rst @@ -7,7 +7,7 @@ Before results appear in the UrlbarView, they are fetched from providers. Each `UrlbarProvider `_ implements its own internal ranking and returns sorted results. -Externally all the results are ranked by the `UrlbarMuxer `_ +Externally all the results are ranked by the :searchfox:`UrlbarMuxer ` according to an hardcoded list of groups and sub-groups. .. NOTE:: Preferences can influence the groups order, for example by putting @@ -220,7 +220,7 @@ Frecency is recalculated: In this case, when a change influencing frecency happens, the ``recalc_frecency`` database field for the page is set to ``1``. -Recalculation is done by the `PlacesFrecencyRecalculator `_ module. +Recalculation is done by the :searchfox:`PlacesFrecencyRecalculator ` module. The Recalculator is notified when ``PlacesUtils.history.shouldStartFrecencyRecalculation`` value changes from false to true, that means there's values to recalculate. A DeferredTask is armed, that will look for a user idle opportunity diff --git a/browser/components/urlbar/docs/telemetry.rst b/browser/components/urlbar/docs/telemetry.rst index 591e1c5941d8..c4b6a484368e 100644 --- a/browser/components/urlbar/docs/telemetry.rst +++ b/browser/components/urlbar/docs/telemetry.rst @@ -90,7 +90,7 @@ PLACES_FRECENCY_RECALC_CHUNK_TIME_MS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This records the time necessary to recalculate frecency of a chunk of pages, - as defined in the `PlacesFrecencyRecalculator `_ module. + as defined in the :searchfox:`PlacesFrecencyRecalculator ` module. Scalars ------- diff --git a/browser/components/urlbar/docs/testing.rst b/browser/components/urlbar/docs/testing.rst index 8f354628bbd0..4974b942ffba 100644 --- a/browser/components/urlbar/docs/testing.rst +++ b/browser/components/urlbar/docs/testing.rst @@ -38,11 +38,9 @@ connect it to other components in another language, such as JavaScript. Each XPCShell test is executed in a new shell instance, therefore you will see several Firefox icons pop up and close when XPCShell tests are executing. These are two examples of XPCShell tests for the address bar -`test_providerHeuristicFallback `_ +:searchfox:`test_providerHeuristicFallback ` and -`test_providerTabToSearch `_. +:searchfox:`test_providerTabToSearch `. When To Write a XPCShell or Mochitest? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -54,11 +52,9 @@ testing a specific component in the UI. If you are writing a test for a urlbarProvider, you can test the Provider through a XPCShell test. Providers do not modify the UI, instead what they do is receive a url string query, search for the string and bring back the result. An -example is the `ProviderPlaces `_, which fetches +example is the :searchfox:`ProviderPlaces `, which fetches results from the Places database. Another component that’s good for writing -XPCShell test is the `urlbarMuxer `_. +XPCShell test is the :searchfox:`urlbarMuxer `. There may be times where writing both an XPCShell test and browser test is necessary. In these situations, you could be testing the result from a Provider @@ -107,8 +103,7 @@ manifest in alphabetical order. Start in the manifest file and add your test name in alphabetical order. The manifest file we should add our test in is -`browser.toml `_. The ``urlbar/test/browser/`` directory +:searchfox:`browser.toml `. The ``urlbar/test/browser/`` directory is the main browser test directory for address bar, and the manifest file linked above is the main browser test manifest. @@ -145,8 +140,7 @@ ensures what is done within one test will not affect subsequent tests. head.js and common-head.js ~~~~~~~~~~~~~~~~~~~~~~~~~~ -The `head.js `_ file is executed at the beginning before each +The :searchfox:`head.js ` file is executed at the beginning before each test and contains imports to modules which are useful for each test. Any tasks ``head.js`` adds (via add_task) will run first for each test, and any variables and functions it defines will be available in the scope of @@ -158,7 +152,7 @@ modules names to where they can be found, their paths. ``Lazy`` means the files are only imported if or when it is used. Any tests in this directory can use these modules without importing it themselves in their own file. The ``head.js`` provides a convenience for this purpose. The ``head.js`` file -imports `common-head.js `_ +imports :searchfox:`common-head.js ` making everything within ``head-common.js`` available in ``head.js`` as well. The ``registerCleanupFunction`` is an important function in browser mochi tests @@ -176,7 +170,7 @@ test. UrlbarTestUtils ~~~~~~~~~~~~~~~ -`UrlbarTestUtils.sys.mjs `_ is useful for url bar testing. This +:searchfox:`UrlbarTestUtils.sys.mjs ` is useful for url bar testing. This file contains methods that can help with starting a new search in the url bar, waiting for a new search to complete, returning the results in the view, and etc. @@ -202,8 +196,7 @@ bookmarks, waiting for notification of visited pages, and etc. EventUtils ~~~~~~~~~~ -`EventUtils.js `_ is an older test file and does not +:searchfox:`EventUtils.js ` is an older test file and does not need to be imported because it is not a ``.sys.mjs`` file. ``EventUtils`` is only used for browser tests, unlike the other TestUtils listed above which are used for browser tests, XPCShell tests and other tests. diff --git a/browser/components/urlbar/docs/utilities.rst b/browser/components/urlbar/docs/utilities.rst index 9dee00091f83..bc4313a34470 100644 --- a/browser/components/urlbar/docs/utilities.rst +++ b/browser/components/urlbar/docs/utilities.rst @@ -3,7 +3,7 @@ Utilities Various modules provide shared utilities to the other components: -`UrlbarPrefs.sys.mjs `_ +:searchfox:`UrlbarPrefs.sys.mjs ` ------------------------------------------------------------------------------------------------------------------- Implements a Map-like storage or urlbar related preferences. The values are kept @@ -19,7 +19,7 @@ up-to-date. Newly added preferences should always be properly documented in UrlbarPrefs. -`UrlbarUtils.sys.mjs `_ +:searchfox:`UrlbarUtils.sys.mjs ` ------------------------------------------------------------------------------------------------------------------- Includes shared utils and constants shared across all the components. diff --git a/browser/docs/BrowserUsageTelemetry.rst b/browser/docs/BrowserUsageTelemetry.rst index e240f52131ef..24c931aaccb0 100644 --- a/browser/docs/BrowserUsageTelemetry.rst +++ b/browser/docs/BrowserUsageTelemetry.rst @@ -4,7 +4,7 @@ Browser Usage Telemetry ======================= -The `BrowserUsageTelemetry.sys.mjs `_ module is the main module for measurements regarding the browser usage (e.g. tab and window counts, search counts, ...). +The :searchfox:`BrowserUsageTelemetry.sys.mjs ` module is the main module for measurements regarding the browser usage (e.g. tab and window counts, search counts, ...). The measurements recording begins right after the ``SessionStore`` has finished restoring the session (i.e. restoring tabs/windows after Firefox starts). @@ -17,7 +17,7 @@ The usage telemetry module currently measures these interactions with the browse - *navigation events*: at this time, this only counts the number of time a page load is triggered by a particular UI interaction (e.g. by searching through the URL bar, see ``browser.engagement.navigation.urlbar``). -Please see `Scalars.yaml `_ for the full list of tracked interactions. +Please see :searchfox:`Scalars.yaml ` for the full list of tracked interactions. Customizable UI =============== diff --git a/browser/docs/CommandLineParameters.rst b/browser/docs/CommandLineParameters.rst index 5ba4e6df8d0e..34dd946d3a0c 100644 --- a/browser/docs/CommandLineParameters.rst +++ b/browser/docs/CommandLineParameters.rst @@ -19,8 +19,7 @@ Known parameters that the command line is untrusted and must be sanitized. Command lines with ``-osint`` are rejected unless they have a very specific structure, usually ``firefox.exe -osint -url URL`` or ``firefox.exe -osint - -private-window URL``: refer to `the EnsureCommandLineSafe function - `_. + -private-window URL``: refer to :searchfox:`the EnsureCommandLineSafe function `. These command lines are produced by apps delegating to Firefox, and the resulting URL may not be correctly quoted. The sanitization process ensures that maliciously chosen URLs do not add additional parameters to diff --git a/browser/extensions/formautofill/docs/index.rst b/browser/extensions/formautofill/docs/index.rst index abdb317de96b..33e70caa2905 100644 --- a/browser/extensions/formautofill/docs/index.rst +++ b/browser/extensions/formautofill/docs/index.rst @@ -10,7 +10,7 @@ Our objective is to increase user engagement, satisfaction and retention for fre Form Autofill handles filling in addresses and credit cards into forms. While the filling aspect of this is straightforward and uses the same mechanism as other autocomplete types, much of the additional work involves analyzing and classifying the form to determine which form field corresponds to which type of data. For instance, text boxes are classified into different types of address data. -For historical reasons, part of the form autofill is implemented using an extension, located in `browser/extensions/formautofill `_. It is this extension which adds the form autofill actors used to handle the search for possible results. However, most of the work is done via code in `toolkit/components/formautofill `_. +For historical reasons, part of the form autofill is implemented using an extension, located in :searchfox:`browser/extensions/formautofill`. It is this extension which adds the form autofill actors used to handle the search for possible results. However, most of the work is done via code in :searchfox:`toolkit/components/formautofill`. Form Autofill uses the autocomplete popup mechanism to show a list of suggestions to the user based on what they have typed so far. The user can also press the cursor key or tab key to open the autocomplete popup while the focus is within a field. @@ -20,7 +20,7 @@ For more information about autocomplete, see :doc:`Autocomplete `_. This process is separate from the mechanism used to trigger an autocomplete popup. +The form fill actor ``FormAutofillChild`` waits for form fields to be focused. When a field is focused, it starts the process of analyzing the form and picking out which fields might be address or credit card related. This process is primarily done by the ``getFormInfo`` function within :searchfox:`FormAutofillHeuristics.sys.mjs `. This process is separate from the mechanism used to trigger an autocomplete popup. Form Autofill can handle filling in ,