Covers topsites and quicksuggest impressions, clicks, and blocks.
Removes unused and not-to-be-used topsites-in-urlbar pingcentre instrumentation
rather than reinstrumenting it.
Differential Revision: https://phabricator.services.mozilla.com/D179856
We consolidate all the "messaging-system"-namespace pings into a single Glean
ping to provide a holistic view of all events in that system.
Differential Revision: https://phabricator.services.mozilla.com/D178477
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
Before this commit, the New Tab tests had two fake pref
implementations:
* The `Services.prefs` mock in `TEST_GLOBAL`, which stubbed out a
handful of `nsIPrefBranch` methods.
* `FakensIPrefBranch`, which mocked a different handful of
`nsIPrefBranch` methods.
This commit:
* Consolidates the two fake implementations into the mock
`FakensIPrefBranch` class.
* Adds a `FakensIPrefService` subclass of `FakensIPrefBranch`, with
additional methods specific to `nsIPrefService`.
* Replaces `FakensIPrefBranch.prototype.prefs` with a new
`FAKE_GLOBAL_PREFS` map. The new approach still lets tests change and
clear prefs on existing instances of `FakensIPrefBranch` and its
subclasses, but makes the shared state explicit. The old approach of
mutating `FakensIPrefBranch.prototype.prefs` relied on a subtle quirk
of `prefs` being shared by all instances of `FakensIPrefBranch` and
its subclasses, and broke when setting `prefs` to a new, empty
object.
* Moves `{observe, ignore}Branch` into `FakePrefs`, since these are
not part of the `nsIPrefBranch` interface.
Differential Revision: https://phabricator.services.mozilla.com/D173897
To debug the idle trigger's interaction with OS sleep state, it's
helpful to know whether sleep/wake notifications were sent. This allows
most of the idle trigger activity to be logged to the console, if the
pref `messaging-system.log` is set to `debug`. The new logging will also
be used to debug the behavior reported in bug 1801301.
Differential Revision: https://phabricator.services.mozilla.com/D163010
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
Also include pocket logged in status, which (because it's not a pref) is
sampled over time.
Also also, include the search field pref.
Differential Revision: https://phabricator.services.mozilla.com/D155755
Several kinds of FxMS messages support a common pattern of taking either a
string or an object containing a string ID, allowing for both raw strings and
translated string IDs to be used in messages. This patch refactors that pattern
out into a common definition (localizedText and localizableText) in a common
schema which other schemas can then reference.
Our schema bundling script has been updated to bundle these definitions from
the common schema as top-level definitions (and subsequently rewrite the
references from FxMSCOmmon.schema.json to the generated schema) because Nimbus
and Experimenter only support a single schema file per feature.
To ensure compatability with Experimenter, all our in-tree messages have been
extracted into a test corpus that is validated with the Experimenter JSON
Schema validator. A future patch in this series will clean this up so we don't
need to have separate copies of messages in the tree.
We are now also validating all messages from the CFRMessageProvider with our
in-tree JSON Schema validator that Nimbus uses. The OnboardingMessageProvider
and PanelTestProvider tests have also been updated so that all three are using
the same testing infrastructure.
Differential Revision: https://phabricator.services.mozilla.com/D150704
It doesn't actually collect anything new, but by collecting it all in one place
we should make analysis easier.
Can be shut off by setting `browser.newtabpage.ping.enabled` to `false`.
Differential Revision: https://phabricator.services.mozilla.com/D146224
It doesn't actually collect anything new, but by collecting it all in one place
we should make analysis easier.
Can be shut off by setting `browser.newtabpage.ping.enabled` to `false`.
Differential Revision: https://phabricator.services.mozilla.com/D146224
Instead of exporting lazy getter, export a function that returns the FxAccount
singleton, lazily creating on the first call, and define the lazy getter on the
consumer side that calls the function.
Differential Revision: https://phabricator.services.mozilla.com/D147634