Bug 55971

Summary: Backspace deletes all non-BMP symbols at once, and then some
Product: WebKit Reporter: Alexey Proskuryakov <ap>
Component: HTML EditingAssignee: Alexey Proskuryakov <ap>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, justin.garcia, webkit-ews
Priority: P2 Keywords: InRadar, PlatformOnly
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.6   
Attachments:
Description Flags
proposed fix
mitz: review-
now with fewer bugs
mitz: review+, ap: commit-queue-
patch for landing none

Alexey Proskuryakov
Reported 2011-03-08 14:40:19 PST
Steps to reproduce: 1. Enable Character Palette. 2. In Character Palette, go to Unicode table->Ancient Symbols (at 00010190). 3. In Mail (or in a contenteditable div in Safari), type "abc". 4. Click on one of the ancient symbols, it will be inserted. Repeat a few times. 5. Press Backspace. Results: All the non-BMP characters will be deleted, and "c", too. <rdar://problem/8725312>
Attachments
proposed fix (4.01 KB, patch)
2011-03-08 14:45 PST, Alexey Proskuryakov
mitz: review-
now with fewer bugs (4.01 KB, patch)
2011-03-08 15:25 PST, Alexey Proskuryakov
mitz: review+
ap: commit-queue-
patch for landing (4.69 KB, patch)
2011-03-08 21:22 PST, Alexey Proskuryakov
no flags
Alexey Proskuryakov
Comment 1 2011-03-08 14:45:43 PST
Created attachment 85092 [details] proposed fix
mitz
Comment 2 2011-03-08 15:21:48 PST
Comment on attachment 85092 [details] proposed fix View in context: https://bugs.webkit.org/attachment.cgi?id=85092&action=review > Source/WebCore/rendering/RenderText.cpp:1434 > + return charType == U_NON_SPACING_MARK && charType == U_ENCLOSING_MARK && charType == U_COMBINING_SPACING_MARK; What?!
Alexey Proskuryakov
Comment 3 2011-03-08 15:25:54 PST
Created attachment 85099 [details] now with fewer bugs
Darin Adler
Comment 4 2011-03-08 16:23:47 PST
Comment on attachment 85099 [details] now with fewer bugs View in context: https://bugs.webkit.org/attachment.cgi?id=85099&action=review > Source/WebCore/rendering/RenderText.cpp:1434 > + int8_t charType = u_charType(c); > + return charType == U_NON_SPACING_MARK || charType == U_ENCLOSING_MARK || charType == U_COMBINING_SPACING_MARK; This is ICU-specific code. Instead shouldn’t we be using the Unicode.h fig leaf so that non-ICU platforms work?
Alexey Proskuryakov
Comment 5 2011-03-08 16:37:57 PST
This code is only used on Mac - it doesn't seem that other platforms are interested in matching CF behavior. Unfortunately, EWS is backlogged, so it's not yet clear if this is breaking builds.
Early Warning System Bot
Comment 6 2011-03-08 17:49:55 PST
Alexey Proskuryakov
Comment 7 2011-03-08 21:22:48 PST
Created attachment 85130 [details] patch for landing
WebKit Commit Bot
Comment 8 2011-03-10 16:48:40 PST
Comment on attachment 85130 [details] patch for landing Clearing flags on attachment: 85130 Committed r80791: <http://trac.webkit.org/changeset/80791>
WebKit Commit Bot
Comment 9 2011-03-10 16:48:46 PST
All reviewed patches have been landed. Closing bug.
Justin Garcia
Comment 10 2011-03-16 23:26:22 PDT
*** Bug 56512 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.