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


Quelle  PRDD.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 GraphicsMessages;
include MemoryReportTypes;
include PrefsTypes;

include protocol PProfiler;
include protocol PRemoteDecoderManager;
include protocol PVideoBridge;

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

include "mozilla/ipc/ByteBufUtils.h";

using mozilla::dom::ContentParentId from "mozilla/dom/ipc/IdType.h";
using mozilla::dom::NativeThreadId from "mozilla/dom/NativeThreadId.h";
using mozilla::media::MediaCodecsSupported from "MediaCodecsSupport.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 {

// This protocol allows the UI process to talk to the RDD
// (RemoteDataDecoder) process. There is one instance of this protocol,
// with the RDDParent living on the main thread of the RDD process and
// the RDDChild living on the main thread of the UI process.
[NeedsOtherPid, ParentProc=RDD, ChildProc=Parent]
protocol PRDD
{
parent:

  async Init(GfxVarUpdate[] vars, FileDescriptor? sandboxBroker,
             bool canRecordReleaseTelemetry,
             bool aIsReadyForBackgroundProcessing);

  async InitProfiler(Endpoint<PProfilerChild> endpoint);

  async NewContentRemoteDecoderManager(
            Endpoint<PRemoteDecoderManagerParent> endpoint, ContentParentId childId);

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

  async PreferenceUpdate(Pref pref);

  async UpdateVar(GfxVarUpdate var);

  async InitVideoBridge(Endpoint<PVideoBridgeChild> endpoint,
                        bool createHardwareDevice,
                        ContentDeviceData contentDeviceData);

#if defined(XP_WIN)
  async GetUntrustedModulesData() returns (UntrustedModulesData? data);

  /**
  * This method is used to notifty 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

  // Tells the RDD 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 RDD 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();

child:

  async InitCrashReporter(NativeThreadId threadId);

  async AddMemoryReport(MemoryReport aReport);

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

  // Update the cached list of codec supported following a check in the
  // RDD parent.
  async UpdateMediaCodecsSupported(MediaCodecsSupported aSupported);

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

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

} // namespace mozilla

[ Dauer der Verarbeitung: 0.26 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