Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  PUtilityProcess.ipdl   Sprache: unbekannt

 
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 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 http://mozilla.org/MPL/2.0/. */

include MemoryReportTypes;
include PrefsTypes;

include protocol PProfiler;
include protocol PUtilityAudioDecoder;
include protocol PJSOracle;

#if defined(XP_WIN)
include protocol PWindowsUtils;
include protocol PWinFileDialog;
#endif

#if defined(MOZ_SANDBOX) && defined(MOZ_DEBUG) && defined(ENABLE_TESTS)
include protocol PSandboxTesting;
#endif

include "mozilla/ipc/ByteBufUtils.h";

include GraphicsMessages;

using mozilla::dom::NativeThreadId from "mozilla/dom/NativeThreadId.h";

// Telemetry
using mozilla::Telemetry::HistogramAccumulation from "mozilla/TelemetryComms.h";
using mozilla::Telemetry::KeyedHistogramAccumulation from "mozilla/TelemetryComms.h";
using mozilla::Telemetry::ScalarAction from "mozilla/TelemetryComms.h";
using mozilla::Telemetry::KeyedScalarAction from "mozilla/TelemetryComms.h";
using mozilla::Telemetry::ChildEventData from "mozilla/TelemetryComms.h";
using mozilla::Telemetry::DiscardedData from "mozilla/TelemetryComms.h";

#if defined(XP_WIN)
[MoveOnly] using mozilla::UntrustedModulesData from "mozilla/UntrustedModulesData.h";
[MoveOnly] using mozilla::ModulePaths from "mozilla/UntrustedModulesData.h";
[MoveOnly] using mozilla::ModulesMapResult from "mozilla/UntrustedModulesData.h";
#endif  // defined(XP_WIN)

namespace mozilla {

namespace ipc {

// This protocol allows the UI process to talk to the Utility process. There is
// one instance of this protocol, with the UtilityProcessParent living on the main thread
// of the main process and the UtilityProcessChild living on the main thread of the Utility
// process.
[NeedsOtherPid, ChildProc=Utility]
protocol PUtilityProcess
{
parent:
  async InitCrashReporter(NativeThreadId threadId);

  async AddMemoryReport(MemoryReport aReport);

  // Sent from time-to-time to limit the amount of telemetry vulnerable to loss
  // Buffer contains bincoded Rust structs.
  // https://firefox-source-docs.mozilla.org/toolkit/components/glean/dev/ipc.html
  async FOGData(ByteBuf buf);

#if defined(XP_WIN)
  async GetModulesTrust(ModulePaths aModPaths, bool aRunAtNormalPriority)
      returns (ModulesMapResult? modMapResult);
#endif  // defined(XP_WIN)

  // Messages for sending telemetry to parent process.
  async AccumulateChildHistograms(HistogramAccumulation[] accumulations);
  async AccumulateChildKeyedHistograms(KeyedHistogramAccumulation[] accumulations);
  async UpdateChildScalars(ScalarAction[] actions);
  async UpdateChildKeyedScalars(KeyedScalarAction[] actions);
  async RecordChildEvents(ChildEventData[] events);
  async RecordDiscardedData(DiscardedData data);

  async InitCompleted();

child:
  async Init(FileDescriptor? sandboxBroker, bool canRecordReleaseTelemetry, bool aIsReadyForBackgroundProcessing);

  async InitProfiler(Endpoint<PProfilerChild> endpoint);

  async RequestMemoryReport(uint32_t generation,
                            bool anonymize,
                            bool minimizeMemoryUsage,
                            FileDescriptor? DMDFile)
      returns (uint32_t aGeneration);

  async PreferenceUpdate(Pref pref);

  // Tells the Utility process to flush any pending telemetry.
  // Used in tests and ping assembly. Buffer contains bincoded Rust structs.
  // https://firefox-source-docs.mozilla.org/toolkit/components/glean/dev/ipc.html
  async FlushFOGData() returns (ByteBuf buf);

  // Test-only method.
  // Asks the Utility process to trigger test-only instrumentation.
  // The unused returned value is to have a promise we can await.
  async TestTriggerMetrics() returns (bool unused);

  async TestTelemetryProbes();

  async StartUtilityAudioDecoderService(Endpoint<PUtilityAudioDecoderParent> aEndpoint, GfxVarUpdate[] updates);

  async StartJSOracleService(Endpoint<PJSOracleChild> aEndpoint);

#if defined(XP_WIN)
  async StartWindowsUtilsService(Endpoint<PWindowsUtilsChild> aEndpoint);
  async StartWinFileDialogService(Endpoint<PWinFileDialogChild> aEndpoint);

  async GetUntrustedModulesData() returns (UntrustedModulesData? data);

  /**
  * This method is used to notify a child process to start
  * processing module loading events in UntrustedModulesProcessor.
  * This should be called when the parent process has gone idle.
  */
  async UnblockUntrustedModulesThread();
#endif  // defined(XP_WIN)

#if defined(MOZ_SANDBOX) && defined(MOZ_DEBUG) && defined(ENABLE_TESTS)
  async InitSandboxTesting(Endpoint<PSandboxTestingChild> aEndpoint);
#endif
};

} // namespace ipc

} // namespace mozilla

[ Dauer der Verarbeitung: 0.27 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge