| Summary: | Rename TextEncoding::encode() to TextEncoding::encodeWithNormalization() | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Tetsuharu Ohzeki [UTC+9] <tetsuharu.ohzeki> | ||||
| Component: | DOM | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | NEW --- | ||||||
| Severity: | Normal | CC: | ap, eric.carlson, ews-watchlist, galpeter, glenn, hi, jer.noble, jlhwung, joepeck, mkwst, philipj, sergio, ysuzuki | ||||
| Priority: | P2 | ||||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=212725 | ||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 213253 | ||||||
| Attachments: |
|
||||||
|
Description
Tetsuharu Ohzeki [UTC+9]
2020-06-16 09:42:53 PDT
Created attachment 402015 [details]
Patch
Comment on attachment 402015 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=402015&action=review > Source/WebCore/ChangeLog:9 > + I'm planning to add a variant of `TextEncoding::encode()` which does not > + normalize to fix bug 213253. I don't think that this is necessary. Once we perform normalization on ingress (macOS file names, keyboard input etc.), TextEncoding::encode() won't need to normalize ever. There isn't a need for a separate code path. Comment on attachment 402015 [details] Patch (In reply to Alexey Proskuryakov from comment #2) > Comment on attachment 402015 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=402015&action=review > > > Source/WebCore/ChangeLog:9 > > + I'm planning to add a variant of `TextEncoding::encode()` which does not > > + normalize to fix bug 213253. > > I don't think that this is necessary. Once we perform normalization on > ingress (macOS file names, keyboard input etc.), TextEncoding::encode() > won't need to normalize ever. There isn't a need for a separate code path. The exist `TextEncoding::encode()` do normalization in it and it is widely used in evenrywhere in WebKit. https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/text/TextEncoding.cpp#L77 To fix bug 213253, we need construcing `Blob` object on JavaScript without unicode normalization. I also had a plan to add the function which does not do unicode nomalization as `TextEncoding::encodeWithoutNormalization()` but I thought it's better to rename the exist implementation and I create this separated patch. Comment on attachment 402015 [details]
Patch
Blobs are not an exception here, they can't have normalization disabled before we disable it in TextEncoding::encode() entirely.
I want to add some real world cases here. Babel REPL wraps babel sources into a blob and send it to the WebWorker. This issue causes semantic changes to the sources and error is thrown. https://github.com/babel/website/issues/2254 The blob wrapping is done in a WebPack plugin called worker-loader https://github.com/webpack-contrib/worker-loader/blob/3500f14083b5ca2bb953b2919ec1ffc7bc373b2b/src/workers/InlineWorker.js#L28 so besides Babel REPL, users of worker-loader is also affected by this issue. |