Significant portions of this were written by Shane Hughes <shughes@mozilla.com> -
specifically the parts that move the Firefox Account sign-in flow for tabs into
a SpecialMessageAction, and making AboutWelcomeUtils.handleUserAction return
a Promise.
Differential Revision: https://phabricator.services.mozilla.com/D176453
Significant portions of this were written by Shane Hughes <shughes@mozilla.com> -
specifically the parts that move the Firefox Account sign-in flow for tabs into
a SpecialMessageAction, and making AboutWelcomeUtils.handleUserAction return
a Promise.
Differential Revision: https://phabricator.services.mozilla.com/D176453
about:welcome checkboxes can now set an `checkedAction` and an
`uncheckedAction`, which will occur when the checkbox is checked or unchecked,
respectively, and the primary button is clicked.
The old `action` parameter is still supported for backwards compatability, but
`checkedAction` takes precedence.
Differential Revision: https://phabricator.services.mozilla.com/D174192
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
Experimentation confirmed years ago that about:welcome shoudln't be treated as blank for urlbar focus, and no need for additional experimentation. Also fix a bug where about:welcome was treated as a blank/empty page resulting in about:preferences incorrectly replacing it.
Differential Revision: https://phabricator.services.mozilla.com/D174940
Additionally check for the new content modal and standalone version for WAIT_FOR_MIGRATION_CLOSE by using observer notifications from preferences dialog close, new wizard actor, old wizard uninit.
Differential Revision: https://phabricator.services.mozilla.com/D174692
The new form autofill targeting attributes use an actor that may not be
registered in regions where neither credit card nor address autofill is
supported. In that case, the actor never gets registered, and requesting
an unrecognized JSActor throws an exception, which causes JEXL
evaluation to fail, ultimately causing message requests to fail. The
simplest fix is to just catch the exception and report 0 for targeting.
Using an actor externally isn't ideal, but in this case it's
conventional and the alternative - importing the storage object - isn't
great either.
Differential Revision: https://phabricator.services.mozilla.com/D174447
We were choosing not to read from the cache if the user has configured the browser
to restore the last session, but there's also the case where the last session might
be restored regardless - for example, to recover from a parent-process crash, after
an update applies, or if using the browser restart shortcut for developers. If any
foreground tab in that restored session loaded about:newtab, that'd result in the
about:newtab (and about:home) dynamic state being generated and being more up-to-date
than the cache.
The next time that about:home loaded (for example, when opening a new window), the
cache would be out of date and potentially conflict with what was in the state object
that came down from the parent.
This patch makes it so that if about:newtab is loaded before the about:home cache
gets to be used, then the cache is disqualified from use for that startup.
Differential Revision: https://phabricator.services.mozilla.com/D173782
This commit:
* Adds a `position` key to the `topsites.{impression, click}` events.
This position is zero-based, to align with `pocket_position`.
* Refactors the impression stats actions in `TelemetryFeed` to receive
the zero-based tile position, and adds one to the structured
ingestion payloads and scalar values.
* Adds a new Glean metric, `topsites.rows`, to record the number of
rows shown on the New Tab page.
Differential Revision: https://phabricator.services.mozilla.com/D172292