Skip to content

Commit ead967e

Browse files
committed
servo: Merge #14508 - Rewrite determine_request_referrer() to explicitly limit it to the checks it can do (from servo:determine_request_referrer); r=jdm,frewsxcv
Checks for the Client value should reside in the script thread. I also noted some other issues in this code. Source-Repo: https://github.com/servo/servo Source-Revision: 882d5512bb9aa7263864fb18d702c1efb6401914 UltraBlame original commit: bb6d259f6f5dc49a5ef21de8d9d8177f7ce59413
1 parent c732f99 commit ead967e

File tree

3 files changed

+187
-190
lines changed

3 files changed

+187
-190
lines changed

servo/components/net/fetch/methods.rs

Lines changed: 106 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,12 @@ use
250250
std
251251
:
252252
:
253+
mem
254+
;
255+
use
256+
std
257+
:
258+
:
253259
rc
254260
:
255261
:
@@ -1245,43 +1251,81 @@ referrer_policy
12451251
/
12461252
Step
12471253
8
1248-
if
1249-
*
1254+
{
1255+
let
1256+
mut
1257+
referrer
1258+
=
12501259
request
12511260
.
12521261
referrer
12531262
.
1254-
borrow
1263+
borrow_mut
12551264
(
12561265
)
1257-
!
1266+
;
1267+
let
1268+
referrer_url
12581269
=
1270+
match
1271+
mem
1272+
:
1273+
:
1274+
replace
1275+
(
1276+
&
1277+
mut
1278+
*
1279+
referrer
12591280
Referrer
12601281
:
12611282
:
12621283
NoReferrer
1284+
)
12631285
{
1264-
/
1265-
/
1266-
remove
12671286
Referrer
1268-
headers
1269-
set
1270-
in
1271-
past
1272-
redirects
1273-
/
1274-
preflights
1287+
:
1288+
:
1289+
NoReferrer
1290+
=
1291+
>
1292+
None
1293+
Referrer
1294+
:
1295+
:
1296+
Client
1297+
=
1298+
>
1299+
{
12751300
/
12761301
/
1302+
FIXME
1303+
(
1304+
#
1305+
14507
1306+
)
1307+
:
1308+
We
1309+
should
1310+
never
1311+
get
12771312
this
1278-
stops
1279-
the
1280-
assertion
1313+
value
1314+
here
1315+
;
1316+
it
1317+
should
1318+
/
1319+
/
1320+
already
1321+
have
1322+
been
1323+
handled
12811324
in
1282-
determine_request_referrer
1283-
from
1284-
failing
1325+
the
1326+
script
1327+
thread
1328+
.
12851329
request
12861330
.
12871331
headers
@@ -1299,33 +1343,49 @@ RefererHeader
12991343
(
13001344
)
13011345
;
1302-
let
1303-
referrer_url
1304-
=
1305-
determine_request_referrer
1346+
None
1347+
}
1348+
Referrer
1349+
:
1350+
:
1351+
ReferrerUrl
13061352
(
1307-
&
1308-
mut
1309-
*
1353+
url
1354+
)
1355+
=
1356+
>
1357+
{
13101358
request
13111359
.
13121360
headers
13131361
.
13141362
borrow_mut
13151363
(
13161364
)
1317-
referrer_policy
1318-
request
13191365
.
1320-
referrer
1321-
.
1322-
borrow_mut
1366+
remove
1367+
:
1368+
:
1369+
<
1370+
RefererHeader
1371+
>
13231372
(
13241373
)
1374+
;
1375+
determine_request_referrer
1376+
(
1377+
&
1378+
mut
1379+
*
1380+
request
13251381
.
1326-
take
1382+
headers
1383+
.
1384+
borrow_mut
13271385
(
13281386
)
1387+
referrer_policy
1388+
url
13291389
request
13301390
.
13311391
current_url
@@ -1336,25 +1396,31 @@ clone
13361396
(
13371397
)
13381398
)
1399+
}
1400+
}
13391401
;
1340-
*
1341-
request
1342-
.
1343-
referrer
1344-
.
1345-
borrow_mut
1402+
if
1403+
let
1404+
Some
13461405
(
1406+
referrer_url
13471407
)
13481408
=
1409+
referrer_url
1410+
{
1411+
*
1412+
referrer
1413+
=
13491414
Referrer
13501415
:
13511416
:
1352-
from_url
1417+
ReferrerUrl
13531418
(
13541419
referrer_url
13551420
)
13561421
;
13571422
}
1423+
}
13581424
/
13591425
/
13601426
Step

0 commit comments

Comments
 (0)