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
23 lines
763 B
Text
23 lines
763 B
Text
/* 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/. */
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
webidl BrowsingContext;
|
|
|
|
[scriptable, uuid(ce3e9659-e311-49fb-b18b-7f27c6659b23)]
|
|
interface nsIUserCharacteristicsPageService : nsISupports {
|
|
|
|
/*
|
|
* Create the UserCharacteristics about: page as a HiddenFrame
|
|
* and begin the data collection.
|
|
*/
|
|
Promise createContentPage();
|
|
|
|
/*
|
|
* Called when the UserCharacteristics about: page has been loaded
|
|
* and supplied data back to the actor, which is passed as `data`
|
|
*/
|
|
void pageLoaded(in BrowsingContext browsingContext, in jsval data);
|
|
};
|