Skip to content

Commit 7d43281

Browse files
committed
servo: Merge #17491 - Introduce service-worker mode (from KiChjang:update-fetch); r=jdm
Bringing in the spec changes from whatwg/fetch#435. Source-Repo: https://github.com/servo/servo Source-Revision: e2a26e7bd0d8089a441bc3072cf15351b0ef1252 UltraBlame original commit: 7ad2e4b94b03bb9e821f6962fc7df6fc0f936519
1 parent cdfe5ad commit 7d43281

File tree

6 files changed

+273
-84
lines changed

6 files changed

+273
-84
lines changed

servo/components/net/http_loader.rs

Lines changed: 119 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ request
405405
:
406406
{
407407
ResponseTainting
408+
ServiceWorkersMode
408409
Type
409410
}
410411
;
@@ -3958,29 +3959,109 @@ response
39583959
Step
39593960
3
39603961
if
3961-
!
39623962
request
39633963
.
3964-
skip_service_worker
3965-
&
3966-
&
3964+
service_workers_mode
39673965
!
3966+
=
3967+
ServiceWorkersMode
3968+
:
3969+
:
3970+
None
3971+
{
3972+
/
3973+
/
3974+
Substep
3975+
1
3976+
if
39683977
request
39693978
.
3970-
is_service_worker_global_scope
3979+
service_workers_mode
3980+
=
3981+
=
3982+
ServiceWorkersMode
3983+
:
3984+
:
3985+
All
39713986
{
39723987
/
39733988
/
3989+
TODO
3990+
(
3991+
handle
3992+
fetch
3993+
unimplemented
3994+
)
3995+
}
3996+
/
3997+
/
39743998
Substep
3975-
1
3999+
2
4000+
if
4001+
response
4002+
.
4003+
is_none
4004+
(
4005+
)
4006+
&
4007+
&
4008+
request
4009+
.
4010+
is_subresource_request
4011+
(
4012+
)
4013+
&
4014+
&
4015+
match
4016+
request
4017+
.
4018+
origin
4019+
{
4020+
Origin
4021+
:
4022+
:
4023+
Origin
4024+
(
4025+
ref
4026+
origin
4027+
)
4028+
if
4029+
*
4030+
origin
4031+
=
4032+
=
4033+
request
4034+
.
4035+
url
4036+
(
4037+
)
4038+
.
4039+
origin
4040+
(
4041+
)
4042+
=
4043+
>
4044+
true
4045+
_
4046+
=
4047+
>
4048+
false
4049+
}
4050+
{
39764051
/
39774052
/
39784053
TODO
39794054
(
39804055
handle
4056+
foreign
39814057
fetch
39824058
unimplemented
39834059
)
4060+
}
4061+
/
4062+
/
4063+
Substep
4064+
3
39844065
if
39854066
let
39864067
Some
@@ -3993,7 +4074,19 @@ response
39934074
{
39944075
/
39954076
/
3996-
Substep
4077+
Subsubstep
4078+
1
4079+
/
4080+
/
4081+
TODO
4082+
:
4083+
transmit
4084+
body
4085+
for
4086+
request
4087+
/
4088+
/
4089+
Subsubstep
39974090
2
39984091
/
39994092
/
@@ -4009,7 +4102,7 @@ on
40094102
response
40104103
/
40114104
/
4012-
Substep
4105+
Subsubstep
40134106
3
40144107
if
40154108
(
@@ -4115,7 +4208,7 @@ into
41154208
}
41164209
/
41174210
/
4118-
Substep
4211+
Subsubstep
41194212
4
41204213
/
41214214
/
@@ -4335,12 +4428,27 @@ clone
43354428
/
43364429
Substep
43374430
2
4431+
if
43384432
request
43394433
.
4340-
skip_service_worker
4434+
redirect_mode
43414435
=
4342-
true
4436+
=
4437+
RedirectMode
4438+
:
4439+
:
4440+
Follow
4441+
{
4442+
request
4443+
.
4444+
service_workers_mode
4445+
=
4446+
ServiceWorkersMode
4447+
:
4448+
:
4449+
Foreign
43434450
;
4451+
}
43444452
/
43454453
/
43464454
Substep
@@ -8697,9 +8805,6 @@ clone
86978805
)
86988806
request
86998807
.
8700-
is_service_worker_global_scope
8701-
request
8702-
.
87038808
pipeline_id
87048809
)
87058810
;

