fune/toolkit/components/resistfingerprinting/nsIUserCharacteristicsPageService.idl
Tom Ritter c816dcfce3 Bug 1882422: Use a local testing page to return complex data and make use of it in C++-land r=peterv
- 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
2024-04-03 23:43:17 +00:00

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);
};