forked from mirrors/gecko-dev
- Create a local page we will access via an about: URL - In that page, demonstrate how to do some stuff, then fire a custom event indicating its stuff is done _and_ return complex data in that event. console.log() didn't seem to be visible in the HiddenWindow, so I also piped out debug strings for development purposes, so they can be console.logged in the Service, where we can see them. - Instead of listening for DOMContentLoaded/pageshow, instead listen for the new CustomEvent. - In UserCharacteristicsPageService, receive the data from the page and populate the appropriate Glean metrics - Refactor the calling of nsUserCharacteristics::PopulateData() and SubmitPing(). Now we call PopulateDataAndEventuallySubmit() which will eventually call SubmitPing after our promise is resolved. - To make it a little cleaner (so ContentPageStuff() isn't calling SubmitPing()) we return the promise out of ContentPageStuff() that PopulateDataAndEventuallySubmit() will await and then call SubmitPing() when that promise resolves Differential Revision: https://phabricator.services.mozilla.com/D203055
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
|
|
|
const lazy = {};
|
|
ChromeUtils.defineLazyGetter(lazy, "console", () => {
|
|
return console.createInstance({
|
|
prefix: "UserCharacteristicsPage",
|
|
maxLogLevelPref: "toolkit.telemetry.user_characteristics_ping.logLevel",
|
|
});
|
|
});
|
|
|
|
XPCOMUtils.defineLazyServiceGetter(
|
|
lazy,
|
|
"UserCharacteristicsPageService",
|
|
"@mozilla.org/user-characteristics-page;1",
|
|
"nsIUserCharacteristicsPageService"
|
|
);
|
|
|
|
export class UserCharacteristicsParent extends JSWindowActorParent {
|
|
receiveMessage(aMessage) {
|
|
lazy.console.debug("Got ", aMessage.name);
|
|
if (aMessage.name == "UserCharacteristics::PageReady") {
|
|
lazy.console.debug("Got pageReady");
|
|
lazy.UserCharacteristicsPageService.pageLoaded(
|
|
this.browsingContext,
|
|
aMessage.data
|
|
);
|
|
}
|
|
}
|
|
}
|