The new pref app.update.suppressPrompts will allow user to suppress
update-available prompts (popupnotifications) for up to seven days.
Instead, Nightly will display an update badge and banner immediately,
and wait 7 days before showing an interactive prompt. It will also
disable update-restart prompts entirely, instead showing badge and
banner. This also adds telemetry to measure how often these update
prompts are being suppressed via user preference. All of these features
are only enabled on Nightly builds.
Differential Revision: https://phabricator.services.mozilla.com/D135449
I felt somewhat disoriented in the code when ramping up on it, so I
started documenting it with JSDoc as way to better understand the code.
Differential Revision: https://phabricator.services.mozilla.com/D136020
These were all areas that were confusing me when I was onboarding on to
this code, so I tried to make the terminology less ambiguous and more
precise.
The default language is now the primary language.
UI is now appended to words that are dealing with DOM elements rather
than data stores.
Differential Revision: https://phabricator.services.mozilla.com/D136019
This race condition happens because some of the paths through displayDownloadDirPrefTask
are synchronous, and some are not, and we repeatedly call it in the same turn of the
event loop, both because downloads prefs are stored in 2 prefs, both of which impact
this display, and because the pref bindings like calling 'change' event listeners more
than once.
To make this reliably deterministic, instead of juggling callsites, just ensure that
the last caller to displayDownloadDirPrefTask is always the one that actually
determines the label that gets displayed.
Differential Revision: https://phabricator.services.mozilla.com/D131853
This patch disables the update service as if it were disabled by policy
whenever a package identify is present. User interfaces are treated as if
the updater had not been included in the build, because that prevents any of
our usual update UI from being shown, and in particular ensures that we do not
generate messages about an administrator handling updates, as would normally
happen when disabling updates via policy.
The telemetry environment's update.enabled flag is deliberately left alone in
this patch, because the mere fact of using an app package does not really say
anything about whether the user intends to allow automatic updating or not.
Depends on D114427
Differential Revision: https://phabricator.services.mozilla.com/D114886
This patch disables the update service as if it were disabled by policy
whenever a package identify is present. User interfaces are treated as if
the updater had not been included in the build, because that prevents any of
our usual update UI from being shown, and in particular ensures that we do not
generate messages about an administrator handling updates, as would normally
happen when disabling updates via policy.
The telemetry environment's update.enabled flag is deliberately left alone in
this patch, because the mere fact of using an app package does not really say
anything about whether the user intends to allow automatic updating or not.
Differential Revision: https://phabricator.services.mozilla.com/D114886
The Downloader's cleanup function really ought to be asynchronous. The observer for "quit-application" is already asynchronous, so there's no problem there. But really, we ought to be cleaning up each downloader that we use, not just the last one. Which means that the cleanup ought to happen in AUS.stopDownload. So this patch will convert AUS.stopDownload to be asynchronous so that we can properly clean up the downloader from there.
Differential Revision: https://phabricator.services.mozilla.com/D110646
Changed default Ctrl+Tab preference to false and added UI migration to reset it for users who haven't not used the feature before.
Differential Revision: https://phabricator.services.mozilla.com/D109653
The UI is currently hidden unless app.update.background.experimental is set to true. The preferences page must be reloaded after setting this pref.
Differential Revision: https://phabricator.services.mozilla.com/D108705
Because 'navigator.mimeTypes' is always the empty string in the parent process, the loop at
_loadPluginHandlers never does anything, and there's no point keeping this now Flash is going
the way of the dodo anyway.
Differential Revision: https://phabricator.services.mozilla.com/D100216
This patch does not make the necessary replacement in tests. Those changes will be made in a later patch in this stack.
Some additional, related changes are also made in this patch:
cleanupActiveUpdate is being replaced with cleanupDownloadingUpdate and cleanupReadyUpdate. The two new functions currently do very similar things, but separating them will allow us to have each function clean up the right update, once we fully support more than one update per session.
The old mechanism to add something to the update history was for it to be assigned to activeUpdate, and then to assign null to activeUpdate. We now need to assign active updates to be null without adding them to the history. As an example, we need to set downloadingUpdate to null when the download completes, but it shouldn't be added to the history at that point. To address this, an explicit addUpdateToHistory function has been added, and assigning null to either active update variable no longer moves the update to the update history.
Differential Revision: https://phabricator.services.mozilla.com/D92289