Open Bug 906714 (url) Opened 11 years ago Updated 3 days ago

[meta] Implement URL parser per URL Standard

Categories

(Core :: Networking, task, P5)

task

Tracking

()

People

(Reporter: annevk, Unassigned)

References

(Depends on 21 open bugs, Blocks 2 open bugs, )

Details

(Keywords: meta, Whiteboard: [necko-would-take])

We should replace our current URL parser with the one described by http://url.spec.whatwg.org/ per https://groups.google.com/d/msg/mozilla.dev.platform/V0XjJ-uQbcI/37_DpJzgTbAJ

Tests: https://github.com/annevk/url/ (also has "reference" implementation in JavaScript)
Depends on: 916466
Depends on: 652186
Depends on: 960014
Depends on: 996055
Depends on: 1007125
Depends on: 1007132
I think this time we should use something better then strlen, strstr, strchr etc ;)

Adding dep on bug 1024056.
Depends on: 1024056
Depends on: 1025589
Just in case someone is working on this, Simon wrote a URL parser in Rust: https://github.com/servo/rust-url/ We plan to change the specification a bit to resemble that structure more as it's a lot nicer: https://www.w3.org/Bugs/Public/show_bug.cgi?id=25946
Depends on: 309671
Depends on: 1082723
No longer depends on: 1023468
Depends on: 1023468
Depends on: 1093611
Depends on: 1121826
Depends on: 1197123
Depends on: 1213870
Alias: url
Depends on: 1225255
Whiteboard: [necko-would-take]
No longer depends on: 916466
Depends on: 1026938
Depends on: 918331
What is the relationship between this bug and bug 1151899 (use a Rust URL parser)?
If the latter happens soon enough, I'm not sure work on this bug (which is about Gecko implementation?) will be that important.
(sorry, submitted too quickly).
Said differently, should the focus rather be on making sure the rust url parser is conforming to http://url.spec.whatwg.org/ ?
(In reply to David Bruant from comment #3)
> What is the relationship between this bug and bug 1151899 (use a Rust URL
> parser)?
> If the latter happens soon enough, I'm not sure work on this bug (which is
> about Gecko implementation?) will be that important.

Bug 1151899 means switching our parsing backend to the one written in Rust.
While the backend is the most important part of conforming to the spec, this bug also covers other issues, such as the DOM APIs and the URL bar in Firefox.

(In reply to David Bruant from comment #4)
> (sorry, submitted too quickly).
> Said differently, should the focus rather be on making sure the rust url
> parser is conforming to http://url.spec.whatwg.org/ ?

The rust parser is doing quite well in conforming to the spec as far as I can tell. Any issues that are found will definitely be fixed.
Depends on: 1272284
Depends on: 1276144
Depends on: 1311107
Depends on: 1326175
Depends on: 1340526
Depends on: url-oxidation
Depends on: 1347459
Depends on: 1351603
Depends on: 1386683
We already seem to have the web-dev-facing bits of this spec documented, but I'm still adding dev-doc-needed just in case.
Keywords: dev-doc-needed
Bulk change to priority: https://bugzilla.mozilla.org/show_bug.cgi?id=1399258
Priority: -- → P5
Depends on: 1365893
Depends on: 1460233
Depends on: 1464021
Depends on: 1507354
Depends on: 1507357
Depends on: 1322176
Depends on: 1517025
No longer depends on: 918331
Type: defect → task
Blocks: 1555609
Blocks: 1579331
Depends on: 1671908
No longer depends on: 1340200
No longer depends on: 1663964
No longer depends on: 1351603
Depends on: 1601816
Depends on: 1497557
Blocks: 561586

Hear, hear! Traction after 22 years :-)
Thank you for looking into it.

Depends on: 32442
a11y-review: requested → ---
relnote-firefox: ? → ---
Depends on: 1700078
Depends on: 1729733
Depends on: 1718475
Keywords: meta
Summary: Implement URL parser per URL Standard → [meta] Implement URL parser per URL Standard
Depends on: 1752320
Depends on: 1753954
Depends on: 1770387
Severity: normal → S3
See Also: → 771550
Depends on: 1808215
Blocks: interop-2023
Depends on: 1817591
Depends on: 1818269
Depends on: 1831587
Depends on: 1838013
Depends on: 1844815
Depends on: 1845552
Depends on: 1843717

Anticipated fallout of aligning with the URL standard for allowing data: URLs to be base URLs:

No longer depends on: 1023468
Depends on: 1851414
OS: macOS → Unspecified
Hardware: x86 → Unspecified
Depends on: 1853723
Depends on: 1853744
Depends on: interop-2024-url
Depends on: 1877753
Depends on: 1879227
Depends on: 1882456
Depends on: 1887614
Depends on: 1890473
You need to log in before you can comment on or make changes to this bug.