aboutsummaryrefslogtreecommitdiffstats
path: root/components/net_traits/request.rs
diff options
context:
space:
mode:
authorKeith Yeung <kungfukeith11@gmail.com>2017-06-22 23:48:07 -0700
committerKeith Yeung <kungfukeith11@gmail.com>2017-06-22 23:48:07 -0700
commit6adc653083b0366f2b87ca49bf16a908fe32e4d6 (patch)
tree30108acc4c20162c30a02d80fccd36cf6a3677c8 /components/net_traits/request.rs
parent6342a4b455e7714d42b9f8379eec7eec6262abb6 (diff)
downloadservo-6adc653083b0366f2b87ca49bf16a908fe32e4d6.tar.gz
servo-6adc653083b0366f2b87ca49bf16a908fe32e4d6.zip
Introduce service-worker mode
Diffstat (limited to 'components/net_traits/request.rs')
-rw-r--r--components/net_traits/request.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/components/net_traits/request.rs b/components/net_traits/request.rs
index 74f58d6f0c1..bc035ec5c3e 100644
--- a/components/net_traits/request.rs
+++ b/components/net_traits/request.rs
@@ -97,6 +97,14 @@ pub enum CacheMode {
OnlyIfCached,
}
+/// [Service-workers mode](https://fetch.spec.whatwg.org/#request-service-workers-mode)
+#[derive(Copy, Clone, PartialEq, Serialize, Deserialize, HeapSizeOf)]
+pub enum ServiceWorkersMode {
+ All,
+ Foreign,
+ None,
+}
+
/// [Redirect mode](https://fetch.spec.whatwg.org/#concept-request-redirect-mode)
#[derive(Copy, Clone, PartialEq, Serialize, Deserialize, HeapSizeOf)]
pub enum RedirectMode {
@@ -140,6 +148,7 @@ pub struct RequestInit {
pub headers: Headers,
pub unsafe_request: bool,
pub body: Option<Vec<u8>>,
+ pub service_workers_mode: ServiceWorkersMode,
// TODO: client object
pub type_: Type,
pub destination: Destination,
@@ -170,6 +179,7 @@ impl Default for RequestInit {
headers: Headers::new(),
unsafe_request: false,
body: None,
+ service_workers_mode: ServiceWorkersMode::All,
type_: Type::None,
destination: Destination::None,
synchronous: false,
@@ -208,12 +218,12 @@ pub struct Request {
/// https://fetch.spec.whatwg.org/#concept-request-body
pub body: Option<Vec<u8>>,
// TODO: client object
- pub is_service_worker_global_scope: bool,
pub window: Window,
// TODO: target browsing context
/// https://fetch.spec.whatwg.org/#request-keepalive-flag
pub keep_alive: bool,
- pub skip_service_worker: bool,
+ // https://fetch.spec.whatwg.org/#request-service-workers-mode
+ pub service_workers_mode: ServiceWorkersMode,
/// https://fetch.spec.whatwg.org/#concept-request-initiator
pub initiator: Initiator,
/// https://fetch.spec.whatwg.org/#concept-request-type
@@ -257,7 +267,6 @@ pub struct Request {
impl Request {
pub fn new(url: ServoUrl,
origin: Option<Origin>,
- is_service_worker_global_scope: bool,
pipeline_id: Option<PipelineId>)
-> Request {
Request {
@@ -267,10 +276,9 @@ impl Request {
headers: Headers::new(),
unsafe_request: false,
body: None,
- is_service_worker_global_scope: is_service_worker_global_scope,
window: Window::Client,
keep_alive: false,
- skip_service_worker: false,
+ service_workers_mode: ServiceWorkersMode::All,
initiator: Initiator::None,
type_: Type::None,
destination: Destination::None,
@@ -295,12 +303,12 @@ impl Request {
pub fn from_init(init: RequestInit) -> Request {
let mut req = Request::new(init.url.clone(),
Some(Origin::Origin(init.origin.origin())),
- false,
init.pipeline_id);
req.method = init.method;
req.headers = init.headers;
req.unsafe_request = init.unsafe_request;
req.body = init.body;
+ req.service_workers_mode = init.service_workers_mode;
req.type_ = init.type_;
req.destination = init.destination;
req.synchronous = init.synchronous;