summaryrefslogtreecommitdiffstats
path: root/dom/fetch/PFetch.ipdl
blob: 904ef0738db68b9ce687c2fe827d58e57fb181b5 (plain)
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
/* 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 PBackground;

include ClientIPCTypes;
include FetchTypes;
include IPCServiceWorkerDescriptor;
include NeckoChannelParams;
include PBackgroundSharedTypes;
include PerformanceTimingTypes;

namespace mozilla {
namespace dom {

struct FetchOpArgs{
  IPCInternalRequest request;
  PrincipalInfo principalInfo;
  nsCString workerScript;
  IPCClientInfo clientInfo;
  IPCServiceWorkerDescriptor? controller;
  CookieJarSettingsArgs? cookieJarSettings;
  bool needOnDataAvailable;
  bool hasCSPEventListener;
  uint64_t associatedBrowsingContextID;
};

protocol PFetch {
  manager PBackground;

  parent:
    async FetchOp(FetchOpArgs aArgs);

    async AbortFetchOp();

  child:
    async OnResponseAvailableInternal(ParentToChildInternalResponse aResponse);

    async OnResponseEnd(ResponseEndArgs aResponseEndArgs);

    async OnDataAvailable();

    async OnFlushConsoleReport(ConsoleReportCollected[] aReports);

    async OnCSPViolationEvent(nsString aJSON);

    async OnReportPerformanceTiming(ResponseTiming aTiming);

    async OnNotifyNetworkMonitorAlternateStack(uint64_t aChannelID);

    async __delete__(nsresult aResult);
};

}
}