Name Description Size
AboutPreferences.sys.mjs 13506
ActivityStream.sys.mjs 45731
ActivityStreamMessageChannel.sys.mjs ActivityStreamMessageChannel - This module connects a Redux store to the new tab page actor. You should use the BroadcastToContent, AlsoToOneContent, and AlsoToMain action creators in common/Actions.sys.mjs to help you create actions that will be automatically routed to the correct location. @param {object} options @param {function} options.dispatch The dispatch method from a Redux store @param {string} options.pageURL The URL to which the channel is attached, such as about:newtab. @param {string} options.outgoingMessageName The name of the message sent to child processes @param {string} options.incomingMessageName The name of the message received from child processes @return {ActivityStreamMessageChannel} 10660
ActivityStreamPrefs.sys.mjs Prefs - A wrapper around Preferences that always sets the branch to ACTIVITY_STREAM_PREF_BRANCH 3411
AdsFeed.sys.mjs This thin wrapper around global.fetch makes it easier for us to write automated tests that simulate responses from this fetch. 16340
cache.worker.js global ReactDOMServer, NewtabRenderUtils 6829
DefaultSites.sys.mjs 1584
DiscoveryStreamFeed.sys.mjs 104657
DownloadsManager.sys.mjs null for non-private downloads 6387
FaviconFeed.sys.mjs 627
HighlightsFeed.sys.mjs isStartup 10493
InferredModel
InferredPersonalizationFeed.sys.mjs A feature that periodically generates a interest vector for inferred personalization. 14280
NewTabAttributionFeed.sys.mjs - Writes clicks and impressions to NewTabAttributionService. - Cleared when user history is cleared. 5115
NewTabAttributionService.sys.mjs / export class NewTabAttributionService { /** @typedef { 'view' | 'click' | 'default' } matchType - Available matching methodologies for conversion events. @typedef { 'view' | 'click' } eventType - A subset of matchType values that Newtab will register events. @typedef {object} task - DAP task settings. @property {string} id - task id. @property {string} vdaf - vdaf type. @property {number} bits - datatype size. @property {number} length - number of buckets. @property {number} time_precision - time precision. @typedef {object} allocatedTask @property {task} task - DAP task settings. @property {number} defaultMeasurement - Measurement value used if budget is exceeded. @property {number} index - Measurement value used if budget is not exceeded. @typedef {object} impression - stored event. @property {allocatedTask} conversion - DAP task settings for conversion attribution. @property {number} lastImpression - Timestamp in milliseconds for last touch matching. @property {number} lastView - Timestamp in milliseconds for last view matching. @property {number} lastClick - Timestamp in milliseconds for last click matching. @typedef {object} budget - stored budget. @property {number} conversions - Number of conversions that have occurred in the budget period. @property {number} nextReset - Timestamp in milliseconds for the end of the period this budget applies to. 13317
NewTabContentPing.sys.mjs Set the maximum number of events to send in a 24 hour period @param {int} maxEvents 9499
NewTabGleanUtils.sys.mjs Module for managing Glean telemetry metrics and pings in the New Tab page. This object provides functionality to: - Read and parse JSON configuration files containing metrics and ping definitions - Register metrics and pings at runtime - Convert between different naming conventions (dotted snake case, kebab case, camel case) - Handle metric and ping registration with proper error handling and logging 11080
NewTabInit.sys.mjs NewTabInit - A placeholder for now. This will send a copy of the state to all newly opened tabs. 1630
NewTabMessaging.sys.mjs @param {string} id ID of message to be blocked 4618
PersistentCache.sys.mjs A file (disk) based persistent cache of a JSON serializable object. 2547
PersonalityProvider
PlacesFeed.sys.mjs PlacesObserver - observes events from PlacesUtils.observers 17343
PrefsFeed.sys.mjs Handler for when experiment data updates. 12511
RecommendationProvider.sys.mjs This creates a new recommendationProvider using fresh data, It's run on a last updated timer. This is the opposite of loadPersonalizationScoresCache. This is also much slower so we only trigger this in the background on idle-daily. It causes new profiles to pick up personalization slowly because the first time a new profile is run you don't have any old cache to use, so it needs to wait for the first idle-daily. Older profiles can rely on cache during the idle-daily gap. Idle-daily is usually run once every 24 hours. 9881
Screenshots.sys.mjs Get a screenshot / thumbnail for a url. Either returns the disk cached image or initiates a background request for the url. @param url {string} The url to get a thumbnail @return {Promise} Resolves a custom object or null if failed 5118
SectionsManager.sys.mjs Generators for built in sections, keyed by the pref name for their feed. Built in sections may depend on options stored as serialised JSON in the pref `${feed_pref_name}.options`. 17557
SiteClassifier.sys.mjs classifySite Classifies a given URL into a category based on classification data from RemoteSettings. The data from remote settings can match a category by one of the following: - match the exact URL - match the hostname or second level domain (sld) - match query parameter(s), and optionally their values or prefixes - match both (hostname or sld) and query parameter(s) The data looks like: [{ "type": "hostname-and-params-match", "criteria": [ { "url": "https://matchurl.com", "hostname": "matchhostname.com", "sld": "secondleveldomain", "params": [ { "key": "matchparam", "value": "matchvalue", "prefix": "matchpPrefix", }, ], }, ], "weight": 300, },...] 3297
SmartShortcutsFeed.sys.mjs A feature that periodically generates an interest vector for personalized shortcuts. 3542
SmartShortcutsRanker
StartupCacheInit.sys.mjs StartupCacheInit - Startup cache hydrates from a previous state. However, weather, sponsored content, and custom wallpapers are not cached. Weather sponsored content, or custom wallpapers can update before we fully hydrate. So this feed watches these feeds and updates later after we hydrate. We render this feed inert after hydrating from cache or not. 6104
Store.sys.mjs Store - This has a similar structure to a redux store, but includes some extra functionality to allow for routing of actions between the Main processes and child processes via a ActivityStreamMessageChannel. It also accepts an array of "Feeds" on inititalization, which can listen for any action that is dispatched through the store. 5491
SystemTickFeed.sys.mjs 1819
TelemetryFeed.sys.mjs eslint no-console: ["error", { allow: ["error"] }] 70902
TopSitesFeed.sys.mjs 73675
TopStoriesFeed.sys.mjs isStartup 23343
TrendingSearchFeed.sys.mjs A feature that periodically fetches trending search suggestions for HNT. 6669
UTEventReporting.sys.mjs Note: the schema can be found in https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/Events.yaml 1374
Wallpapers
WeatherFeed.sys.mjs A feature that periodically fetches weather suggestions from Merino for HNT. 11359
Widgets