Bug 95812 - Add 8 bit string data path to TextRun
Summary: Add 8 bit string data path to TextRun
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Text (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Michael Saboff
URL:
Keywords:
Depends on:
Blocks: 128698
  Show dependency treegraph
 
Reported: 2012-09-04 18:30 PDT by Michael Saboff
Modified: 2014-02-12 15:02 PST (History)
12 users (show)

See Also:


Attachments
Patch (20.33 KB, patch)
2012-09-05 11:38 PDT, Michael Saboff
mitz: review+
gyuyoung.kim: commit-queue-
Details | Formatted Diff | Diff
Patch with fixes for failing platforms (29.66 KB, patch)
2012-09-06 08:47 PDT, Michael Saboff
no flags Details | Formatted Diff | Diff
Performance results from last posted patch (24.24 KB, application/pdf)
2012-09-06 08:50 PDT, Michael Saboff
no flags Details
Fixed indent style issue. (29.65 KB, patch)
2012-09-06 08:57 PDT, Michael Saboff
buildbot: commit-queue-
Details | Formatted Diff | Diff
Patch to fix truncation compile error (28.72 KB, patch)
2012-09-06 09:51 PDT, Michael Saboff
mitz: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Saboff 2012-09-04 18:30:50 PDT
As part of adding an 8 bit path to the text rendering code, the TextRun class and code using it need to handle 8 bit strings.
Comment 1 Michael Saboff 2012-09-05 11:38:39 PDT
Created attachment 162296 [details]
Patch
Comment 2 Gyuyoung Kim 2012-09-05 12:23:53 PDT
Comment on attachment 162296 [details]
Patch

Attachment 162296 [details] did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13757692
Comment 3 Early Warning System Bot 2012-09-05 12:27:16 PDT
Comment on attachment 162296 [details]
Patch

Attachment 162296 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13770031
Comment 4 Build Bot 2012-09-05 12:51:50 PDT
Comment on attachment 162296 [details]
Patch

Attachment 162296 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/13770035
Comment 5 Eric Seidel (no email) 2012-09-05 13:00:26 PDT
Very exciting.

Isn't this a perf change?  Do we have perf data?
Comment 6 Early Warning System Bot 2012-09-05 13:19:39 PDT
Comment on attachment 162296 [details]
Patch

Attachment 162296 [details] did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13754933
Comment 7 Michael Saboff 2012-09-05 13:57:35 PDT
(In reply to comment #5)
> Very exciting.
> 
> Isn't this a perf change?  Do we have perf data?

I don't have data yet.  I expect that tho should have little impact as it is mostly renaming for the current 16 bit paths.  The TextRun::operator[] is the big concern.  If that is an issue, I'll refactor to separate 8 and 16 bit accessors methods.

I'll be running test and posting results.  In addition to the Layout tests, do you have others you'd like to see?

Now to fix all of the platform specific code from EWS failures.
Comment 8 Peter Beverloo (cr-android ews) 2012-09-05 15:28:51 PDT
Comment on attachment 162296 [details]
Patch

Attachment 162296 [details] did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13755917
Comment 9 WebKit Review Bot 2012-09-05 20:52:23 PDT
Comment on attachment 162296 [details]
Patch

Attachment 162296 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13771163
Comment 10 Michael Saboff 2012-09-06 08:47:27 PDT
Created attachment 162515 [details]
Patch with fixes for failing platforms

Fixed the non-Mac platforms by changing the calls to characters() and data() to characters16() and data16() and by disallowing the creation of 8 bit text runs via compile switches.  These other platforms will have to make the appropriate changes after the patch lands.
Comment 11 Michael Saboff 2012-09-06 08:50:31 PDT
Created attachment 162516 [details]
Performance results from last posted patch

Results of Performance/Layout tests before and after the latest patch.  Ran tests 8 times and averaged the results.
Comment 12 WebKit Review Bot 2012-09-06 08:51:22 PDT
Attachment 162515 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
Source/WebCore/platform/graphics/Font.cpp:269:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 13 Michael Saboff 2012-09-06 08:57:17 PDT
Created attachment 162518 [details]
Fixed indent style issue.
Comment 14 Build Bot 2012-09-06 09:11:04 PDT
Comment on attachment 162518 [details]
Fixed indent style issue.

Attachment 162518 [details] did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13772327
Comment 15 Early Warning System Bot 2012-09-06 09:25:59 PDT
Comment on attachment 162518 [details]
Fixed indent style issue.

Attachment 162518 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13776314
Comment 16 Michael Saboff 2012-09-06 09:51:32 PDT
Created attachment 162527 [details]
Patch to fix truncation compile error

Reverted templated normalizeSpaces() in Font.h to UChar only as it isn't on fast path.
Comment 17 mitz 2012-09-06 15:06:49 PDT
Comment on attachment 162527 [details]
Patch to fix truncation compile error

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

> Source/WebCore/ChangeLog:11
> +        been renamed and the creation of 8 bit tet runs has been disabled via compilation

Typo: tet.

> Source/WebCore/ChangeLog:12
> +        flags.  Someone knowledgible in those platforms will need to make corresponding changes

Typo: knowledgible.
Comment 18 Michael Saboff 2012-09-06 16:52:27 PDT
Committed r127801: <http://trac.webkit.org/changeset/127801>