зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1579331 - URL constructor fails when input is a data URL without a comma r=baku
Differential Revision: https://phabricator.services.mozilla.com/D45372 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
0725033ef3
Коммит
96689a4a96
|
@ -50,7 +50,7 @@ if ("ShadowRoot" in this) {
|
||||||
</menu>
|
</menu>
|
||||||
<menu>
|
<menu>
|
||||||
<menuitem label="Item w/ icon" icon="favicon.ico"></menuitem>
|
<menuitem label="Item w/ icon" icon="favicon.ico"></menuitem>
|
||||||
<menuitem label="Item w/ bad icon" icon="data://www.mozilla.org/favicon.ico"></menuitem>
|
<menuitem label="Item w/ bad icon" icon="http://example.com%0a%23.google.com/"></menuitem>
|
||||||
</menu>
|
</menu>
|
||||||
<menu label="Submenu">
|
<menu label="Submenu">
|
||||||
<menuitem type="radio" label="Radio1" radiogroup="rg"></menuitem>
|
<menuitem type="radio" label="Radio1" radiogroup="rg"></menuitem>
|
||||||
|
|
|
@ -155,11 +155,15 @@ nsresult nsDataHandler::ParsePathWithoutRef(
|
||||||
|
|
||||||
// First, find the start of the data
|
// First, find the start of the data
|
||||||
int32_t commaIdx = aPath.FindChar(',');
|
int32_t commaIdx = aPath.FindChar(',');
|
||||||
if (commaIdx == kNotFound) {
|
|
||||||
|
// This is a hack! When creating a URL using the DOM API we want to ignore
|
||||||
|
// if a comma is missing. But if we're actually loading a data: URI, in which
|
||||||
|
// case aContentCharset is not null, then we want to return an error if a
|
||||||
|
// comma is missing.
|
||||||
|
if (aContentCharset && commaIdx == kNotFound) {
|
||||||
return NS_ERROR_MALFORMED_URI;
|
return NS_ERROR_MALFORMED_URI;
|
||||||
}
|
}
|
||||||
|
if (commaIdx == 0 || commaIdx == kNotFound) {
|
||||||
if (commaIdx == 0) {
|
|
||||||
// Nothing but data.
|
// Nothing but data.
|
||||||
aContentType.AssignLiteral("text/plain");
|
aContentType.AssignLiteral("text/plain");
|
||||||
if (aContentCharset) {
|
if (aContentCharset) {
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[location-protocol-setter-non-broken-weird.html]
|
|
||||||
[Set location.protocol to data]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[location-protocol-setter-non-broken.html]
|
|
||||||
[Set HTTP URL frame location.protocol to data]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -2,18 +2,9 @@
|
||||||
[Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
[Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:/example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar>]
|
[Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <data:test# »> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <gopher://foo:70/> against <about:blank>]
|
[Parsing origin: <gopher://foo:70/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -23,23 +14,15 @@
|
||||||
[Parsing origin: <gopher:/example.com/> against <about:blank>]
|
[Parsing origin: <gopher:/example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:/example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <gopher:example.com/> against <about:blank>]
|
[Parsing origin: <gopher:example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <http::b@www.example.com> against <about:blank>]
|
[Parsing origin: <http::b@www.example.com> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:/../> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <https://0x.0x.0> against <about:blank>]
|
[Parsing origin: <https://0x.0x.0> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>]
|
[Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -2,18 +2,9 @@
|
||||||
[Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
[Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:/example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar>]
|
[Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <data:test# »> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <gopher://foo:70/> against <about:blank>]
|
[Parsing origin: <gopher://foo:70/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -23,23 +14,15 @@
|
||||||
[Parsing origin: <gopher:/example.com/> against <about:blank>]
|
[Parsing origin: <gopher:/example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:/example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <gopher:example.com/> against <about:blank>]
|
[Parsing origin: <gopher:example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <http::b@www.example.com> against <about:blank>]
|
[Parsing origin: <http::b@www.example.com> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <data:/../> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing origin: <https://0x.0x.0> against <about:blank>]
|
[Parsing origin: <https://0x.0x.0> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>]
|
[Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -20,15 +20,9 @@
|
||||||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing: <data:/example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing: <data:example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>]
|
[Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -53,9 +47,6 @@
|
||||||
[Parsing: <http://example.com/foo/%2e> against <about:blank>]
|
[Parsing: <http://example.com/foo/%2e> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing: <data:test# »> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing: <httpa://foo:80/> against <about:blank>]
|
[Parsing: <httpa://foo:80/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -68,15 +59,9 @@
|
||||||
[Parsing: <gopher:/example.com/> against <about:blank>]
|
[Parsing: <gopher:/example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing: <data:/example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing: <gopher:example.com/> against <about:blank>]
|
[Parsing: <gopher:example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing: <data:example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing: <http::b@www.example.com> against <about:blank>]
|
[Parsing: <http::b@www.example.com> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -220,7 +205,7 @@
|
||||||
|
|
||||||
[Parsing: <//d:> against <file:///C:/a/b>]
|
[Parsing: <//d:> against <file:///C:/a/b>]
|
||||||
expected:
|
expected:
|
||||||
if (os == "win"): FAIL
|
if os == "win": FAIL
|
||||||
|
|
||||||
[Parsing: <sc://ñ> against <about:blank>]
|
[Parsing: <sc://ñ> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -414,9 +399,6 @@
|
||||||
[Parsing: <https://<2F>> against <about:blank>]
|
[Parsing: <https://<2F>> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Parsing: <data:test# »> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parsing: <sc://ñ?x> against <about:blank>]
|
[Parsing: <sc://ñ?x> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -425,3 +407,4 @@
|
||||||
|
|
||||||
[Parsing: <#x> against <sc://ñ>]
|
[Parsing: <#x> against <sc://ñ>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -2,18 +2,9 @@
|
||||||
[Origin parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
[Origin parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Origin parsing: <data:/example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Origin parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
[Origin parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Origin parsing: <data:example.com/> against <http://example.org/foo/bar>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Origin parsing: <data:test# »> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Origin parsing: <gopher://foo:70/> against <about:blank>]
|
[Origin parsing: <gopher://foo:70/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -23,23 +14,15 @@
|
||||||
[Origin parsing: <gopher:/example.com/> against <about:blank>]
|
[Origin parsing: <gopher:/example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Origin parsing: <data:/example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Origin parsing: <gopher:example.com/> against <about:blank>]
|
[Origin parsing: <gopher:example.com/> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Origin parsing: <data:example.com/> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Origin parsing: <http::b@www.example.com> against <about:blank>]
|
[Origin parsing: <http::b@www.example.com> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Origin parsing: <data:/../> against <about:blank>]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Origin parsing: <https://0x.0x.0> against <about:blank>]
|
[Origin parsing: <https://0x.0x.0> against <about:blank>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Origin parsing: <ssh://example.com/foo/bar.git> against <http://example.org/>]
|
[Origin parsing: <ssh://example.com/foo/bar.git> against <http://example.org/>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче