DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
/* -*- Mode: C++; tab-width: 2; 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 protocol PDNSRequest;
include protocol PSocketProcessBridge;
include protocol PProfiler;
include protocol PWebrtcTCPSocket;
include protocol PHttpTransaction;
include protocol PHttpConnectionMgr;
include protocol PFileDescriptorSet;
include protocol PChildToParentStream;
include protocol PParentToChildStream;
include protocol PInputChannelThrottleQueue;
include protocol PBackground;
include protocol PAltService;
include protocol PAltSvcTransaction;
include protocol PTRRService;
include protocol PProxyConfigLookup;
include protocol PNativeDNSResolverOverride;

include MemoryReportTypes;
include NeckoChannelParams;
include PrefsTypes;
include PSMIPCTypes;

using mozilla::dom::NativeThreadId from "mozilla/dom/TabMessageUtils.h";
using mozilla::dom::TabId from "mozilla/dom/ipc/IdType.h";
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";
using base::ProcessId from "base/process.h";
using mozilla::OriginAttributes from "mozilla/ipc/BackgroundUtils.h";
using PRTime from "prtime.h";
using refcounted class nsIURI from "mozilla/ipc/URIUtils.h";

namespace mozilla {
namespace net {

sync protocol PSocketProcess
{
  manages PDNSRequest;
  manages PWebrtcTCPSocket;
  manages PFileDescriptorSet;
  manages PHttpTransaction;
  manages PHttpConnectionMgr;
  manages PChildToParentStream;
  manages PParentToChildStream;
  manages PInputChannelThrottleQueue;
  manages PAltService;
  manages PAltSvcTransaction;
  manages PTRRService;
  manages PProxyConfigLookup;
  manages PNativeDNSResolverOverride;

parent:
  async InitCrashReporter(NativeThreadId threadId);
  async AddMemoryReport(MemoryReport aReport);
  async FinishMemoryReport(uint32_t aGeneration);
  // 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);

  /* tabId is only required for web-proxy support, which isn't always needed */
  async PWebrtcTCPSocket(TabId? tabId);
  async PChildToParentStream();
  async ObserveHttpActivity(HttpActivityArgs aActivityArgs,
                            uint32_t aActivityType,
                            uint32_t aActivitySubtype,
                            PRTime   aTimestamp,
                            uint64_t aExtraSizeData,
                            nsCString aExtraStringData);
  async InitBackground(Endpoint<PBackgroundParent> aEndpoint);
  async PAltService();
  sync GetTLSClientCert(nsCString aHostName,
                        OriginAttributes aOriginAttributes,
                        int32_t aPort,
                        uint32_t aProviderFlags,
                        uint32_t aProviderTlsFlags,
                        ByteArray aServerCert,
                        ByteArray? aClientCert,
                        ByteArray[] aCollectedCANames)
    returns (bool aSucceeded, ByteArray aOutCert, ByteArray aOutKey, ByteArray[] aBuiltChain);
  async PProxyConfigLookup(nsIURI aUri, uint32_t aFlags);
  async CachePushCheck(nsIURI aPushedURL,
                       OriginAttributes aOriginAttributes,
                       nsCString aRequestString)
    returns (bool aAccepted);

child:
  async PreferenceUpdate(Pref pref);
  async RequestMemoryReport(uint32_t generation,
                            bool anonymize,
                            bool minimizeMemoryUsage,
                            FileDescriptor? DMDFile);
  async SetOffline(bool offline);
  async InitLinuxSandbox(FileDescriptor? sandboxBroker);
  async InitSocketProcessBridgeParent(ProcessId processId, Endpoint<PSocketProcessBridgeParent> endpoint);
  async InitProfiler(Endpoint<PProfilerChild> aEndpoint);
  // test-only
  async SocketProcessTelemetryPing();

  async PHttpTransaction();
  async PParentToChildStream();
  async PHttpConnectionMgr();

  async OnHttpActivityDistributorActivated(bool aIsActivated);
  async PInputChannelThrottleQueue(uint32_t meanBytesPerSecond,
                                   uint32_t maxBytesPerSecond);
  async PAltSvcTransaction(HttpConnectionInfoCloneArgs aConnInfo,
                           uint32_t aCaps);
  async ClearSessionCache();
  async PTRRService(bool aCaptiveIsPassed,
                    bool aParentalControlEnabled,
                    nsCString[] aDNSSuffixList);
  async PNativeDNSResolverOverride();

both:
  async PFileDescriptorSet(FileDescriptor fd);
  async PDNSRequest(nsCString hostName, nsCString trrServer, uint16_t type,
                    OriginAttributes originAttributes, uint32_t flags);
};

} // namespace net
} // namespace mozilla