Also, because the data collection policy now allows Category 1 and 2
data collection in Private Browsing Mode, these CFRs will record
telemetry in PBM according to the existing CFR policy, which allows
Cat1-3 data for pre-release builds and experiments, and Cat1-2 data for
release builds. PBM windows will be treated in the same way that release
builds treat normal windows. When not enrolled in a CFR experiment, the
PBM window will only collect Cat1-2 data. When enrolled in a CFR
experiment, the PBM window may collect Cat3 data. This patch also adds a
new option to PopupNotifications that allows its usual interaction
probes to be recorded in PBM. That means, outside of an experiment,
pings from a PBM window will look just like pings from a release build
non-PBM window. And inside an experiment, pings from a PBM window will
look just like pings from a non-PBM window in any build. This ensures
that the PBM pings do not intrinsically confer any identifying
information, since their privateness cannot be known with certainty.
Differential Revision: https://phabricator.services.mozilla.com/D174200
Modify the enzyme assertions in unit tests so they can fail when
regressed. Update the same tests since now they would fail otherwise.
One of them also required fixing a bug in MSLocalized.jsx.
Differential Revision: https://phabricator.services.mozilla.com/D164403
ASRouter's remote message providers were written to include a property
to specify the desired collection on the Remote Settings Kinto server.
But this property was mistakenly labeled `bucket` in many places. This
could be confusing because Kinto storage is organized by both buckets
and collections, with buckets being a higher level of organization and
collections belonging to buckets. Each individual message provider
specifies a collection like "cfr", while the bucket is set by the router
code ("main"). This carried over to everything that interacted with the
providers, so this patch effectively replaces every reference to a
"message provider bucket" with "message provider collection." But more
importantly, provider definitions are stored as JSON strings in
preference values, so these definitions erroneously contained key-value
pairs like `bucket: "cfr"` which should have been `collection: "cfr"`.
That means the pref values themselves must be migrated to ensure that
modified prefs continue to work. Existing tests are updated and a new
test is added for the migrator, to meet minimum coverage requirements.
Documentation is also updated to reflect the correct property name.
Differential Revision: https://phabricator.services.mozilla.com/D162067
This patch adds a new trigger that will be used to deliver messages to
the user without disrupting their work. The trigger will only fire when
the user starts interacting with the browser (e.g. moving the mouse or
pressing a key) after a given period of time has passed without any user
activity or audio playback. In the initial messages planned for this
trigger, the necessary period of idle time will be 20 minutes. The
trigger fires after a 2 second delay to ensure the user does not miss
the message. Putting the computer to sleep or waking it up from sleep
will reset the idle "timer" to avoid messages being delivered as soon as
the computer is woken up from sleep.
Differential Revision: https://phabricator.services.mozilla.com/D160454
Bug 1652513 removed support for "daily" periods so we should remove support for
them from the schemas.
Some tests for ASRouter that were testing frequency normalization (that weren't
actually testing it because frequency normalization was removed) have been
removed.
Differential Revision: https://phabricator.services.mozilla.com/D153117