summaryrefslogtreecommitdiffstats
path: root/ipc/glue/URIParams.ipdlh
blob: 8b8ba35594fc59d5cebeffc78368266350c5f20e (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
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
/* 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/. */


using struct mozilla::void_t from "ipc/IPCMessageUtils.h";

include PBackgroundSharedTypes;

namespace mozilla {
namespace ipc {

struct SimpleURIParams
{
  nsCString scheme;
  nsCString path;
  nsCString ref;
  nsCString query;
  bool isMutable;
};

struct StandardURLSegment
{
  uint32_t position;
  int32_t length;
};

struct StandardURLParams
{
  uint32_t urlType;
  int32_t port;
  int32_t defaultPort;
  nsCString spec;
  StandardURLSegment scheme;
  StandardURLSegment authority;
  StandardURLSegment username;
  StandardURLSegment password;
  StandardURLSegment host;
  StandardURLSegment path;
  StandardURLSegment filePath;
  StandardURLSegment directory;
  StandardURLSegment baseName;
  StandardURLSegment extension;
  StandardURLSegment query;
  StandardURLSegment ref;
  nsCString originCharset;
  bool isMutable;
  bool supportsFileURL;
  uint32_t hostEncoding;
};

struct JARURIParams
{
  URIParams jarFile;
  URIParams jarEntry;
  nsCString charset;
};

struct IconURIParams
{
  OptionalURIParams uri;
  uint32_t size;
  nsCString contentType;
  nsCString fileName;
  nsCString stockIcon;
  int32_t iconSize;
  int32_t iconState;
};

struct NullPrincipalURIParams
{
  // Purposefully empty. Null principal URIs do not round-trip.
};

struct HostObjectURIParams
{
  SimpleURIParams simpleParams;
  OptionalPrincipalInfo principal;
};

union URIParams
{
  SimpleURIParams;
  StandardURLParams;
  JARURIParams;
  IconURIParams;
  NullPrincipalURIParams;
  JSURIParams;
  SimpleNestedURIParams;
  HostObjectURIParams;
};

union OptionalURIParams
{
  void_t;
  URIParams;
};

struct JSURIParams
{
  SimpleURIParams simpleParams;
  OptionalURIParams baseURI;
};

struct SimpleNestedURIParams
{
  SimpleURIParams simpleParams;
  URIParams innerURI;
};

} // namespace ipc
} // namespace mozilla