Bug 1833671 - Add Telemetry for Tabs from Other Devices r=kcochrane,fxview-reviewers,sclements

Differential Revision: https://phabricator.services.mozilla.com/D188670
This commit is contained in:
Jonathan Sudiaman 2023-09-20 20:59:21 +00:00
Родитель e9fa17f339
Коммит 31120cda00
4 изменённых файлов: 121 добавлений и 2 удалений

Просмотреть файл

@ -54,6 +54,10 @@ function openTabInWindow(window, url) {
switchToTabHavingURI(url, true, {});
}
function isFirefoxViewNext(window) {
return window.location.pathname === "firefoxview-next";
}
export const TabsSetupFlowManager = new (class {
constructor() {
this.QueryInterface = ChromeUtils.generateQI(["nsIObserver"]);
@ -617,7 +621,10 @@ export const TabsSetupFlowManager = new (class {
);
this.didFxaTabOpen = true;
openTabInWindow(window, url, true);
Services.telemetry.recordEvent("firefoxview", "fxa_continue", "sync", null);
const category = isFirefoxViewNext(window)
? "firefoxview_next"
: "firefoxview";
Services.telemetry.recordEvent(category, "fxa_continue", "sync", null);
}
async openFxAPairDevice(window) {
@ -626,7 +633,10 @@ export const TabsSetupFlowManager = new (class {
});
this.didFxaTabOpen = true;
openTabInWindow(window, url, true);
Services.telemetry.recordEvent("firefoxview", "fxa_mobile", "sync", null, {
const category = isFirefoxViewNext(window)
? "firefoxview_next"
: "firefoxview";
Services.telemetry.recordEvent(category, "fxa_mobile", "sync", null, {
has_devices: this.secondaryDeviceConnected.toString(),
});
}

Просмотреть файл

@ -255,6 +255,7 @@ class SyncedTabsInView extends ViewPage {
where = "tab";
}
currentWindow.openTrustedLinkIn(event.originalTarget.url, where);
Services.telemetry.recordEvent("firefoxview_next", "synced_tabs", "tabs");
}
}

Просмотреть файл

@ -40,6 +40,29 @@ add_task(async function test_unconfigured_initial_state() {
emptyState.getAttribute("headerlabel").includes("syncedtabs-signin"),
"Signin message is shown"
);
// Test telemetry for signing into Firefox Accounts.
await clearAllParentTelemetryEvents();
EventUtils.synthesizeMouseAtCenter(
emptyState.querySelector(`button[data-action="sign-in"]`),
{},
content
);
await TestUtils.waitForCondition(
() =>
Services.telemetry.snapshotEvents(
Ci.nsITelemetry.DATASET_PRERELEASE_CHANNELS
).parent?.length >= 1,
"Waiting for fxa_continue firefoxview_next telemetry event.",
200,
100
);
TelemetryTestUtils.assertEvents(
[["firefoxview_next", "fxa_continue", "sync"]],
{ category: "firefoxview_next" },
{ clear: true, process: "parent" }
);
await BrowserTestUtils.removeTab(browser.ownerGlobal.gBrowser.selectedTab);
});
await tearDown(sandbox);
});
@ -73,6 +96,29 @@ add_task(async function test_signed_in() {
emptyState.getAttribute("headerlabel").includes("syncedtabs-adddevice"),
"Add device message is shown"
);
// Test telemetry for adding a device.
await clearAllParentTelemetryEvents();
EventUtils.synthesizeMouseAtCenter(
emptyState.querySelector(`button[data-action="add-device"]`),
{},
content
);
await TestUtils.waitForCondition(
() =>
Services.telemetry.snapshotEvents(
Ci.nsITelemetry.DATASET_PRERELEASE_CHANNELS
).parent?.length >= 1,
"Waiting for fxa_mobile firefoxview_next telemetry event.",
200,
100
);
TelemetryTestUtils.assertEvents(
[["firefoxview_next", "fxa_mobile", "sync"]],
{ category: "firefoxview_next" },
{ clear: true, process: "parent" }
);
await BrowserTestUtils.removeTab(browser.ownerGlobal.gBrowser.selectedTab);
});
await tearDown(sandbox);
});
@ -264,6 +310,24 @@ add_task(async function test_tabs() {
is(tabRow2.length, 2, "Correct number of rows are dispayed.");
ok(tabRow1[0].shadowRoot.textContent.includes, "The Guardian");
ok(tabRow1[1].shadowRoot.textContent.includes, "The Times");
// Test telemetry for opening a tab.
await clearAllParentTelemetryEvents();
EventUtils.synthesizeMouseAtCenter(tabRow1[0], {}, browser.contentWindow);
await TestUtils.waitForCondition(
() =>
Services.telemetry.snapshotEvents(
Ci.nsITelemetry.DATASET_PRERELEASE_CHANNELS
).parent?.length >= 1,
"Waiting for synced_tabs firefoxview_next telemetry event.",
200,
100
);
TelemetryTestUtils.assertEvents(
[["firefoxview_next", "synced_tabs", "tabs"]],
{ category: "firefoxview_next" },
{ clear: true, process: "parent" }
);
});
await tearDown(sandbox);
});

Просмотреть файл

@ -4073,6 +4073,50 @@ firefoxview_next:
- 1852036
expiry_version: "never"
release_channel_collection: opt-out
fxa_continue:
objects: ["sync"]
description: >
Recorded when button to sign in or sign up is clicked
notification_emails:
- firefoxview@mozilla.com
products:
- "firefox"
record_in_processes:
- main
bug_numbers:
- 1833671
expiry_version: "never"
release_channel_collection: opt-out
fxa_mobile:
objects: ["sync"]
description: >
Recorded when the 'Try Firefox for mobile' button is clicked
extra_keys:
has_devices: True if user has other devices signed into sync
notification_emails:
- firefoxview@mozilla.com
products:
- "firefox"
record_in_processes:
- main
bug_numbers:
- 1833671
expiry_version: "never"
release_channel_collection: opt-out
synced_tabs:
objects: ["tabs"]
description: >
Recorded when a synced tab is clicked
notification_emails:
- firefoxview@mozilla.com
products:
- "firefox"
record_in_processes:
- main
bug_numbers:
- 1833671
expiry_version: "never"
release_channel_collection: opt-out
search:
engine: