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
Previously, when a `TemplatedMessage` was missing a required field, the error
on Experimenter would be that the message's template field was expected to be
`multi`. This happens because the `oneOf` doesn't match `TemplatedMessage` due
to required fields missing, so it infers it must be a `MultiMessage`.
Now instead of using a `oneOf` to match against either a `MultiMessage` or a
`TemplatedMessage`, we use an `if`/`then`/`else`, predicated by the `template`
key so that if `template != "multi"`, the errors will come form the
`TemplatedMessage` definition.
Differential Revision: https://phabricator.services.mozilla.com/D177914
Fix a bug where VS Code's eslint integration does not work for the
newtab project because of a conflict caused by sass-lint's eslint
dependency. Switching over to stylelint eliminates that dependency and
generally modernizes our SCSS linting. stylelint doesn't have a 1 to 1
replacement for every sass-lint rule, so a few rules have been changed.
Differential Revision: https://phabricator.services.mozilla.com/D173605
This adds a card to the about:welcome defaults that embeds the new Migration Wizard
if browser.migrate.content-modal.about-welcome-behavior is set to "embedded".
This requires adding a useEmbeddedMigrationWizard targeting attribute to
ASRouterTargeting.
Differential Revision: https://phabricator.services.mozilla.com/D175945
The schema still imposes the following restrictions:
- Having "template" present makes "content" and "id" required.
- Having "content" present makes "template" and "id" required.
Template and content are dependent on eachother because we do not know how to
interpret content without a template and we a template with no content to
interpret is useless.
If we have a template and content, then we also need an ID for the message
because we cannot reference the message content except by its ID.
Differential Revision: https://phabricator.services.mozilla.com/D172458
The schema still imposes the following restrictions:
- Having "template" present makes "content" and "id" required.
- Having "content" present makes "template" and "id" required.
Template and content are dependent on eachother because we do not know how to
interpret content without a template and we a template with no content to
interpret is useless.
If we have a template and content, then we also need an ID for the message
because we cannot reference the message content except by its ID.
Differential Revision: https://phabricator.services.mozilla.com/D172458
The schema still imposes the following restrictions:
- Having "template" present makes "content" and "id" required.
- Having "content" present makes "template" and "id" required.
Template and content are dependent on eachother because we do not know how to
interpret content without a template and we a template with no content to
interpret is useless.
If we have a template and content, then we also need an ID for the message
because we cannot reference the message content except by its ID.
Differential Revision: https://phabricator.services.mozilla.com/D172458
This also fixes a bug in ASRouter devtools that prevented evaluation of
expressions containing nested promises. Objects containing promises are now
correctly serialized to the ASRouter devtools and expressions evaluate
correctly.
Differential Revision: https://phabricator.services.mozilla.com/D169408
This also fixes a bug in ASRouter devtools that prevented evaluation of
expressions containing nested promises. Objects containing promises are now
correctly serialized to the ASRouter devtools and expressions evaluate
correctly.
Differential Revision: https://phabricator.services.mozilla.com/D169408