WebKit Bugzilla
Attachment 361842 Details for
Bug 182325
: Align with Fetch on data: URLs
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-182325-20190212232646.patch (text/plain), 12.21 KB, created by
Rob Buis
on 2019-02-12 14:26:47 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Rob Buis
Created:
2019-02-12 14:26:47 PST
Size:
12.21 KB
patch
obsolete
>Subversion Revision: 241291 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3078ce9844bc141dae50d0d25f038a39c436ca39..e2dcc8236e907518ac0da0f1dd9d839ac11e0de8 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2019-02-12 Rob Buis <rbuis@igalia.com> >+ >+ Align with Fetch on data: URLs >+ https://bugs.webkit.org/show_bug.cgi?id=182325 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The MIME type part of the data url should be serialized as >+ specified in step 3 under "data" [1]. >+ >+ Test: web-platform-tests/fetch/data-urls/processing.any.js >+ >+ [1] https://fetch.spec.whatwg.org/#concept-scheme-fetch >+ >+ * platform/network/DataURLDecoder.cpp: >+ (WebCore::DataURLDecoder::parseMediaType): >+ > 2019-02-12 Rob Buis <rbuis@igalia.com> > > Implement serializing in MIME type parser >diff --git a/Source/WebCore/platform/network/DataURLDecoder.cpp b/Source/WebCore/platform/network/DataURLDecoder.cpp >index b02c8d931d4719bce87ebfab89923c1ad3a560f8..9a17f71ba8520e1ebcec95059f1768420fa45069 100644 >--- a/Source/WebCore/platform/network/DataURLDecoder.cpp >+++ b/Source/WebCore/platform/network/DataURLDecoder.cpp >@@ -49,7 +49,7 @@ static WorkQueue& decodeQueue() > static Result parseMediaType(const String& mediaType) > { > if (Optional<ParsedContentType> parsedContentType = ParsedContentType::create(mediaType)) >- return { parsedContentType->mimeType(), parsedContentType->charset(), mediaType, nullptr }; >+ return { parsedContentType->mimeType(), parsedContentType->charset(), parsedContentType->serialize(), nullptr }; > return { "text/plain"_s, "US-ASCII"_s, "text/plain;charset=US-ASCII"_s, nullptr }; > } > >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index b3d0cbf43885b871124f8ccd0a7f86bbaef9eff2..9edefe7ae25d3c514e751066a945d1ec1496ab97 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,15 @@ >+2019-02-12 Rob Buis <rbuis@igalia.com> >+ >+ Align with Fetch on data: URLs >+ https://bugs.webkit.org/show_bug.cgi?id=182325 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Update improved test expectations. >+ >+ * web-platform-tests/fetch/data-urls/processing.any-expected.txt: >+ * web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt: >+ > 2019-01-30 Youenn Fablet <youenn@apple.com> > > ServiceWorkerJob should notify its client in case its job is cancelled >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt >index 43984861a146b8a29e23c0bf9916df49b9ffba8a..ccbd65617f490463fa95c9fb6159e8ff8dc432fd 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt >@@ -15,17 +15,17 @@ PASS "data:,%FF" > PASS "data:text/plain,X" > PASS "data:text/plain ,X" > PASS "data:text/plain%20,X" >-FAIL "data:text/plain\f,X" assert_equals: expected "text/plain%0c" but got "text/plain%0C" >-FAIL "data:text/plain%0C,X" assert_equals: expected "text/plain%0c" but got "text/plain%0C" >-FAIL "data:text/plain;,X" assert_equals: expected "text/plain" but got "text/plain;" >+PASS "data:text/plain\f,X" >+PASS "data:text/plain%0C,X" >+PASS "data:text/plain;,X" > PASS "data:;x=x;charset=x,X" > PASS "data:;x=x,X" > PASS "data:text/plain;charset=windows-1252,%C2%B1" >-FAIL "data:text/plain;Charset=UTF-8,%C2%B1" assert_equals: expected "text/plain;charset=UTF-8" but got "text/plain;Charset=UTF-8" >+PASS "data:text/plain;Charset=UTF-8,%C2%B1" > PASS "data:image/gif,%C2%B1" >-FAIL "data:IMAGE/gif,%C2%B1" assert_equals: expected "image/gif" but got "IMAGE/gif" >-FAIL "data:IMAGE/gif;hi=x,%C2%B1" assert_equals: expected "image/gif;hi=x" but got "IMAGE/gif;hi=x" >-FAIL "data:IMAGE/gif;CHARSET=x,%C2%B1" assert_equals: expected "image/gif;charset=x" but got "IMAGE/gif;CHARSET=x" >+PASS "data:IMAGE/gif,%C2%B1" >+PASS "data:IMAGE/gif;hi=x,%C2%B1" >+PASS "data:IMAGE/gif;CHARSET=x,%C2%B1" > PASS "data: ,%FF" > PASS "data:%20,%FF" > PASS "data:\f,%FF" >@@ -35,7 +35,7 @@ PASS "data:%00,%FF" > PASS "data:text/html ,X" > PASS "data:text / html,X" > PASS "data:â ,X" >-FAIL "data:â /â ,X" assert_equals: expected "%e2%80%a0/%e2%80%a0" but got "%E2%80%A0/%E2%80%A0" >+PASS "data:â /â ,X" > PASS "data:X,X" > PASS "data:image/png,X X" > PASS "data:application/javascript,X X" >@@ -43,13 +43,13 @@ PASS "data:application/xml,X X" > PASS "data:text/javascript,X X" > PASS "data:text/plain,X X" > PASS "data:unknown/unknown,X X" >-FAIL "data:text/plain;a=\",\",X" assert_equals: expected "text/plain;a=\"\"" but got "text/plain;a=\"" >+PASS "data:text/plain;a=\",\",X" > PASS "data:text/plain;a=%2C,X" >-FAIL "data:;base64;base64,WA" assert_equals: expected "text/plain" but got "text/plain;base64" >-FAIL "data:x/x;base64;base64,WA" assert_equals: expected "x/x" but got "x/x;base64" >-FAIL "data:x/x;base64;charset=x,WA" assert_equals: expected "x/x;charset=x" but got "x/x;base64;charset=x" >-FAIL "data:x/x;base64;charset=x;base64,WA" assert_equals: expected "x/x;charset=x" but got "x/x;base64;charset=x" >-FAIL "data:x/x;base64;base64x,WA" assert_equals: expected "x/x" but got "x/x;base64;base64x" >+PASS "data:;base64;base64,WA" >+PASS "data:x/x;base64;base64,WA" >+PASS "data:x/x;base64;charset=x,WA" >+PASS "data:x/x;base64;charset=x;base64,WA" >+PASS "data:x/x;base64;base64x,WA" > PASS "data:;base64,W%20A" > PASS "data:;base64,W%0CA" > PASS "data:x;base64x,WA" >@@ -58,19 +58,19 @@ PASS "data:x;base64=x,WA" > FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected 1 got 2 > FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected 1 got 2 > FAIL "data: ;charset=x ; base64,WA" assert_array_equals: lengths differ, expected 1 got 2 >-FAIL "data:;base64;,WA" assert_equals: expected "text/plain" but got "text/plain;base64;" >+PASS "data:;base64;,WA" > FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected 1 got 2 > FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected 1 got 2 >-FAIL "data:;base 64,WA" assert_equals: expected "text/plain" but got "text/plain;base 64" >+PASS "data:;base 64,WA" > PASS "data:;BASe64,WA" >-FAIL "data:;%62ase64,WA" assert_equals: expected "text/plain" but got "text/plain;%62ase64" >+PASS "data:;%62ase64,WA" > PASS "data:%3Bbase64,WA" > PASS "data:;charset=x,X" >-FAIL "data:; charset=x,X" assert_equals: expected "text/plain;charset=x" but got "text/plain; charset=x" >-FAIL "data:;charset =x,X" assert_equals: expected "text/plain" but got "text/plain;charset =x" >-FAIL "data:;charset= x,X" assert_equals: expected "text/plain;charset=\" x\"" but got "text/plain;charset= x" >-FAIL "data:;charset=,X" assert_equals: expected "text/plain" but got "text/plain;charset=" >-FAIL "data:;charset,X" assert_equals: expected "text/plain" but got "text/plain;charset" >-FAIL "data:;charset=\"x\",X" assert_equals: expected "text/plain;charset=x" but got "text/plain;charset=\"x\"" >-FAIL "data:;CHARSET=\"X\",X" assert_equals: expected "text/plain;charset=X" but got "text/plain;CHARSET=\"X\"" >+PASS "data:; charset=x,X" >+PASS "data:;charset =x,X" >+PASS "data:;charset= x,X" >+PASS "data:;charset=,X" >+PASS "data:;charset,X" >+PASS "data:;charset=\"x\",X" >+PASS "data:;CHARSET=\"X\",X" > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt >index f624ea3820c27b5b5e0cf0ee356c52551255dd1c..ce5901d0e6d8d46ca944049988a45ace3317bcb7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt >@@ -12,17 +12,17 @@ PASS "data:,%FF" > PASS "data:text/plain,X" > PASS "data:text/plain ,X" > PASS "data:text/plain%20,X" >-FAIL "data:text/plain\f,X" assert_equals: expected "text/plain%0c" but got "text/plain%0C" >-FAIL "data:text/plain%0C,X" assert_equals: expected "text/plain%0c" but got "text/plain%0C" >-FAIL "data:text/plain;,X" assert_equals: expected "text/plain" but got "text/plain;" >+PASS "data:text/plain\f,X" >+PASS "data:text/plain%0C,X" >+PASS "data:text/plain;,X" > PASS "data:;x=x;charset=x,X" > PASS "data:;x=x,X" > PASS "data:text/plain;charset=windows-1252,%C2%B1" >-FAIL "data:text/plain;Charset=UTF-8,%C2%B1" assert_equals: expected "text/plain;charset=UTF-8" but got "text/plain;Charset=UTF-8" >+PASS "data:text/plain;Charset=UTF-8,%C2%B1" > PASS "data:image/gif,%C2%B1" >-FAIL "data:IMAGE/gif,%C2%B1" assert_equals: expected "image/gif" but got "IMAGE/gif" >-FAIL "data:IMAGE/gif;hi=x,%C2%B1" assert_equals: expected "image/gif;hi=x" but got "IMAGE/gif;hi=x" >-FAIL "data:IMAGE/gif;CHARSET=x,%C2%B1" assert_equals: expected "image/gif;charset=x" but got "IMAGE/gif;CHARSET=x" >+PASS "data:IMAGE/gif,%C2%B1" >+PASS "data:IMAGE/gif;hi=x,%C2%B1" >+PASS "data:IMAGE/gif;CHARSET=x,%C2%B1" > PASS "data: ,%FF" > PASS "data:%20,%FF" > PASS "data:\f,%FF" >@@ -32,7 +32,7 @@ PASS "data:%00,%FF" > PASS "data:text/html ,X" > PASS "data:text / html,X" > PASS "data:â ,X" >-FAIL "data:â /â ,X" assert_equals: expected "%e2%80%a0/%e2%80%a0" but got "%E2%80%A0/%E2%80%A0" >+PASS "data:â /â ,X" > PASS "data:X,X" > PASS "data:image/png,X X" > PASS "data:application/javascript,X X" >@@ -40,13 +40,13 @@ PASS "data:application/xml,X X" > PASS "data:text/javascript,X X" > PASS "data:text/plain,X X" > PASS "data:unknown/unknown,X X" >-FAIL "data:text/plain;a=\",\",X" assert_equals: expected "text/plain;a=\"\"" but got "text/plain;a=\"" >+PASS "data:text/plain;a=\",\",X" > PASS "data:text/plain;a=%2C,X" >-FAIL "data:;base64;base64,WA" assert_equals: expected "text/plain" but got "text/plain;base64" >-FAIL "data:x/x;base64;base64,WA" assert_equals: expected "x/x" but got "x/x;base64" >-FAIL "data:x/x;base64;charset=x,WA" assert_equals: expected "x/x;charset=x" but got "x/x;base64;charset=x" >-FAIL "data:x/x;base64;charset=x;base64,WA" assert_equals: expected "x/x;charset=x" but got "x/x;base64;charset=x" >-FAIL "data:x/x;base64;base64x,WA" assert_equals: expected "x/x" but got "x/x;base64;base64x" >+PASS "data:;base64;base64,WA" >+PASS "data:x/x;base64;base64,WA" >+PASS "data:x/x;base64;charset=x,WA" >+PASS "data:x/x;base64;charset=x;base64,WA" >+PASS "data:x/x;base64;base64x,WA" > PASS "data:;base64,W%20A" > PASS "data:;base64,W%0CA" > PASS "data:x;base64x,WA" >@@ -55,19 +55,19 @@ PASS "data:x;base64=x,WA" > FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected 1 got 2 > FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected 1 got 2 > FAIL "data: ;charset=x ; base64,WA" assert_array_equals: lengths differ, expected 1 got 2 >-FAIL "data:;base64;,WA" assert_equals: expected "text/plain" but got "text/plain;base64;" >+PASS "data:;base64;,WA" > FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected 1 got 2 > FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected 1 got 2 >-FAIL "data:;base 64,WA" assert_equals: expected "text/plain" but got "text/plain;base 64" >+PASS "data:;base 64,WA" > PASS "data:;BASe64,WA" >-FAIL "data:;%62ase64,WA" assert_equals: expected "text/plain" but got "text/plain;%62ase64" >+PASS "data:;%62ase64,WA" > PASS "data:%3Bbase64,WA" > PASS "data:;charset=x,X" >-FAIL "data:; charset=x,X" assert_equals: expected "text/plain;charset=x" but got "text/plain; charset=x" >-FAIL "data:;charset =x,X" assert_equals: expected "text/plain" but got "text/plain;charset =x" >-FAIL "data:;charset= x,X" assert_equals: expected "text/plain;charset=\" x\"" but got "text/plain;charset= x" >-FAIL "data:;charset=,X" assert_equals: expected "text/plain" but got "text/plain;charset=" >-FAIL "data:;charset,X" assert_equals: expected "text/plain" but got "text/plain;charset" >-FAIL "data:;charset=\"x\",X" assert_equals: expected "text/plain;charset=x" but got "text/plain;charset=\"x\"" >-FAIL "data:;CHARSET=\"X\",X" assert_equals: expected "text/plain;charset=X" but got "text/plain;CHARSET=\"X\"" >+PASS "data:; charset=x,X" >+PASS "data:;charset =x,X" >+PASS "data:;charset= x,X" >+PASS "data:;charset=,X" >+PASS "data:;charset,X" >+PASS "data:;charset=\"x\",X" >+PASS "data:;CHARSET=\"X\",X" >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 182325
:
356308
|
356310
|
356312
|
356314
|
356319
|
356335
|
356348
|
356359
|
356404
|
356504
|
356588
|
360026
|
360096
|
360101
|
360102
|
360104
|
360106
|
360239
|
360365
|
360367
|
360370
|
360499
|
361798
|
361806
| 361842