diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-06-23 14:56:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-23 14:56:00 -0700 |
commit | e2a26e7bd0d8089a441bc3072cf15351b0ef1252 (patch) | |
tree | 7c706c26e67d6481e82ebe34f3331c82aa3326fd /components/net_traits/request.rs | |
parent | ba24caf1a544e499593028e8f2f9564ba0e97457 (diff) | |
parent | 6adc653083b0366f2b87ca49bf16a908fe32e4d6 (diff) | |
download | servo-e2a26e7bd0d8089a441bc3072cf15351b0ef1252.tar.gz servo-e2a26e7bd0d8089a441bc3072cf15351b0ef1252.zip |
Auto merge of #17491 - KiChjang:update-fetch, r=jdm
Introduce service-worker mode
Bringing in the spec changes from whatwg/fetch#435.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17491)
<!-- Reviewable:end -->
Diffstat (limited to 'components/net_traits/request.rs')
-rw-r--r-- | components/net_traits/request.rs | 20 |
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; |