servo/components/net_traits/request.rs

Lines changed: 98 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,57 @@ OnlyIfCached
528528
/
529529
/
530530
[
531+
Service
532+
-
533+
workers
534+
mode
535+
]
536+
(
537+
https
538+
:
539+
/
540+
/
541+
fetch
542+
.
543+
spec
544+
.
545+
whatwg
546+
.
547+
org
548+
/
549+
#
550+
request
551+
-
552+
service
553+
-
554+
workers
555+
-
556+
mode
557+
)
558+
#
559+
[
560+
derive
561+
(
562+
Copy
563+
Clone
564+
PartialEq
565+
Serialize
566+
Deserialize
567+
HeapSizeOf
568+
)
569+
]
570+
pub
571+
enum
572+
ServiceWorkersMode
573+
{
574+
All
575+
Foreign
576+
None
577+
}
578+
/
579+
/
580+
/
581+
[
531582
Redirect
532583
mode
533584
]
@@ -830,6 +881,10 @@ Vec
830881
u8
831882
>
832883
>
884+
pub
885+
service_workers_mode
886+
:
887+
ServiceWorkersMode
833888
/
834889
/
835890
TODO
@@ -1002,6 +1057,12 @@ false
10021057
body
10031058
:
10041059
None
1060+
service_workers_mode
1061+
:
1062+
ServiceWorkersMode
1063+
:
1064+
:
1065+
All
10051066
type_
10061067
:
10071068
Type
@@ -1328,10 +1389,6 @@ TODO
13281389
client
13291390
object
13301391
pub
1331-
is_service_worker_global_scope
1332-
:
1333-
bool
1334-
pub
13351392
window
13361393
:
13371394
Window
@@ -1367,10 +1424,32 @@ pub
13671424
keep_alive
13681425
:
13691426
bool
1427+
/
1428+
/
1429+
https
1430+
:
1431+
/
1432+
/
1433+
fetch
1434+
.
1435+
spec
1436+
.
1437+
whatwg
1438+
.
1439+
org
1440+
/
1441+
#
1442+
request
1443+
-
1444+
service
1445+
-
1446+
workers
1447+
-
1448+
mode
13701449
pub
1371-
skip_service_worker
1450+
service_workers_mode
13721451
:
1373-
bool
1452+
ServiceWorkersMode
13741453
/
13751454
/
13761455
/
@@ -1880,9 +1959,6 @@ Option
18801959
<
18811960
Origin
18821961
>
1883-
is_service_worker_global_scope
1884-
:
1885-
bool
18861962
pipeline_id
18871963
:
18881964
Option
@@ -1922,9 +1998,6 @@ false
19221998
body
19231999
:
19242000
None
1925-
is_service_worker_global_scope
1926-
:
1927-
is_service_worker_global_scope
19282001
window
19292002
:
19302003
Window
@@ -1934,9 +2007,12 @@ Client
19342007
keep_alive
19352008
:
19362009
false
1937-
skip_service_worker
2010+
service_workers_mode
19382011
:
1939-
false
2012+
ServiceWorkersMode
2013+
:
2014+
:
2015+
All
19402016
initiator
19412017
:
19422018
Initiator
@@ -2081,7 +2157,6 @@ origin
20812157
)
20822158
)
20832159
)
2084-
false
20852160
init
20862161
.
20872162
pipeline_id
@@ -2121,6 +2196,14 @@ body
21212196
;
21222197
req
21232198
.
2199+
service_workers_mode
2200+
=
2201+
init
2202+
.
2203+
service_workers_mode
2204+
;
2205+
req
2206+
.
21242207
type_
21252208
=
21262209
init

0 commit comments

Comments
 (0)