Bug 126337

Summary: Implement `CSS.escape` as per CSSOM
Product: WebKit Reporter: Mathias Bynens <mathias>
Component: CSSAssignee: Joseph Pecoraro <joepeck>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, cdumez, commit-queue, darin, dino, hi, hyatt, joepeck, mail, mathias, simon.fraser, webkit
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
URL: http://dev.w3.org/csswg/cssom/#the-css.escape%28%29-method
Bug Depends on:    
Bug Blocks: 151378    
Attachments:
Description Flags
[PATCH] Proposed Fix none

Comment 1 Mathias Bynens 2015-09-15 07:31:58 PDT
FWIW, this recently landed in Chromium.
Comment 2 Nikita Vasilyev 2015-11-17 19:22:52 PST
*** Bug 149175 has been marked as a duplicate of this bug. ***
Comment 3 Joseph Pecoraro 2016-08-23 11:57:06 PDT
We are considering using the polyfill in Web Inspector at the moment on bug 151378.
Comment 4 Joseph Pecoraro 2016-08-23 12:02:25 PDT
The Blink commit that included this looks quite small. It would probably be trivial to port it over to WebKit:
<https://chromium.googlesource.com/chromium/blink/+/c1a5ffdc924b089e70cd33ad2726b58cc8312abe%5E!/>
Comment 5 Mathias Bynens 2016-08-23 13:34:21 PDT
(In reply to comment #4)
> The Blink commit that included this looks quite small. It would probably be
> trivial to port it over to WebKit:
> <https://chromium.googlesource.com/chromium/blink/+/
> c1a5ffdc924b089e70cd33ad2726b58cc8312abe%5E!/>

Keep in mind that various follow-up fixes were committed separately, so be sure to base any ports on the latest code in Blink rather than that individual commit.
Comment 6 Joseph Pecoraro 2016-08-23 13:43:43 PDT
I'll take this.
Comment 7 Joseph Pecoraro 2016-08-23 13:59:15 PDT
Created attachment 286768 [details]
[PATCH] Proposed Fix
Comment 8 Joseph Pecoraro 2016-08-23 14:01:27 PDT
Comment on attachment 286768 [details]
[PATCH] Proposed Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=286768&action=review

> Source/WebCore/ChangeLog:14
> +        (WebCore::serializeIdentifier):
> +        Update serialization to match the latest version of the spec:
> +        <https://drafts.csswg.org/cssom/#serialize-an-identifier>
> +        New handling for 0x0, 0x7f, just "-", and "--" is now allowed.

Note: WebCore::serializeString can use the same handling updates for 0x0 and 0x7f but I was unsure how to test those.
Comment 9 WebKit Commit Bot 2016-08-24 19:42:42 PDT
Comment on attachment 286768 [details]
[PATCH] Proposed Fix

Clearing flags on attachment: 286768

Committed r204952: <http://trac.webkit.org/changeset/204952>
Comment 10 WebKit Commit Bot 2016-08-24 19:42:46 PDT
All reviewed patches have been landed.  Closing bug.
Comment 11 Darin Adler 2016-08-27 17:21:56 PDT
Comment on attachment 286768 [details]
[PATCH] Proposed Fix

The characterStartingAt plus U16_LENGTH idiom is ugly. I suggest we use StringView::codePoints instead.
Comment 12 Darin Adler 2016-08-27 17:23:00 PDT
In some other tests like this I changed the tests so we could see non-trivial characters in hex. This made it easier to see the tests were correct for unusual characters.