gecko/toolkit/components/telemetry/nsITelemetryPing.idl

67 lines
1.5 KiB
Plaintext

/* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */
/* 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 http://mozilla.org/MPL/2.0/. */
#include "nsIObserver.idl"
interface nsIFile;
[scriptable, uuid(32fbb784-a20c-49aa-9db9-9a0da1c2f7d8)]
interface nsITelemetryPing : nsIObserver {
/**
* Return the current telemetry payload.
*/
jsval getPayload();
/**
* Save histograms to a file.
*
* @param aFile - File to load from.
* @param aSync - Use sync writes.
*/
void saveHistograms(in nsIFile aFile, in boolean aSync);
/**
* Collect and store information about startup.
*/
void gatherStartup();
/**
* Notify observers when loads and saves finish. Used only for testing.
*/
void enableLoadSaveNotifications();
/**
* Cache the profile directory for later use.
*/
void cacheProfileDirectory();
/**
* Inform the ping which AddOns are installed.
*
* @param aAddOns - The AddOns.
*/
void setAddOns(in AString aAddOns);
/**
* Send a ping to a test server. Used only for testing.
*
* @param aServer - The server.
*/
void testPing(in AString aServer);
/**
* Load histograms from a file.
*
* @param aFile - File to load from.
* @param aSync - Use sync reads.
*/
void testLoadHistograms(in nsIFile aFile, in boolean aSync);
/**
* Return the path component of the current submission URL.
*/
AString submissionPath();
};