[webkit-dev] 8 Bit String Handling in Render Text Code
msaboff at apple.com
Mon Oct 15 09:56:04 PDT 2012
I recently landed r131311 which adds code to handle 8-bit strings in the render text path. The code also puts HTML text into 8-bit strings.
The reason for this announcement is that the handling of 8-bit text on the render path is disabled on non-Mac platforms. Most platforms have platform specific text rendering code and that code needs to be updated to handle 8-bit text. For Mac, the platform specific changes are for the complex text rendering path only. The changes involved converting the 8-bit text to a 16-bit String, adding the 16-bit string to the ComplexTextController so the string won't be freed and using the contained 16-bit text with the rest of the complex code unchanged. See ComplexTextController::collectComplexTextRuns() in WebCore/platform/graphics/mac/ComplexTextController.cpp.
The new define WTF_USE_8BIT_TEXTRUN is used to control the creation of 8-bit TextRun objects. When this define is not enabled, TextRun's will only contain 16-bit text and current code should work correctly. After platform code is added to handle 8-bit text in platform specific code, that platform should enable WTF_USE_8BIT_TEXTRUN. Note that all platforms compile with that define enabled, but it is likely they'll crash when running the tests.
More information about the webkit-dev