mirror of
https://github.com/servo/servo.git
synced 2025-09-30 00:29:14 +01:00
script: Strip javascript
URL scheme using Position::AfterScheme
rather than Position::BeforePath
(#38599)
This makes the initial split match step 2 of https://html.spec.whatwg.org/multipage/browsing-the-web.html#evaluate-a-javascript%3A-url. Testing: Covered by WPT tests. Fixes: #38547 --------- Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
This commit is contained in:
parent
be5e7a982b
commit
b747589286
4 changed files with 8 additions and 6 deletions
|
@ -3592,7 +3592,7 @@ impl ScriptThread {
|
||||||
// Start with the scheme data of the parsed URL;
|
// Start with the scheme data of the parsed URL;
|
||||||
// append question mark and query component, if any;
|
// append question mark and query component, if any;
|
||||||
// append number sign and fragment component if any.
|
// append number sign and fragment component if any.
|
||||||
let encoded = &load_data.url.clone()[Position::BeforePath..];
|
let encoded = &load_data.url[Position::AfterScheme..][1..];
|
||||||
|
|
||||||
// Percent-decode (8.) and UTF-8 decode (9.)
|
// Percent-decode (8.) and UTF-8 decode (9.)
|
||||||
let script_source = percent_decode(encoded.as_bytes()).decode_utf8_lossy();
|
let script_source = percent_decode(encoded.as_bytes()).decode_utf8_lossy();
|
||||||
|
|
2
tests/wpt/meta/MANIFEST.json
vendored
2
tests/wpt/meta/MANIFEST.json
vendored
|
@ -835815,7 +835815,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"javascript-urls.window.js": [
|
"javascript-urls.window.js": [
|
||||||
"4f617beca17082dc8459acb73bca781900170593",
|
"3e3a53003dde5fae29ced12ce9f2c26c7520a87c",
|
||||||
[
|
[
|
||||||
"url/javascript-urls.window.html",
|
"url/javascript-urls.window.html",
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[javascript-urls.window.html]
|
|
||||||
expected: ERROR
|
|
||||||
[javascript: URL without an opaque path]
|
|
||||||
expected: FAIL
|
|
|
@ -19,6 +19,12 @@
|
||||||
"property": "shouldNotExistB",
|
"property": "shouldNotExistB",
|
||||||
"expected": undefined
|
"expected": undefined
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"description": "javascript: URL with extra slashes at the start",
|
||||||
|
"input": "javascript:///globalThis.shouldNotExistC=1",
|
||||||
|
"property": "shouldNotExistC",
|
||||||
|
"expected": undefined
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "javascript: URL without an opaque path",
|
"description": "javascript: URL without an opaque path",
|
||||||
"input": "javascript://host/1%0a//../0/;globalThis.shouldBeOne=1;/%0aglobalThis.shouldBeOne=2;/..///",
|
"input": "javascript://host/1%0a//../0/;globalThis.shouldBeOne=1;/%0aglobalThis.shouldBeOne=2;/..///",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue