Skip to main content

browser_protocol/serviceworker/
mod.rs

1use serde::{Serialize, Deserialize};
2
3
4pub type RegistrationID = String;
5
6/// ServiceWorker registration.
7
8#[derive(Debug, Clone, Serialize, Deserialize, Default)]
9#[serde(rename_all = "camelCase")]
10pub struct ServiceWorkerRegistration {
11
12    pub registrationId: RegistrationID,
13
14    pub scopeURL: String,
15
16    pub isDeleted: bool,
17}
18
19
20#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21pub enum ServiceWorkerVersionRunningStatus {
22    #[default]
23    Stopped,
24    Starting,
25    Running,
26    Stopping,
27}
28
29
30#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
31pub enum ServiceWorkerVersionStatus {
32    #[default]
33    New,
34    Installing,
35    Installed,
36    Activating,
37    Activated,
38    Redundant,
39}
40
41/// ServiceWorker version.
42
43#[derive(Debug, Clone, Serialize, Deserialize, Default)]
44#[serde(rename_all = "camelCase")]
45pub struct ServiceWorkerVersion {
46
47    pub versionId: String,
48
49    pub registrationId: RegistrationID,
50
51    pub scriptURL: String,
52
53    pub runningStatus: ServiceWorkerVersionRunningStatus,
54
55    pub status: ServiceWorkerVersionStatus,
56    /// The Last-Modified header value of the main script.
57
58    #[serde(skip_serializing_if = "Option::is_none")]
59    pub scriptLastModified: Option<f64>,
60    /// The time at which the response headers of the main script were received from the server.
61    /// For cached script it is the last time the cache entry was validated.
62
63    #[serde(skip_serializing_if = "Option::is_none")]
64    pub scriptResponseTime: Option<f64>,
65
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub controlledClients: Option<Vec<crate::target::TargetID>>,
68
69    #[serde(skip_serializing_if = "Option::is_none")]
70    pub targetId: Option<crate::target::TargetID>,
71
72    #[serde(skip_serializing_if = "Option::is_none")]
73    pub routerRules: Option<String>,
74}
75
76/// ServiceWorker error message.
77
78#[derive(Debug, Clone, Serialize, Deserialize, Default)]
79#[serde(rename_all = "camelCase")]
80pub struct ServiceWorkerErrorMessage {
81
82    pub errorMessage: String,
83
84    pub registrationId: RegistrationID,
85
86    pub versionId: String,
87
88    pub sourceURL: String,
89
90    pub lineNumber: i64,
91
92    pub columnNumber: i64,
93}
94
95
96#[derive(Debug, Clone, Serialize, Deserialize, Default)]
97#[serde(rename_all = "camelCase")]
98pub struct DeliverPushMessageParams {
99
100    pub origin: String,
101
102    pub registrationId: RegistrationID,
103
104    pub data: String,
105}
106
107
108#[derive(Debug, Clone, Serialize, Deserialize, Default)]
109#[serde(rename_all = "camelCase")]
110pub struct DispatchSyncEventParams {
111
112    pub origin: String,
113
114    pub registrationId: RegistrationID,
115
116    pub tag: String,
117
118    pub lastChance: bool,
119}
120
121
122#[derive(Debug, Clone, Serialize, Deserialize, Default)]
123#[serde(rename_all = "camelCase")]
124pub struct DispatchPeriodicSyncEventParams {
125
126    pub origin: String,
127
128    pub registrationId: RegistrationID,
129
130    pub tag: String,
131}
132
133
134#[derive(Debug, Clone, Serialize, Deserialize, Default)]
135#[serde(rename_all = "camelCase")]
136pub struct SetForceUpdateOnPageLoadParams {
137
138    pub forceUpdateOnPageLoad: bool,
139}
140
141
142#[derive(Debug, Clone, Serialize, Deserialize, Default)]
143#[serde(rename_all = "camelCase")]
144pub struct SkipWaitingParams {
145
146    pub scopeURL: String,
147}
148
149
150#[derive(Debug, Clone, Serialize, Deserialize, Default)]
151#[serde(rename_all = "camelCase")]
152pub struct StartWorkerParams {
153
154    pub scopeURL: String,
155}
156
157
158#[derive(Debug, Clone, Serialize, Deserialize, Default)]
159#[serde(rename_all = "camelCase")]
160pub struct StopWorkerParams {
161
162    pub versionId: String,
163}
164
165
166#[derive(Debug, Clone, Serialize, Deserialize, Default)]
167#[serde(rename_all = "camelCase")]
168pub struct UnregisterParams {
169
170    pub scopeURL: String,
171}
172
173
174#[derive(Debug, Clone, Serialize, Deserialize, Default)]
175#[serde(rename_all = "camelCase")]
176pub struct UpdateRegistrationParams {
177
178    pub scopeURL: String,
179}