It seems like much of the current branch could be landed on trunk as-is. All the LayoutSize/LayoutPoint changes. That would make the branch diff smaller and easier to read.
FYI: The current patch (r104725) builds the mac, linux/qt and linux/chromium ports. It does _not_ include updated test expectations. Those will be uploaded separately.
Created attachment 123419[details]
Source diff from branch (105194)
Source diff from branch against trunk@105194, excluding new data types which have been split out into a separate change (bug 76571).
Created attachment 123981[details]
Source diff from branch (105803)
Source diff from branch against trunk@105803. Again, this patch does not include the new subpixel data types as those are tracked in bug 76571.
Comment on attachment 124651[details]
Source diff from branch (105803)
View in context: https://bugs.webkit.org/attachment.cgi?id=124651&action=review> Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:118
> + return static_cast<IntRect>(rect);
Seems like many of these rounding changes could/should be done first. We're not changing types here, you're just making more explicit what's going on, or?
Comment on attachment 124651[details]
Source diff from branch (105803)
View in context: https://bugs.webkit.org/attachment.cgi?id=124651&action=review>> Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:118
>> + return static_cast<IntRect>(rect);
>
> Seems like many of these rounding changes could/should be done first. We're not changing types here, you're just making more explicit what's going on, or?
Correct, the reason we cast platform specific types to their webkit equivalent is to avoid ambiguity. There aren't too many places where we do this but if you think it makes sense I'd gladly break those changes out into a separate patch.
I just skimmed very briefly and was lookign for non-controvertial things to break out -- changes which had little/nothign to do with the larger goal of moving to fixed point layout.
(In reply to comment #16)
> I just skimmed very briefly and was lookign for non-controvertial things to break out -- changes which had little/nothign to do with the larger goal of moving to fixed point layout.
Makes sense, I'll break those changes out. If you have any other suggestions for things to break out I'm all ears!
Attachment 132916[details] did not pass style-queue:
Source/WebCore/platform/Length.h:33: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/platform/Length.h:112: Place brace on its own line for function definitions. [whitespace/braces] [4]
Source/WebCore/platform/Length.h:116: Place brace on its own line for function definitions. [whitespace/braces] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:82: wtf_ceil is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:540: Code inside a namespace should not be indented. [whitespace/indent] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:542: This { should be at the end of the previous line [whitespace/braces] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:543: is_specialized is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:552: is_signed is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:553: is_integer is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:554: is_exact is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:558: round_error is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:561: min_exponent is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:562: min_exponent10 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:563: max_exponent is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:564: max_exponent10 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:566: has_infinity is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:567: has_quiet_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:568: has_signaling_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:569: has_denorm is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:570: has_denorm_loss is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:574: quiet_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:576: signaling_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:578: denorm_min is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:581: is_iec559 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:582: is_bounded is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:583: is_modulo is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:585: Should have a space between // and comment [whitespace/comments] [4]
SFailed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/WebCore.exp.in', u'Source/W..." exit_code: 1
ource/WebCore/platform/FractionalLayoutUnit.h:586: tinyness_before is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:587: round_style is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/rendering/RenderView.cpp:302: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5]
Source/WebCore/rendering/RenderTreeAsText.cpp:79: The parameter name "behavior" adds no information, so it should be removed. [readability/parameter_name] [5]
Source/WebCore/rendering/RenderView.h:203: The parameter name "r" adds no information, so it should be removed. [readability/parameter_name] [5]
Source/WebCore/inspector/InspectorPageAgent.cpp:54: "FrameView.h" already included at Source/WebCore/inspector/InspectorPageAgent.cpp:53 [build/include] [4]
Source/WebCore/rendering/LayoutTypes.h:40: Alphabetical sorting problem. [build/include_order] [4]
Total errors found: 34 in 131 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 135700[details] did not pass style-queue:
Source/WebCore/rendering/LayoutTypes.h:39: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/rendering/LayoutTypes.h:40: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/rendering/RenderView.h:204: The parameter name "r" adds no information, so it should be removed. [readability/parameter_name] [5]
Source/WebCore/platform/FractionalLayoutUnit.h:81: wtf_ceil is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:543: Code inside a namespace should not be indented. [whitespace/indent] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:545: This { should be at the end of the previous line [whitespace/braces] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:546: is_specialized is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:555: is_signed is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:556: is_integer is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:557: is_exact is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:561: round_error is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:564: min_exponent is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:565: min_exponent10 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:566: max_exponent is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:567: max_exponent10 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:569: has_infinity is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:570: has_quiet_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:571: has_signaling_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:572: has_denorm is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:573: has_denorm_loss is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:577: quiet_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:579: signaling_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:581: denorm_min is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:584: is_iec559 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:585: is_bounded is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:586: is_modulo is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:588: Should have a space between // and comment [whitespaFailed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/WebCore.exp.in', u'Source/W..." exit_code: 1
ce/comments] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:589: tinyness_before is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:590: round_style is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/Length.h:33: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/platform/Length.h:112: Place brace on its own line for function definitions. [whitespace/braces] [4]
Source/WebCore/platform/Length.h:116: Place brace on its own line for function definitions. [whitespace/braces] [4]
Source/WebCore/rendering/RenderTreeAsText.cpp:79: The parameter name "behavior" adds no information, so it should be removed. [readability/parameter_name] [5]
Total errors found: 33 in 53 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 136239[details] did not pass style-queue:
Source/WebCore/rendering/LayoutTypes.h:39: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/rendering/LayoutTypes.h:40: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:81: wtf_ceil is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:538: Code inside a namespace should not be indented. [whitespace/indent] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:540: This { should be at the end of the previous line [whitespace/braces] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:541: is_specialized is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:550: is_signed is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:551: is_integer is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:552: is_exact is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:556: round_error is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:559: min_exponent is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:560: min_exponent10 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:561: max_exponent is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:562: max_exponent10 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:564: has_infinity is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:565: has_quiet_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:566: has_signaling_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:567: has_denorm is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:568: has_denorm_loss is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:572: quiet_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:574: signaling_NaN is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:576: denorm_min is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:579: is_iec559 is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:580: is_bounded is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:581: is_modulo is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:583: Should have a space between // and comment [whitespace/comments] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:584: tinyness_before is incorrectly named. Don't use underscores in your identifieFailed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/WebCore.exp.in', u'Source/W..." exit_code: 1
r names. [readability/naming] [4]
Source/WebCore/platform/FractionalLayoutUnit.h:585: round_style is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Source/WebCore/platform/Length.h:33: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/platform/Length.h:112: Place brace on its own line for function definitions. [whitespace/braces] [4]
Source/WebCore/platform/Length.h:116: Place brace on its own line for function definitions. [whitespace/braces] [4]
Source/WebCore/rendering/RenderTreeAsText.cpp:79: The parameter name "behavior" adds no information, so it should be removed. [readability/parameter_name] [5]
Total errors found: 32 in 46 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 136500[details] did not pass style-queue:
Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/WebCore.exp.in', u'Source/W..." exit_code: 1
Source/WebCore/rendering/LayoutTypes.h:40: Alphabetical sorting problem. [build/include_order] [4]
Source/WebCore/rendering/RenderTreeAsText.cpp:79: The parameter name "behavior" adds no information, so it should be removed. [readability/parameter_name] [5]
Total errors found: 2 in 42 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 137115[details]
Archive of layout-test-results from ec2-cr-linux-04
The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-04 Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'> Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Comment on attachment 138382[details]
Source diff from branch (114777)
View in context: https://bugs.webkit.org/attachment.cgi?id=138382&action=review
Honestly this seems fine. You reach a point where it will be more efficient to move testing onto the build bots instead of the EWS bots. :)
> Source/WebCore/rendering/LayoutTypes.h:84
> + return LayoutPoint(p.x(), p.y());
Why is this one LayoutPoint and the one above it FractionalLayoutPoint?
> Source/WebCore/rendering/RenderTreeAsText.cpp:110
> + // FIXME: These should be printed as floats. Keeping them ints for consistency with pervious test expectations.
> + return ts << "(" << p.x().toInt() << "," << p.y().toInt() << ")";
Ah, you have joined a long tradition here. :)
> Source/WebCore/rendering/RenderTreeAsText.cpp:279
> + // FIXME: Convert layout test results to report sub-pixel values, in the meantime using enclosingIntRect
> + // for consistency with old results. This doesn't apply to tables, which are still laid out on integer bounds.
WE need to come up with a list of htese and do them all at once some day. :)
> Source/WebCore/rendering/PaintInfo.h:101
> - static IntRect infiniteRect() { return IntRect(INT_MIN / 2, INT_MIN / 2, INT_MAX, INT_MAX); }
> + static IntRect infiniteRect() { return IntRect(LayoutRect::infiniteRect()); }
This seems odd. I guess it makes sense for this to be based on LayoutRect? And if so why not call toInt()? (Or maybe that doesn't exist).
Created attachment 139850[details]
Archive of layout-test-results from ec2-cr-linux-03
The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-03 Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'> Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
2011-10-28 14:52 PDT, Eric Seidel (no email)
2011-10-31 13:43 PDT, Emil A Eklund
2011-11-09 17:40 PST, Emil A Eklund
2011-11-18 16:15 PST, Emil A Eklund
2012-01-04 18:24 PST, Emil A Eklund
2012-01-11 14:13 PST, Emil A Eklund
2012-01-20 17:31 PST, Emil A Eklund
2012-01-25 11:51 PST, Emil A Eklund
2012-01-25 12:12 PST, Emil A Eklund
2012-01-30 18:29 PST, Emil A Eklund
2012-02-09 15:53 PST, Emil A Eklund
2012-02-22 18:20 PST, Emil A Eklund
2012-02-29 13:25 PST, Emil A Eklund
2012-03-16 11:55 PDT, Emil A Eklund
2012-03-16 13:40 PDT, Emil A Eklund
2012-03-20 15:57 PDT, Emil A Eklund
2012-03-27 16:33 PDT, Emil A Eklund
2012-03-27 17:28 PDT, Emil A Eklund
2012-03-30 16:45 PDT, Emil A Eklund
2012-04-02 12:29 PDT, Emil A Eklund
2012-04-03 11:24 PDT, Emil A Eklund
2012-04-04 15:30 PDT, Emil A Eklund
2012-04-05 13:57 PDT, Emil A Eklund
2012-04-05 18:40 PDT, Emil A Eklund
2012-04-09 09:35 PDT, Emil A Eklund
2012-04-10 12:02 PDT, Emil A Eklund
2012-04-10 13:49 PDT, Emil A Eklund
2012-04-13 10:00 PDT, Emil A Eklund
2012-04-13 11:41 PDT, WebKit Review Bot
2012-04-16 11:13 PDT, Emil A Eklund
2012-04-18 14:01 PDT, Emil A Eklund
2012-04-20 11:04 PDT, Emil A Eklund
2012-04-23 10:48 PDT, Emil A Eklund
2012-04-23 15:18 PDT, Emil A Eklund
2012-04-26 10:44 PDT, Emil A Eklund
2012-04-30 11:45 PDT, Emil A Eklund
2012-04-30 17:07 PDT, Emil A Eklund
2012-05-01 10:13 PDT, Emil A Eklund
2012-05-01 13:08 PDT, Emil A Eklund
2012-05-01 15:46 PDT, Emil A Eklund
2012-05-01 17:30 PDT, Emil A Eklund
2012-05-01 20:29 PDT, Emil A Eklund
2012-05-01 21:32 PDT, Emil A Eklund
2012-05-01 21:43 PDT, Emil A Eklund
2012-05-01 22:00 PDT, Emil A Eklund
2012-05-02 09:47 PDT, Emil A Eklund
2012-05-02 10:46 PDT, Emil A Eklund
2012-05-02 11:50 PDT, WebKit Review Bot