Speed up line parsing for simple line layout.
authorzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Oct 2014 17:57:14 +0000 (17:57 +0000)
committerzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Oct 2014 17:57:14 +0000 (17:57 +0000)
https://bugs.webkit.org/show_bug.cgi?id=137275

Reviewed by Antti Koivisto.
Source/WebCore:

This patch speeds up the line parsing for simple line layout by
reducing the number of text measurement calls.
The parsing logic hasn't changed. We simply walk over
the whitespace/non-whitespace fragments and measure them to
figure out whether they fit.
The performance gain mainly comes from the more efficient line wrapping
so that we don't re-measure the fragment when it is pushed to
the next line.

No change in behaviour. (except the empty line-break run removal.)

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::skipWhitespace):
(WebCore::SimpleLineLayout::computeLineLeft):
(WebCore::SimpleLineLayout::TextFragment::TextFragment):
(WebCore::SimpleLineLayout::TextFragment::isEmpty):
(WebCore::SimpleLineLayout::LineState::LineState):
(WebCore::SimpleLineLayout::LineState::commitAndCreateRun): adds uncommitted text to the line and creates a run out of it.
(WebCore::SimpleLineLayout::LineState::addUncommitted): appends fragment to the uncommitted text.
(WebCore::SimpleLineLayout::LineState::addUncommittedWhitespace): appends whitespace to the uncommitted text.
(WebCore::SimpleLineLayout::LineState::jumpTo): moves line's current position without committing text.
(WebCore::SimpleLineLayout::LineState::width): current width of the line including committed and uncommitted text.
(WebCore::SimpleLineLayout::LineState::fits): checks if committed + uncommitted text fits the line.
(WebCore::SimpleLineLayout::LineState::removeCommittedTrailingWhitespace):
(WebCore::SimpleLineLayout::removeTrailingWhitespace): post processing the trailing whitespace.
(WebCore::SimpleLineLayout::initializeLine):
(WebCore::SimpleLineLayout::splitFragmentToFitLine): breaks the fragments into 2 so that the first (sub)fragment fits the line.
(WebCore::SimpleLineLayout::nextFragment): returns the next valid fragment of the text.
(WebCore::SimpleLineLayout::createLineRuns): creates runs for the current line and returns when we can't fit more text on the line.
(WebCore::SimpleLineLayout::updateLineConstrains): updates left/right constrains for the current line.
(WebCore::SimpleLineLayout::createTextRuns): creates runs for the whole text.
(WebCore::SimpleLineLayout::isWhitespace): Deleted.
(WebCore::SimpleLineLayout::skipWhitespaces): Deleted.
(WebCore::SimpleLineLayout::measureWord): Deleted.
(WebCore::SimpleLineLayout::adjustRunOffsets): Deleted.
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):

LayoutTests:

This patch removes empty line-break runs. Rebaseline.

* platform/mac-mountainlion/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* platform/mac/css1/basic/containment-expected.txt:
* platform/mac/css1/basic/contextual_selectors-expected.txt:
* platform/mac/css1/basic/grouping-expected.txt:
* platform/mac/css1/basic/id_as_selector-expected.txt:
* platform/mac/css1/basic/inheritance-expected.txt:
* platform/mac/css1/box_properties/border-expected.txt:
* platform/mac/css1/box_properties/border_bottom-expected.txt:
* platform/mac/css1/box_properties/border_bottom_inline-expected.txt:
* platform/mac/css1/box_properties/border_bottom_width-expected.txt:
* platform/mac/css1/box_properties/border_bottom_width_inline-expected.txt:
* platform/mac/css1/box_properties/border_color-expected.txt:
* platform/mac/css1/box_properties/border_color_inline-expected.txt:
* platform/mac/css1/box_properties/border_inline-expected.txt:
* platform/mac/css1/box_properties/border_left-expected.txt:
* platform/mac/css1/box_properties/border_left_inline-expected.txt:
* platform/mac/css1/box_properties/border_left_width-expected.txt:
* platform/mac/css1/box_properties/border_left_width_inline-expected.txt:
* platform/mac/css1/box_properties/border_right-expected.txt:
* platform/mac/css1/box_properties/border_right_inline-expected.txt:
* platform/mac/css1/box_properties/border_right_width-expected.txt:
* platform/mac/css1/box_properties/border_right_width_inline-expected.txt:
* platform/mac/css1/box_properties/border_style-expected.txt:
* platform/mac/css1/box_properties/border_style_inline-expected.txt:
* platform/mac/css1/box_properties/border_top-expected.txt:
* platform/mac/css1/box_properties/border_top_inline-expected.txt:
* platform/mac/css1/box_properties/border_top_width-expected.txt:
* platform/mac/css1/box_properties/border_top_width_inline-expected.txt:
* platform/mac/css1/box_properties/border_width-expected.txt:
* platform/mac/css1/box_properties/border_width_inline-expected.txt:
* platform/mac/css1/box_properties/clear-expected.txt:
* platform/mac/css1/box_properties/clear_float-expected.txt:
* platform/mac/css1/box_properties/float-expected.txt:
* platform/mac/css1/box_properties/float_elements_in_series-expected.txt:
* platform/mac/css1/box_properties/float_margin-expected.txt:
* platform/mac/css1/box_properties/height-expected.txt:
* platform/mac/css1/box_properties/margin-expected.txt:
* platform/mac/css1/box_properties/margin_bottom-expected.txt:
* platform/mac/css1/box_properties/margin_bottom_inline-expected.txt:
* platform/mac/css1/box_properties/margin_inline-expected.txt:
* platform/mac/css1/box_properties/margin_left-expected.txt:
* platform/mac/css1/box_properties/margin_left_inline-expected.txt:
* platform/mac/css1/box_properties/margin_right-expected.txt:
* platform/mac/css1/box_properties/margin_right_inline-expected.txt:
* platform/mac/css1/box_properties/margin_top-expected.txt:
* platform/mac/css1/box_properties/margin_top_inline-expected.txt:
* platform/mac/css1/box_properties/padding-expected.txt:
* platform/mac/css1/box_properties/padding_bottom-expected.txt:
* platform/mac/css1/box_properties/padding_bottom_inline-expected.txt:
* platform/mac/css1/box_properties/padding_inline-expected.txt:
* platform/mac/css1/box_properties/padding_left-expected.txt:
* platform/mac/css1/box_properties/padding_left_inline-expected.txt:
* platform/mac/css1/box_properties/padding_right-expected.txt:
* platform/mac/css1/box_properties/padding_right_inline-expected.txt:
* platform/mac/css1/box_properties/padding_top-expected.txt:
* platform/mac/css1/box_properties/padding_top_inline-expected.txt:
* platform/mac/css1/box_properties/width-expected.txt:
* platform/mac/css1/cascade/cascade_order-expected.txt:
* platform/mac/css1/cascade/important-expected.txt:
* platform/mac/css1/classification/display-expected.txt:
* platform/mac/css1/classification/list_style-expected.txt:
* platform/mac/css1/classification/list_style_image-expected.txt:
* platform/mac/css1/classification/list_style_position-expected.txt:
* platform/mac/css1/classification/list_style_type-expected.txt:
* platform/mac/css1/classification/white_space-expected.txt:
* platform/mac/css1/color_and_background/background-expected.txt:
* platform/mac/css1/color_and_background/background_attachment-expected.txt:
* platform/mac/css1/color_and_background/background_color-expected.txt:
* platform/mac/css1/color_and_background/background_image-expected.txt:
* platform/mac/css1/color_and_background/background_position-expected.txt:
* platform/mac/css1/color_and_background/background_repeat-expected.txt:
* platform/mac/css1/color_and_background/color-expected.txt:
* platform/mac/css1/conformance/forward_compatible_parsing-expected.txt:
* platform/mac/css1/font_properties/font-expected.txt:
* platform/mac/css1/font_properties/font_family-expected.txt:
* platform/mac/css1/font_properties/font_size-expected.txt:
* platform/mac/css1/font_properties/font_style-expected.txt:
* platform/mac/css1/font_properties/font_variant-expected.txt:
* platform/mac/css1/font_properties/font_weight-expected.txt:
* platform/mac/css1/formatting_model/canvas-expected.txt:
* platform/mac/css1/formatting_model/floating_elements-expected.txt:
* platform/mac/css1/formatting_model/height_of_lines-expected.txt:
* platform/mac/css1/formatting_model/inline_elements-expected.txt:
* platform/mac/css1/formatting_model/replaced_elements-expected.txt:
* platform/mac/css1/formatting_model/vertical_formatting-expected.txt:
* platform/mac/css1/pseudo/anchor-expected.txt:
* platform/mac/css1/pseudo/firstletter-expected.txt:
* platform/mac/css1/pseudo/firstline-expected.txt:
* platform/mac/css1/pseudo/multiple_pseudo_elements-expected.txt:
* platform/mac/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
* platform/mac/css1/text_properties/letter_spacing-expected.txt:
* platform/mac/css1/text_properties/line_height-expected.txt:
* platform/mac/css1/text_properties/text_align-expected.txt:
* platform/mac/css1/text_properties/text_decoration-expected.txt:
* platform/mac/css1/text_properties/text_indent-expected.txt:
* platform/mac/css1/text_properties/text_transform-expected.txt:
* platform/mac/css1/text_properties/vertical_align-expected.txt:
* platform/mac/css1/text_properties/word_spacing-expected.txt:
* platform/mac/css1/units/color_units-expected.txt:
* platform/mac/css1/units/length_units-expected.txt:
* platform/mac/css1/units/percentage_units-expected.txt:
* platform/mac/css1/units/urls-expected.txt:
* platform/mac/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
* platform/mac/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
* platform/mac/editing/selection/designmode-no-caret-expected.txt:
* platform/mac/fast/css/empty-pseudo-class-expected.txt:
* platform/mac/fast/css/first-child-pseudo-class-expected.txt:
* platform/mac/fast/css/last-child-pseudo-class-expected.txt:
* platform/mac/fast/css/only-child-pseudo-class-expected.txt:
* platform/mac/fast/forms/targeted-frame-submission-expected.txt:
* platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
* platform/mac/fast/html/listing-expected.txt:
* platform/mac/fast/invalid/junk-data-expected.txt:
* platform/mac/fast/invalid/missing-end-tag-expected.txt:
* platform/mac/fast/loader/text-document-wrapping-expected.txt:
* platform/mac/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
* platform/mac/fast/parser/xhtml-alternate-entities-expected.txt:
* platform/mac/fast/table/border-collapsing/004-expected.txt:
* platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
* platform/mac/fast/text/whitespace/001-expected.txt: Added.
* platform/mac/fast/text/whitespace/013-expected.txt: Added.
* platform/mac/fast/text/whitespace/014-expected.txt: Added.
* platform/mac/fast/text/whitespace/022-expected.txt: Added.
* platform/mac/fast/text/whitespace/024-expected.txt:
* platform/mac/fast/text/whitespace/030-expected.txt:
* platform/mac/fast/xsl/xslt-extra-content-at-end-expected.txt:
* platform/mac/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
* platform/mac/http/tests/misc/acid3-expected.txt:
* platform/mac/svg/custom/bug45331-expected.txt:
* platform/mac/svg/custom/junk-data-expected.txt:
* platform/mac/svg/custom/missing-xlink-expected.txt:
* platform/mac/svg/custom/path-bad-data-expected.txt:
* platform/mac/svg/custom/use-font-face-crash-expected.txt:
* platform/mac/svg/hixie/error/012-expected.txt:
* platform/mac/tables/mozilla/bugs/45621-expected.txt:
* platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175259 268f45cc-cd09-0410-ab3c-d52691b4dbfc

146 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac-mavericks/fast/forms/targeted-frame-submission-expected.txt
LayoutTests/platform/mac-mountainlion/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
LayoutTests/platform/mac/css1/basic/containment-expected.txt
LayoutTests/platform/mac/css1/basic/contextual_selectors-expected.txt
LayoutTests/platform/mac/css1/basic/grouping-expected.txt
LayoutTests/platform/mac/css1/basic/id_as_selector-expected.txt
LayoutTests/platform/mac/css1/basic/inheritance-expected.txt
LayoutTests/platform/mac/css1/box_properties/border-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_bottom-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_bottom_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_bottom_width-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_bottom_width_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_color-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_color_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_left-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_left_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_left_width-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_left_width_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_right-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_right_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_right_width-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_right_width_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_style-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_style_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_top-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_top_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_top_width-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_top_width_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_width-expected.txt
LayoutTests/platform/mac/css1/box_properties/border_width_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/clear-expected.txt
LayoutTests/platform/mac/css1/box_properties/clear_float-expected.txt
LayoutTests/platform/mac/css1/box_properties/float-expected.txt
LayoutTests/platform/mac/css1/box_properties/float_elements_in_series-expected.txt
LayoutTests/platform/mac/css1/box_properties/float_margin-expected.txt
LayoutTests/platform/mac/css1/box_properties/height-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_bottom-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_bottom_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_left-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_left_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_right-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_right_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_top-expected.txt
LayoutTests/platform/mac/css1/box_properties/margin_top_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_bottom-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_bottom_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_left-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_left_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_right-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_right_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_top-expected.txt
LayoutTests/platform/mac/css1/box_properties/padding_top_inline-expected.txt
LayoutTests/platform/mac/css1/box_properties/width-expected.txt
LayoutTests/platform/mac/css1/cascade/cascade_order-expected.txt
LayoutTests/platform/mac/css1/cascade/important-expected.txt
LayoutTests/platform/mac/css1/classification/display-expected.txt
LayoutTests/platform/mac/css1/classification/list_style-expected.txt
LayoutTests/platform/mac/css1/classification/list_style_image-expected.txt
LayoutTests/platform/mac/css1/classification/list_style_position-expected.txt
LayoutTests/platform/mac/css1/classification/list_style_type-expected.txt
LayoutTests/platform/mac/css1/classification/white_space-expected.txt
LayoutTests/platform/mac/css1/color_and_background/background-expected.txt
LayoutTests/platform/mac/css1/color_and_background/background_attachment-expected.txt
LayoutTests/platform/mac/css1/color_and_background/background_color-expected.txt
LayoutTests/platform/mac/css1/color_and_background/background_image-expected.txt
LayoutTests/platform/mac/css1/color_and_background/background_position-expected.txt
LayoutTests/platform/mac/css1/color_and_background/background_repeat-expected.txt
LayoutTests/platform/mac/css1/color_and_background/color-expected.txt
LayoutTests/platform/mac/css1/conformance/forward_compatible_parsing-expected.txt
LayoutTests/platform/mac/css1/font_properties/font-expected.txt
LayoutTests/platform/mac/css1/font_properties/font_family-expected.txt
LayoutTests/platform/mac/css1/font_properties/font_size-expected.txt
LayoutTests/platform/mac/css1/font_properties/font_style-expected.txt
LayoutTests/platform/mac/css1/font_properties/font_variant-expected.txt
LayoutTests/platform/mac/css1/font_properties/font_weight-expected.txt
LayoutTests/platform/mac/css1/formatting_model/canvas-expected.txt
LayoutTests/platform/mac/css1/formatting_model/floating_elements-expected.txt
LayoutTests/platform/mac/css1/formatting_model/height_of_lines-expected.txt
LayoutTests/platform/mac/css1/formatting_model/inline_elements-expected.txt
LayoutTests/platform/mac/css1/formatting_model/replaced_elements-expected.txt
LayoutTests/platform/mac/css1/formatting_model/vertical_formatting-expected.txt
LayoutTests/platform/mac/css1/pseudo/anchor-expected.txt
LayoutTests/platform/mac/css1/pseudo/firstletter-expected.txt
LayoutTests/platform/mac/css1/pseudo/firstline-expected.txt
LayoutTests/platform/mac/css1/pseudo/multiple_pseudo_elements-expected.txt
LayoutTests/platform/mac/css1/pseudo/pseudo_elements_in_selectors-expected.txt
LayoutTests/platform/mac/css1/text_properties/letter_spacing-expected.txt
LayoutTests/platform/mac/css1/text_properties/line_height-expected.txt
LayoutTests/platform/mac/css1/text_properties/text_align-expected.txt
LayoutTests/platform/mac/css1/text_properties/text_decoration-expected.txt
LayoutTests/platform/mac/css1/text_properties/text_indent-expected.txt
LayoutTests/platform/mac/css1/text_properties/text_transform-expected.txt
LayoutTests/platform/mac/css1/text_properties/vertical_align-expected.txt
LayoutTests/platform/mac/css1/text_properties/word_spacing-expected.txt
LayoutTests/platform/mac/css1/units/color_units-expected.txt
LayoutTests/platform/mac/css1/units/length_units-expected.txt
LayoutTests/platform/mac/css1/units/percentage_units-expected.txt
LayoutTests/platform/mac/css1/units/urls-expected.txt
LayoutTests/platform/mac/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt
LayoutTests/platform/mac/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt
LayoutTests/platform/mac/editing/selection/designmode-no-caret-expected.txt
LayoutTests/platform/mac/fast/css/empty-pseudo-class-expected.txt
LayoutTests/platform/mac/fast/css/first-child-pseudo-class-expected.txt
LayoutTests/platform/mac/fast/css/last-child-pseudo-class-expected.txt
LayoutTests/platform/mac/fast/css/only-child-pseudo-class-expected.txt
LayoutTests/platform/mac/fast/forms/targeted-frame-submission-expected.txt
LayoutTests/platform/mac/fast/frames/onlyCommentInIFrame-expected.txt
LayoutTests/platform/mac/fast/html/listing-expected.txt
LayoutTests/platform/mac/fast/invalid/junk-data-expected.txt
LayoutTests/platform/mac/fast/invalid/missing-end-tag-expected.txt
LayoutTests/platform/mac/fast/loader/text-document-wrapping-expected.txt
LayoutTests/platform/mac/fast/overflow/clip-rects-fixed-ancestor-expected.txt
LayoutTests/platform/mac/fast/parser/xhtml-alternate-entities-expected.txt
LayoutTests/platform/mac/fast/table/border-collapsing/004-expected.txt
LayoutTests/platform/mac/fast/table/border-collapsing/004-vertical-expected.txt
LayoutTests/platform/mac/fast/text/whitespace/001-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac/fast/text/whitespace/013-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac/fast/text/whitespace/014-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac/fast/text/whitespace/022-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac/fast/text/whitespace/024-expected.txt
LayoutTests/platform/mac/fast/text/whitespace/030-expected.txt
LayoutTests/platform/mac/fast/xsl/xslt-extra-content-at-end-expected.txt
LayoutTests/platform/mac/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt
LayoutTests/platform/mac/http/tests/misc/acid3-expected.txt
LayoutTests/platform/mac/svg/custom/bug45331-expected.txt
LayoutTests/platform/mac/svg/custom/junk-data-expected.txt
LayoutTests/platform/mac/svg/custom/missing-xlink-expected.txt
LayoutTests/platform/mac/svg/custom/path-bad-data-expected.txt
LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.txt
LayoutTests/platform/mac/svg/hixie/error/012-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/45621-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug21518-expected.txt
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug22122-expected.txt
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/rendering/SimpleLineLayout.cpp
Source/WebCore/rendering/SimpleLineLayout.h

index 153cd1a..a8454e1 100644 (file)
@@ -1,3 +1,154 @@
+2014-10-28  Zalan Bujtas  <zalan@apple.com>
+
+        Speed up line parsing for simple line layout.
+        https://bugs.webkit.org/show_bug.cgi?id=137275
+
+        Reviewed by Antti Koivisto.
+
+        This patch removes empty line-break runs. Rebaseline.
+
+        * platform/mac-mountainlion/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
+        * platform/mac/css1/basic/containment-expected.txt:
+        * platform/mac/css1/basic/contextual_selectors-expected.txt:
+        * platform/mac/css1/basic/grouping-expected.txt:
+        * platform/mac/css1/basic/id_as_selector-expected.txt:
+        * platform/mac/css1/basic/inheritance-expected.txt:
+        * platform/mac/css1/box_properties/border-expected.txt:
+        * platform/mac/css1/box_properties/border_bottom-expected.txt:
+        * platform/mac/css1/box_properties/border_bottom_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_bottom_width-expected.txt:
+        * platform/mac/css1/box_properties/border_bottom_width_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_color-expected.txt:
+        * platform/mac/css1/box_properties/border_color_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_left-expected.txt:
+        * platform/mac/css1/box_properties/border_left_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_left_width-expected.txt:
+        * platform/mac/css1/box_properties/border_left_width_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_right-expected.txt:
+        * platform/mac/css1/box_properties/border_right_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_right_width-expected.txt:
+        * platform/mac/css1/box_properties/border_right_width_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_style-expected.txt:
+        * platform/mac/css1/box_properties/border_style_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_top-expected.txt:
+        * platform/mac/css1/box_properties/border_top_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_top_width-expected.txt:
+        * platform/mac/css1/box_properties/border_top_width_inline-expected.txt:
+        * platform/mac/css1/box_properties/border_width-expected.txt:
+        * platform/mac/css1/box_properties/border_width_inline-expected.txt:
+        * platform/mac/css1/box_properties/clear-expected.txt:
+        * platform/mac/css1/box_properties/clear_float-expected.txt:
+        * platform/mac/css1/box_properties/float-expected.txt:
+        * platform/mac/css1/box_properties/float_elements_in_series-expected.txt:
+        * platform/mac/css1/box_properties/float_margin-expected.txt:
+        * platform/mac/css1/box_properties/height-expected.txt:
+        * platform/mac/css1/box_properties/margin-expected.txt:
+        * platform/mac/css1/box_properties/margin_bottom-expected.txt:
+        * platform/mac/css1/box_properties/margin_bottom_inline-expected.txt:
+        * platform/mac/css1/box_properties/margin_inline-expected.txt:
+        * platform/mac/css1/box_properties/margin_left-expected.txt:
+        * platform/mac/css1/box_properties/margin_left_inline-expected.txt:
+        * platform/mac/css1/box_properties/margin_right-expected.txt:
+        * platform/mac/css1/box_properties/margin_right_inline-expected.txt:
+        * platform/mac/css1/box_properties/margin_top-expected.txt:
+        * platform/mac/css1/box_properties/margin_top_inline-expected.txt:
+        * platform/mac/css1/box_properties/padding-expected.txt:
+        * platform/mac/css1/box_properties/padding_bottom-expected.txt:
+        * platform/mac/css1/box_properties/padding_bottom_inline-expected.txt:
+        * platform/mac/css1/box_properties/padding_inline-expected.txt:
+        * platform/mac/css1/box_properties/padding_left-expected.txt:
+        * platform/mac/css1/box_properties/padding_left_inline-expected.txt:
+        * platform/mac/css1/box_properties/padding_right-expected.txt:
+        * platform/mac/css1/box_properties/padding_right_inline-expected.txt:
+        * platform/mac/css1/box_properties/padding_top-expected.txt:
+        * platform/mac/css1/box_properties/padding_top_inline-expected.txt:
+        * platform/mac/css1/box_properties/width-expected.txt:
+        * platform/mac/css1/cascade/cascade_order-expected.txt:
+        * platform/mac/css1/cascade/important-expected.txt:
+        * platform/mac/css1/classification/display-expected.txt:
+        * platform/mac/css1/classification/list_style-expected.txt:
+        * platform/mac/css1/classification/list_style_image-expected.txt:
+        * platform/mac/css1/classification/list_style_position-expected.txt:
+        * platform/mac/css1/classification/list_style_type-expected.txt:
+        * platform/mac/css1/classification/white_space-expected.txt:
+        * platform/mac/css1/color_and_background/background-expected.txt:
+        * platform/mac/css1/color_and_background/background_attachment-expected.txt:
+        * platform/mac/css1/color_and_background/background_color-expected.txt:
+        * platform/mac/css1/color_and_background/background_image-expected.txt:
+        * platform/mac/css1/color_and_background/background_position-expected.txt:
+        * platform/mac/css1/color_and_background/background_repeat-expected.txt:
+        * platform/mac/css1/color_and_background/color-expected.txt:
+        * platform/mac/css1/conformance/forward_compatible_parsing-expected.txt:
+        * platform/mac/css1/font_properties/font-expected.txt:
+        * platform/mac/css1/font_properties/font_family-expected.txt:
+        * platform/mac/css1/font_properties/font_size-expected.txt:
+        * platform/mac/css1/font_properties/font_style-expected.txt:
+        * platform/mac/css1/font_properties/font_variant-expected.txt:
+        * platform/mac/css1/font_properties/font_weight-expected.txt:
+        * platform/mac/css1/formatting_model/canvas-expected.txt:
+        * platform/mac/css1/formatting_model/floating_elements-expected.txt:
+        * platform/mac/css1/formatting_model/height_of_lines-expected.txt:
+        * platform/mac/css1/formatting_model/inline_elements-expected.txt:
+        * platform/mac/css1/formatting_model/replaced_elements-expected.txt:
+        * platform/mac/css1/formatting_model/vertical_formatting-expected.txt:
+        * platform/mac/css1/pseudo/anchor-expected.txt:
+        * platform/mac/css1/pseudo/firstletter-expected.txt:
+        * platform/mac/css1/pseudo/firstline-expected.txt:
+        * platform/mac/css1/pseudo/multiple_pseudo_elements-expected.txt:
+        * platform/mac/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
+        * platform/mac/css1/text_properties/letter_spacing-expected.txt:
+        * platform/mac/css1/text_properties/line_height-expected.txt:
+        * platform/mac/css1/text_properties/text_align-expected.txt:
+        * platform/mac/css1/text_properties/text_decoration-expected.txt:
+        * platform/mac/css1/text_properties/text_indent-expected.txt:
+        * platform/mac/css1/text_properties/text_transform-expected.txt:
+        * platform/mac/css1/text_properties/vertical_align-expected.txt:
+        * platform/mac/css1/text_properties/word_spacing-expected.txt:
+        * platform/mac/css1/units/color_units-expected.txt:
+        * platform/mac/css1/units/length_units-expected.txt:
+        * platform/mac/css1/units/percentage_units-expected.txt:
+        * platform/mac/css1/units/urls-expected.txt:
+        * platform/mac/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
+        * platform/mac/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
+        * platform/mac/editing/selection/designmode-no-caret-expected.txt:
+        * platform/mac/fast/css/empty-pseudo-class-expected.txt:
+        * platform/mac/fast/css/first-child-pseudo-class-expected.txt:
+        * platform/mac/fast/css/last-child-pseudo-class-expected.txt:
+        * platform/mac/fast/css/only-child-pseudo-class-expected.txt:
+        * platform/mac/fast/forms/targeted-frame-submission-expected.txt:
+        * platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
+        * platform/mac/fast/html/listing-expected.txt:
+        * platform/mac/fast/invalid/junk-data-expected.txt:
+        * platform/mac/fast/invalid/missing-end-tag-expected.txt:
+        * platform/mac/fast/loader/text-document-wrapping-expected.txt:
+        * platform/mac/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
+        * platform/mac/fast/parser/xhtml-alternate-entities-expected.txt:
+        * platform/mac/fast/table/border-collapsing/004-expected.txt:
+        * platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
+        * platform/mac/fast/text/whitespace/001-expected.txt: Added.
+        * platform/mac/fast/text/whitespace/013-expected.txt: Added.
+        * platform/mac/fast/text/whitespace/014-expected.txt: Added.
+        * platform/mac/fast/text/whitespace/022-expected.txt: Added.
+        * platform/mac/fast/text/whitespace/024-expected.txt:
+        * platform/mac/fast/text/whitespace/030-expected.txt:
+        * platform/mac/fast/xsl/xslt-extra-content-at-end-expected.txt:
+        * platform/mac/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
+        * platform/mac/http/tests/misc/acid3-expected.txt:
+        * platform/mac/svg/custom/bug45331-expected.txt:
+        * platform/mac/svg/custom/junk-data-expected.txt:
+        * platform/mac/svg/custom/missing-xlink-expected.txt:
+        * platform/mac/svg/custom/path-bad-data-expected.txt:
+        * platform/mac/svg/custom/use-font-face-crash-expected.txt:
+        * platform/mac/svg/hixie/error/012-expected.txt:
+        * platform/mac/tables/mozilla/bugs/45621-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt:
+        * platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
+        * platform/mac/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
+        * platform/mac/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
+        * platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
+        * platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
+
 2014-10-28  Rebecca Hauck  <rhauck@adobe.com>
 
         Update CSS shapes suite import
index 57bf65e..a08c472 100644 (file)
@@ -24,5 +24,4 @@ layer at (0,0) size 800x600
                 RenderBlock {PRE} at (0,0) size 284x15
                   RenderText {#text} at (0,0) size 56x15
                     text run at (0,0) width 56: "SUCCESS"
-                    text run at (56,0) width 0: " "
         RenderText {#text} at (0,0) size 0x0
index 1ba94c5..1931491 100644 (file)
@@ -97,7 +97,6 @@ layer at (8,8) size 769x1399
             RenderBlock {PRE} at (21,575) size 460x17 [border: (1px dotted #FFFF00)]
               RenderText {#text} at (1,1) size 40x15
                 text run at (1,1) width 40: "  ..."
-                text run at (41,1) width 0: " "
             RenderBlock {P} at (21,608) size 460x20 [border: (1px dotted #FFFF00)]
               RenderText {#text} at (1,1) size 453x18
                 text run at (1,1) width 453: "The dotted borders and lines and the text in the left cell should be white."
index 5fe18f2..220b0f1 100644 (file)
@@ -9,25 +9,15 @@ layer at (0,0) size 785x961
       RenderBlock {PRE} at (0,34) size 769x150
         RenderText {#text} at (0,0) size 728x150
           text run at (0,0) width 624: "<LINK rel=\"stylesheet\" type=\"text/css\" href=\"linktest.css\" title=\"Default SS\">"
-          text run at (624,0) width 0: " "
           text run at (0,15) width 728: "<LINK rel=\"alternate stylesheet\" type=\"text/css\" href=\"linktest2.css\" title=\"Alternate SS\">"
-          text run at (728,15) width 0: " "
           text run at (0,30) width 208: "@import url(imptest1.css);"
-          text run at (208,30) width 0: " "
           text run at (0,45) width 192: "@import \"imptest1a.css\";"
-          text run at (192,45) width 0: " "
           text run at (0,60) width 128: "UL {color: red;}"
-          text run at (128,60) width 0: " "
           text run at (0,75) width 176: ".four {color: purple;}"
-          text run at (176,75) width 0: " "
           text run at (0,90) width 208: "@import url(imptest2.css);"
-          text run at (208,90) width 0: " "
           text run at (0,105) width 32: "<!--"
-          text run at (32,105) width 0: " "
           text run at (0,120) width 168: "P.six {color: green;}"
-          text run at (168,120) width 0: " "
           text run at (0,135) width 24: "-->"
-          text run at (24,135) width 0: " "
       RenderBlock {HR} at (0,197) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,215) size 769x18
         RenderText {#text} at (0,0) size 404x18
index f397463..29ef46a 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 472x60
           text run at (0,0) width 288: "P {color: navy; font-family: serif;}"
-          text run at (288,0) width 0: " "
           text run at (0,15) width 472: "HTML BODY TABLE P {color: purple; font-family: sans-serif;}"
-          text run at (472,15) width 0: " "
           text run at (0,30) width 224: "EM, UL LI LI {color: green;}"
-          text run at (224,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x18 [color=#000080]
index 7006bca..2c0430c 100644 (file)
@@ -9,7 +9,6 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x30
         RenderText {#text} at (0,0) size 272x30
           text run at (0,0) width 272: ".one, .two, .three {color: green;}"
-          text run at (272,0) width 0: " "
           text run at (0,15) width 0: " "
       RenderBlock {HR} at (0,77) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 784x18 [color=#008000]
index f517900..0502154 100644 (file)
@@ -9,19 +9,12 @@ layer at (0,0) size 785x627
       RenderBlock {PRE} at (0,34) size 769x120
         RenderText {#text} at (0,0) size 272x120
           text run at (0,0) width 160: "#one {color: green;}"
-          text run at (160,0) width 0: " "
           text run at (0,15) width 152: "#a1 {color: green;}"
-          text run at (152,15) width 0: " "
           text run at (0,30) width 224: "P#two, P#two2 {color: blue;}"
-          text run at (224,30) width 0: " "
           text run at (0,45) width 272: "P#three, P#three2 {color: purple;}"
-          text run at (272,45) width 0: " "
           text run at (0,60) width 168: "#four {color: green;}"
-          text run at (168,60) width 0: " "
           text run at (0,75) width 152: "#a2 {color: green;}"
-          text run at (152,75) width 0: " "
           text run at (0,90) width 240: "P#five, P#five2 {color: blue;}"
-          text run at (240,90) width 0: " "
           text run at (0,105) width 240: "P#six, P#six2 {color: purple;}"
       RenderBlock {HR} at (0,167) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,185) size 769x18 [color=#008000]
@@ -41,11 +34,9 @@ layer at (0,0) size 785x627
       RenderBlock {PRE} at (0,287) size 769x15
         RenderText {#text} at (0,0) size 392x15
           text run at (0,0) width 392: "This sentence should NOT be blue [PRE ID=\"two2\"]."
-          text run at (392,0) width 0: " "
       RenderBlock {PRE} at (0,315) size 769x15
         RenderText {#text} at (0,0) size 472x15
           text run at (0,0) width 472: "This sentence should be black, not purple [PRE ID=\"three\"]."
-          text run at (472,0) width 0: " "
       RenderBlock {UL} at (0,346) size 769x18
         RenderListItem {LI} at (40,0) size 729x18
           RenderListMarker at (-17,0) size 7x18: bullet
@@ -80,11 +71,9 @@ layer at (0,0) size 785x627
               RenderBlock {PRE} at (4,106) size 400x15
                 RenderText {#text} at (0,0) size 400x15
                   text run at (0,0) width 400: "This sentence should NOT be blue [PRE ID=\"five2\"]."
-                  text run at (400,0) width 0: " "
               RenderBlock {PRE} at (4,134) size 400x15
                 RenderText {#text} at (0,0) size 360x15
                   text run at (0,0) width 360: "This sentence should be black [PRE ID=\"six\"]."
-                  text run at (360,0) width 0: " "
               RenderBlock {UL} at (4,165) size 400x18
                 RenderListItem {LI} at (40,0) size 360x18
                   RenderListMarker at (-17,0) size 7x18: bullet
index e6f8633..8c7189d 100644 (file)
@@ -9,19 +9,12 @@ layer at (0,0) size 785x731
       RenderBlock {PRE} at (0,34) size 769x105
         RenderText {#text} at (0,0) size 272x105
           text run at (0,0) width 160: "BODY {color: green;}"
-          text run at (160,0) width 0: " "
           text run at (0,15) width 136: "H3 {color: blue;}"
-          text run at (136,15) width 0: " "
           text run at (0,30) width 152: "EM {color: purple;}"
-          text run at (152,30) width 0: " "
           text run at (0,45) width 208: ".one {font-style: italic;}"
-          text run at (208,45) width 0: " "
           text run at (0,60) width 272: ".two {text-decoration: underline;}"
-          text run at (272,60) width 0: " "
           text run at (0,75) width 152: "#two {color: navy;}"
-          text run at (152,75) width 0: " "
           text run at (0,90) width 184: ".three {color: purple;}"
-          text run at (184,90) width 0: " "
       RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #008000)]
       RenderBlock {H3} at (0,172) size 769x23 [color=#0000FF]
         RenderText {#text} at (0,0) size 220x22
index 93f23bf..668a1ac 100644 (file)
@@ -9,23 +9,14 @@ layer at (0,0) size 785x1396
       RenderBlock {PRE} at (0,34) size 769x135
         RenderText {#text} at (0,0) size 272x135
           text run at (0,0) width 272: ".one {border: medium black solid;}"
-          text run at (272,0) width 0: " "
           text run at (0,15) width 264: ".two {border: thin maroon ridge;}"
-          text run at (264,15) width 0: " "
           text run at (0,30) width 272: ".three {border: 10px teal outset;}"
-          text run at (272,30) width 0: " "
           text run at (0,45) width 264: ".four {border: 10px olive inset;}"
-          text run at (264,45) width 0: " "
           text run at (0,60) width 224: ".five {border: 10px maroon;}"
-          text run at (224,60) width 0: " "
           text run at (0,75) width 232: ".six {border: maroon double;}"
-          text run at (232,75) width 0: " "
           text run at (0,90) width 256: ".seven {border: left red solid;}"
-          text run at (256,90) width 0: " "
           text run at (0,105) width 168: ".eight {border: 0px;}"
-          text run at (168,105) width 0: " "
           text run at (0,120) width 232: "TD {border: 2px solid green;}"
-          text run at (232,120) width 0: " "
       RenderBlock {HR} at (0,182) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,200) size 769x36
         RenderText {#text} at (0,0) size 748x36
index c8d4191..417ea01 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 785x995
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 344x60
           text run at (0,0) width 328: ".one {border-bottom: purple double 10px;}"
-          text run at (328,0) width 0: " "
           text run at (0,15) width 320: ".two {border-bottom: purple thin solid;}"
-          text run at (320,15) width 0: " "
           text run at (0,30) width 344: ".three {border-bottom: black medium solid;}"
-          text run at (344,30) width 0: " "
           text run at (0,45) width 288: "TD {border-bottom: green 2px solid;}"
-          text run at (288,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 769x36
         RenderText {#text} at (0,0) size 731x36
index ea04e9e..75857a3 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 328x45
           text run at (0,0) width 328: ".one {border-bottom: purple double 10px;}"
-          text run at (328,0) width 0: " "
           text run at (0,15) width 320: ".two {border-bottom: purple thin solid;}"
-          text run at (320,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x54 [bgcolor=#C0C0C0]
index 51628d4..155e766 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x877
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 464x90
           text run at (0,0) width 456: ".zero {background-color: silver; border-bottom-width: 0;}"
-          text run at (456,0) width 0: " "
           text run at (0,15) width 432: ".one {border-bottom-width: 50px; border-style: solid;}"
-          text run at (432,15) width 0: " "
           text run at (0,30) width 440: ".two {border-bottom-width: thick; border-style: solid;}"
-          text run at (440,30) width 0: " "
           text run at (0,45) width 464: ".three {border-bottom-width: medium; border-style: solid;}"
-          text run at (464,45) width 0: " "
           text run at (0,60) width 440: ".four {border-bottom-width: thin; border-style: solid;}"
-          text run at (440,60) width 0: " "
           text run at (0,75) width 272: ".five {border-bottom-width: 25px;}"
-          text run at (272,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18
         RenderText {#text} at (0,0) size 157x18
index 3eb2088..2ed9c6c 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 432x45
           text run at (0,0) width 432: ".one {border-bottom-width: 25px; border-style: solid;}"
-          text run at (432,0) width 0: " "
           text run at (0,15) width 432: ".two {border-bottom-width: thin; border-style: solid;}"
-          text run at (432,15) width 0: " "
           text run at (0,30) width 280: ".three {border-bottom-width: 25px;}"
-          text run at (280,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x100 [border: (3px solid #000000) (25px solid #000000) (3px solid #000000)]
         RenderText {#text} at (3,3) size 172x18
index ab1319d..092f42e 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 728x45
           text run at (0,0) width 392: ".one {border-color: purple; border-style: solid;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 568: ".two {border-color: purple; border-width: medium; border-style: solid;}"
-          text run at (568,15) width 0: " "
           text run at (0,30) width 728: ".three {border-color: purple green blue yellow; border-width: medium; border-style: solid;}"
-          text run at (728,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x24 [border: (3px solid #800080)]
         RenderText {#text} at (3,3) size 357x18
index 5ab5741..95deff0 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 728x45
           text run at (0,0) width 392: ".one {border-color: purple; border-style: solid;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 568: ".two {border-color: purple; border-width: medium; border-style: solid;}"
-          text run at (568,15) width 0: " "
           text run at (0,30) width 728: ".three {border-color: purple green blue yellow; border-width: medium; border-style: solid;}"
-          text run at (728,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x72 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 677x18
index 886cf11..d6e2adc 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 256x45
           text run at (0,0) width 256: ".one {border: 10px teal outset;}"
-          text run at (256,0) width 0: " "
           text run at (0,15) width 256: ".two {border: 10px olive inset;}"
-          text run at (256,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x54 [bgcolor=#C0C0C0]
index b4ff7c7..f43df83 100644 (file)
@@ -9,19 +9,12 @@ layer at (0,0) size 785x1028
       RenderBlock {PRE} at (0,34) size 769x105
         RenderText {#text} at (0,0) size 344x105
           text run at (0,0) width 176: "P {margin-left: 20px;}"
-          text run at (176,0) width 0: " "
           text run at (0,15) width 312: ".one {border-left: purple double 10px;}"
-          text run at (312,15) width 0: " "
           text run at (0,30) width 304: ".two {border-left: purple thin solid;}"
-          text run at (304,30) width 0: " "
           text run at (0,45) width 336: ".threea {border-left: black medium solid;}"
-          text run at (336,45) width 0: " "
           text run at (0,60) width 344: ".threeb {border-left: purple medium solid;}"
-          text run at (344,60) width 0: " "
           text run at (0,75) width 328: ".threec {border-left: blue medium solid;}"
-          text run at (328,75) width 0: " "
           text run at (0,90) width 272: "TD {border-left: green 2px solid;}"
-          text run at (272,90) width 0: " "
       RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (20,170) size 749x36
         RenderText {#text} at (0,0) size 707x36
index a0a6650..47faf71 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 312x60
           text run at (0,0) width 176: "P {margin-left: 20px;}"
-          text run at (176,0) width 0: " "
           text run at (0,15) width 312: ".one {border-left: purple double 10px;}"
-          text run at (312,15) width 0: " "
           text run at (0,30) width 304: ".two {border-left: purple thin solid;}"
-          text run at (304,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (20,125) size 764x54 [bgcolor=#C0C0C0]
index 2aab792..9c0566c 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x823
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 448x90
           text run at (0,0) width 440: ".zero {background-color: silver; border-left-width: 0;}"
-          text run at (440,0) width 0: " "
           text run at (0,15) width 416: ".one {border-left-width: 50px; border-style: solid;}"
-          text run at (416,15) width 0: " "
           text run at (0,30) width 424: ".two {border-left-width: thick; border-style: solid;}"
-          text run at (424,30) width 0: " "
           text run at (0,45) width 448: ".three {border-left-width: medium; border-style: solid;}"
-          text run at (448,45) width 0: " "
           text run at (0,60) width 424: ".four {border-left-width: thin; border-style: solid;}"
-          text run at (424,60) width 0: " "
           text run at (0,75) width 256: ".five {border-left-width: 25px;}"
-          text run at (256,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18
         RenderText {#text} at (0,0) size 157x18
index b2a7fe3..e63f237 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 416x45
           text run at (0,0) width 416: ".one {border-left-width: 25px; border-style: solid;}"
-          text run at (416,0) width 0: " "
           text run at (0,15) width 416: ".two {border-left-width: thin; border-style: solid;}"
-          text run at (416,15) width 0: " "
           text run at (0,30) width 264: ".three {border-left-width: 25px;}"
-          text run at (264,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x78 [border: (3px solid #000000) (25px solid #000000)]
         RenderText {#text} at (25,3) size 172x18
index 0ca1d5d..37371a0 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 320x60
           text run at (0,0) width 184: "P {margin-right: 20px;}"
-          text run at (184,0) width 0: " "
           text run at (0,15) width 320: ".one {border-right: purple double 10px;}"
-          text run at (320,15) width 0: " "
           text run at (0,30) width 312: ".two {border-right: purple thin solid;}"
-          text run at (312,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 764x54 [bgcolor=#C0C0C0]
index fb2dcc4..f0bff1e 100644 (file)
@@ -9,19 +9,12 @@ layer at (0,0) size 785x1082
       RenderBlock {PRE} at (0,34) size 769x105
         RenderText {#text} at (0,0) size 352x105
           text run at (0,0) width 184: "P {margin-right: 20px;}"
-          text run at (184,0) width 0: " "
           text run at (0,15) width 320: ".one {border-right: purple double 10px;}"
-          text run at (320,15) width 0: " "
           text run at (0,30) width 312: ".two {border-right: purple thin solid;}"
-          text run at (312,30) width 0: " "
           text run at (0,45) width 344: ".threea {border-right: black medium solid;}"
-          text run at (344,45) width 0: " "
           text run at (0,60) width 352: ".threeb {border-right: purple medium solid;}"
-          text run at (352,60) width 0: " "
           text run at (0,75) width 336: ".threec {border-right: blue medium solid;}"
-          text run at (336,75) width 0: " "
           text run at (0,90) width 280: "TD {border-right: green 2px solid;}"
-          text run at (280,90) width 0: " "
       RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,170) size 749x36
         RenderText {#text} at (0,0) size 716x36
index cfa52b5..afe5aae 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x841
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 456x90
           text run at (0,0) width 448: ".zero {background-color: silver; border-right-width: 0;}"
-          text run at (448,0) width 0: " "
           text run at (0,15) width 424: ".one {border-right-width: 25px; border-style: solid;}"
-          text run at (424,15) width 0: " "
           text run at (0,30) width 432: ".two {border-right-width: thick; border-style: solid;}"
-          text run at (432,30) width 0: " "
           text run at (0,45) width 456: ".three {border-right-width: medium; border-style: solid;}"
-          text run at (456,45) width 0: " "
           text run at (0,60) width 432: ".four {border-right-width: thin; border-style: solid;}"
-          text run at (432,60) width 0: " "
           text run at (0,75) width 272: ".five {border-right-width: 100px;}"
-          text run at (272,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18
         RenderText {#text} at (0,0) size 157x18
index bf4e0c3..465b487 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 424x45
           text run at (0,0) width 424: ".one {border-right-width: 25px; border-style: solid;}"
-          text run at (424,0) width 0: " "
           text run at (0,15) width 424: ".two {border-right-width: thin; border-style: solid;}"
-          text run at (424,15) width 0: " "
           text run at (0,30) width 272: ".three {border-right-width: 25px;}"
-          text run at (272,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x78 [border: (3px solid #000000) (25px solid #000000) (3px solid #000000)]
         RenderText {#text} at (3,3) size 172x18
index c752679..d4f5ee9 100644 (file)
@@ -9,29 +9,17 @@ layer at (0,0) size 785x1301
       RenderBlock {PRE} at (0,34) size 769x180
         RenderText {#text} at (0,0) size 632x180
           text run at (0,0) width 560: ".one {border-style: dotted; border-color: black; border-width: thick;}"
-          text run at (560,0) width 0: " "
           text run at (0,15) width 560: ".two {border-style: dashed; border-color: black; border-width: thick;}"
-          text run at (560,15) width 0: " "
           text run at (0,30) width 568: ".three {border-style: solid; border-color: black; border-width: thick;}"
-          text run at (568,30) width 0: " "
           text run at (0,45) width 568: ".four {border-style: double; border-color: black; border-width: thick;}"
-          text run at (568,45) width 0: " "
           text run at (0,60) width 568: ".five {border-style: groove; border-color: olive; border-width: thick;}"
-          text run at (568,60) width 0: " "
           text run at (0,75) width 552: ".six {border-style: ridge; border-color: olive; border-width: thick;}"
-          text run at (552,75) width 0: " "
           text run at (0,90) width 568: ".seven {border-style: inset; border-color: olive; border-width: thick;}"
-          text run at (568,90) width 0: " "
           text run at (0,105) width 576: ".eight {border-style: outset; border-color: olive; border-width: thick;}"
-          text run at (576,105) width 0: " "
           text run at (0,120) width 632: ".nine {border-style: double groove; border-color: purple; border-width: thick;}"
-          text run at (632,120) width 0: " "
           text run at (0,135) width 368: ".ten {border-style: double groove ridge inset;"
-          text run at (368,135) width 0: " "
           text run at (0,150) width 368: "   border-color: purple; border-width: thick;}"
-          text run at (368,150) width 0: " "
           text run at (0,165) width 552: ".eleven {border-style: none; border-color: red; border-width: thick;}"
-          text run at (552,165) width 0: " "
       RenderBlock {HR} at (0,227) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,245) size 769x28 [border: (5px dotted #000000)]
         RenderText {#text} at (5,5) size 472x18
index 88fa3d8..57e8f6f 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 568x45
           text run at (0,0) width 560: ".one {border-style: dashed; border-color: black; border-width: thick;}"
-          text run at (560,0) width 0: " "
           text run at (0,15) width 544: ".two {border-style: groove; border-color: red; border-width: thick;}"
-          text run at (544,15) width 0: " "
           text run at (0,30) width 568: ".three {border-style: none; border-color: purple; border-width: thick;}"
-          text run at (568,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x54 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 664x18
index 3cfa154..30c72e5 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 785x959
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 320x60
           text run at (0,0) width 304: ".one {border-top: purple double 10px;}"
-          text run at (304,0) width 0: " "
           text run at (0,15) width 296: ".two {border-top: purple thin solid;}"
-          text run at (296,15) width 0: " "
           text run at (0,30) width 320: ".three {border-top: black medium solid;}"
-          text run at (320,30) width 0: " "
           text run at (0,45) width 264: "TD {border-top: green 2px solid;}"
-          text run at (264,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 769x36
         RenderText {#text} at (0,0) size 755x36
index 60798d3..2760218 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 304x45
           text run at (0,0) width 304: ".one {border-top: purple double 10px;}"
-          text run at (304,0) width 0: " "
           text run at (0,15) width 296: ".two {border-top: purple thin solid;}"
-          text run at (296,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x54 [bgcolor=#C0C0C0]
index b282f9f..ae7b474 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x759
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 440x90
           text run at (0,0) width 432: ".zero {background-color: silver; border-top-width: 0;}"
-          text run at (432,0) width 0: " "
           text run at (0,15) width 408: ".one {border-top-width: 25px; border-style: solid;}"
-          text run at (408,15) width 0: " "
           text run at (0,30) width 416: ".two {border-top-width: thick; border-style: solid;}"
-          text run at (416,30) width 0: " "
           text run at (0,45) width 440: ".three {border-top-width: medium; border-style: solid;}"
-          text run at (440,45) width 0: " "
           text run at (0,60) width 416: ".four {border-top-width: thin; border-style: solid;}"
-          text run at (416,60) width 0: " "
           text run at (0,75) width 248: ".five {border-top-width: 25px;}"
-          text run at (248,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18
         RenderText {#text} at (0,0) size 157x18
index 307c998..cb17cdd 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 408x45
           text run at (0,0) width 408: ".one {border-top-width: 25px; border-style: solid;}"
-          text run at (408,0) width 0: " "
           text run at (0,15) width 408: ".two {border-top-width: thin; border-style: solid;}"
-          text run at (408,15) width 0: " "
           text run at (0,30) width 256: ".three {border-top-width: 25px;}"
-          text run at (256,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x82 [border: (25px solid #000000) (3px solid #000000)]
         RenderText {#text} at (3,25) size 172x18
index d5bd330..7c56335 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x903
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 408x90
           text run at (0,0) width 400: ".zero {background-color: silver; border-width: 0;}"
-          text run at (400,0) width 0: " "
           text run at (0,15) width 376: ".one {border-width: 50px; border-style: solid;}"
-          text run at (376,15) width 0: " "
           text run at (0,30) width 384: ".two {border-width: thick; border-style: solid;}"
-          text run at (384,30) width 0: " "
           text run at (0,45) width 408: ".three {border-width: medium; border-style: solid;}"
-          text run at (408,45) width 0: " "
           text run at (0,60) width 384: ".four {border-width: thin; border-style: solid;}"
-          text run at (384,60) width 0: " "
           text run at (0,75) width 216: ".five {border-width: 25px;}"
-          text run at (216,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18
         RenderText {#text} at (0,0) size 157x18
index 5fb4357..3a408cd 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 376x45
           text run at (0,0) width 376: ".one {border-width: 25px; border-style: solid;}"
-          text run at (376,0) width 0: " "
           text run at (0,15) width 376: ".two {border-width: thin; border-style: solid;}"
-          text run at (376,15) width 0: " "
           text run at (0,30) width 224: ".three {border-width: 25px;}"
-          text run at (224,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x104 [border: (25px solid #000000)]
         RenderText {#text} at (25,25) size 172x18
index 82036c3..86d6c84 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 785x961
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 168x60
           text run at (0,0) width 152: ".one {clear: left;}"
-          text run at (152,0) width 0: " "
           text run at (0,15) width 160: ".two {clear: right;}"
-          text run at (160,15) width 0: " "
           text run at (0,30) width 168: ".three {clear: both;}"
-          text run at (168,30) width 0: " "
           text run at (0,45) width 160: ".four {clear: none;}"
-          text run at (160,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderImage {IMG} at (0,117) size 15x50
       RenderBlock {P} at (0,125) size 769x18
index 06fbea8..d93eb20 100644 (file)
@@ -9,20 +9,13 @@ layer at (0,0) size 785x793
       RenderBlock {PRE} at (0,31) size 769x135
         RenderText {#text} at (0,0) size 616x135
           text run at (0,0) width 392: "P { margin: 0; padding: 0; text-align:  justify;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 0: " "
           text run at (0,30) width 384: "DIV.menu {float: left; clear: left; width: 11em;"
-          text run at (384,30) width 0: " "
           text run at (0,45) width 464: "          margin: 0; margin-bottom: 10px; padding: 0.5em;}"
-          text run at (464,45) width 0: " "
           text run at (0,60) width 432: "DIV.menu H1 {font-size: 1.2em; margin: 0; padding: 0;}"
-          text run at (432,60) width 0: " "
           text run at (0,75) width 448: "DIV.menu UL {margin: 0.2em 0.3em 0.2em 1em; padding: 0;}"
-          text run at (448,75) width 0: " "
           text run at (0,90) width 616: "DIV.article {padding: 0.5em; margin: 0; margin-left: 14em; margin-right: 2em;"
-          text run at (616,90) width 0: " "
           text run at (0,105) width 480: "             color: black; background: yellow; clear: none;}"
-          text run at (480,105) width 0: " "
           text run at (0,120) width 0: " "
       RenderBlock {HR} at (0,179) size 769x2 [border: (1px inset #000000)]
       RenderBlock (floating) {DIV} at (0,189) size 192x117 [color=#FFFFFF] [bgcolor=#008000]
index 6c09314..7ba9382 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 160x45
           text run at (0,0) width 152: ".one {float: left;}"
-          text run at (152,0) width 0: " "
           text run at (0,15) width 160: ".two {float: right;}"
-          text run at (160,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderImage {IMG} at (0,102) size 15x50
index 345ce57..998d175 100644 (file)
@@ -9,28 +9,17 @@ layer at (0,0) size 785x699
       RenderBlock {PRE} at (0,31) size 769x195
         RenderText {#text} at (0,0) size 512x195
           text run at (0,0) width 392: "P { margin: 0; padding: 0; text-align:  justify;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 0: " "
           text run at (0,30) width 336: "DIV.yellow, DIV.blue, DIV.red, DIV.green {"
-          text run at (336,30) width 0: " "
           text run at (0,45) width 336: " width: 60px; padding: 20px; margin: 10px;"
-          text run at (336,45) width 0: " "
           text run at (0,60) width 472: " border: 20px solid black; float: left; text-align: center;"
-          text run at (472,60) width 0: " "
           text run at (0,75) width 360: " font-family: \"Times New Roman\",Times,serif;}"
-          text run at (360,75) width 0: " "
           text run at (0,90) width 512: "DIV.yellow {margin-left: 0px; background: yellow; color: black;}"
-          text run at (512,90) width 0: " "
           text run at (0,105) width 336: "DIV.blue {background: blue; color: white;}"
-          text run at (336,105) width 0: " "
           text run at (0,120) width 320: "DIV.red {background: red; color: black;}"
-          text run at (320,120) width 0: " "
           text run at (0,135) width 352: "DIV.green {background: green; color: white;}"
-          text run at (352,135) width 0: " "
           text run at (0,150) width 192: "DIV.below {clear: both;}"
-          text run at (192,150) width 0: " "
           text run at (0,165) width 200: "TABLE {margin: 20px 0px;}"
-          text run at (200,165) width 0: " "
           text run at (0,180) width 0: " "
       RenderBlock {HR} at (0,239) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,249) size 769x36
index 3e3d55b..01bd135 100644 (file)
@@ -9,21 +9,13 @@ layer at (0,0) size 785x1902
       RenderBlock {PRE} at (0,34) size 769x135
         RenderText {#text} at (0,0) size 560x135
           text run at (0,0) width 344: "P.test {background: white; font-size: 20px;"
-          text run at (344,0) width 0: " "
           text run at (0,15) width 560: "        margin-left: 30px; margin-right: 10px; padding: 0; border: 0;}"
-          text run at (560,15) width 0: " "
           text run at (0,30) width 312: "IMG {padding: 0; border: 0; margin: 0;}"
-          text run at (312,30) width 0: " "
           text run at (0,45) width 200: "P.test IMG {float: left;}"
-          text run at (200,45) width 0: " "
           text run at (0,60) width 352: "#img2 {margin-top: 30px; margin-left: 30px;}"
-          text run at (352,60) width 0: " "
           text run at (0,75) width 368: "#img3 {margin-top: -30px; margin-left: -30px;}"
-          text run at (368,75) width 0: " "
           text run at (0,90) width 384: "#img4 {margin-right: 30px; margin-bottom: 30px;}"
-          text run at (384,90) width 0: " "
           text run at (0,105) width 400: "#img5 {margin-right: -30px; margin-bottom: -30px;}"
-          text run at (400,105) width 0: " "
           text run at (0,120) width 0: " "
       RenderBlock {HR} at (0,182) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (30,204) size 729x92 [bgcolor=#FFFFFF]
index fe5755b..414b270 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 785x974
       RenderBlock {PRE} at (0,34) size 769x45
         RenderText {#text} at (0,0) size 168x45
           text run at (0,0) width 160: ".one {height: 50px;}"
-          text run at (160,0) width 0: " "
           text run at (0,15) width 168: ".two {height: 100px;}"
-          text run at (168,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 769x2 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,102) size 769x50
index ec59bc2..1f7bb9c 100644 (file)
@@ -9,19 +9,12 @@ layer at (0,0) size 785x2631
       RenderBlock {PRE} at (0,34) size 769x105
         RenderText {#text} at (0,0) size 360x105
           text run at (0,0) width 352: ".zero {background-color: silver; margin: 0;}"
-          text run at (352,0) width 0: " "
           text run at (0,15) width 360: ".one {margin: 0.5in; background-color: aqua;}"
-          text run at (360,15) width 0: " "
           text run at (0,30) width 352: ".two {margin: 25px; background-color: aqua;}"
-          text run at (352,30) width 0: " "
           text run at (0,45) width 360: ".three {margin: 5em; background-color: aqua;}"
-          text run at (360,45) width 0: " "
           text run at (0,60) width 352: ".four {margin: 25%; background-color: aqua;}"
-          text run at (352,60) width 0: " "
           text run at (0,75) width 168: ".five {margin: 25px;}"
-          text run at (168,75) width 0: " "
           text run at (0,90) width 360: ".six {margin: -10px; background-color: aqua;}"
-          text run at (360,90) width 0: " "
       RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,170) size 769x36
         RenderText {#text} at (0,0) size 738x36
index b96de88..76c4b00 100644 (file)
@@ -9,21 +9,13 @@ layer at (0,0) size 785x1729
       RenderBlock {PRE} at (0,34) size 769x135
         RenderText {#text} at (0,0) size 416x135
           text run at (0,0) width 408: ".zero {background-color: silver; margin-bottom: 0;}"
-          text run at (408,0) width 0: " "
           text run at (0,15) width 416: ".one {margin-bottom: 0.5in; background-color: aqua;}"
-          text run at (416,15) width 0: " "
           text run at (0,30) width 408: ".two {margin-bottom: 25px; background-color: aqua;}"
-          text run at (408,30) width 0: " "
           text run at (0,45) width 416: ".three {margin-bottom: 5em; background-color: aqua;}"
-          text run at (416,45) width 0: " "
           text run at (0,60) width 408: ".four {margin-bottom: 25%; background-color: aqua;}"
-          text run at (408,60) width 0: " "
           text run at (0,75) width 224: ".five {margin-bottom: 25px;}"
-          text run at (224,75) width 0: " "
           text run at (0,90) width 416: ".six {margin-bottom: -10px; background-color: aqua;}"
-          text run at (416,90) width 0: " "
           text run at (0,105) width 176: "P, UL {margin-top: 0;}"
-          text run at (176,105) width 0: " "
           text run at (0,120) width 0: " "
       RenderBlock {HR} at (0,182) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,192) size 769x18 [bgcolor=#C0C0C0]
index 480f25e..f09d579 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x30
         RenderText {#text} at (0,0) size 416x30
           text run at (0,0) width 408: ".one {margin-bottom: 25px; background-color: aqua;}"
-          text run at (408,0) width 0: " "
           text run at (0,15) width 416: ".two {margin-bottom: -10px; background-color: aqua;}"
-          text run at (416,15) width 0: " "
       RenderBlock {HR} at (0,77) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 784x54 [bgcolor=#808080]
         RenderText {#text} at (0,0) size 481x18
index dba2c38..66a7fb3 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 785x714
       RenderBlock {PRE} at (0,34) size 769x45
         RenderText {#text} at (0,0) size 360x45
           text run at (0,0) width 352: ".zero {background-color: silver; margin: 0;}"
-          text run at (352,0) width 0: " "
           text run at (0,15) width 352: ".one {margin: 25px; background-color: aqua;}"
-          text run at (352,15) width 0: " "
           text run at (0,30) width 360: ".two {margin: -10px; background-color: aqua;}"
-          text run at (360,30) width 0: " "
       RenderBlock {HR} at (0,92) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,102) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index cb8dbd8..79a8f2d 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x1005
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 408x90
           text run at (0,0) width 392: ".zero {background-color: silver; margin-left: 0;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 400: ".one {margin-left: 0.5in; background-color: aqua;}"
-          text run at (400,15) width 0: " "
           text run at (0,30) width 392: ".two {margin-left: 25px; background-color: aqua;}"
-          text run at (392,30) width 0: " "
           text run at (0,45) width 400: ".three {margin-left: 5em; background-color: aqua;}"
-          text run at (400,45) width 0: " "
           text run at (0,60) width 392: ".four {margin-left: 25%; background-color: aqua;}"
-          text run at (392,60) width 0: " "
           text run at (0,75) width 408: ".five {margin-left: -10px; background-color: aqua;}"
-          text run at (408,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index 9bf4054..0ddafc0 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x30
         RenderText {#text} at (0,0) size 400x30
           text run at (0,0) width 392: ".one {margin-left: 25px; background-color: aqua;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 400: ".two {margin-left: -10px; background-color: aqua;}"
-          text run at (400,15) width 0: " "
       RenderBlock {HR} at (0,77) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 784x36 [bgcolor=#808080]
         RenderText {#text} at (0,0) size 543x18
index 82f8865..1fa6e75 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x1005
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 560x90
           text run at (0,0) width 552: ".zero {background-color: silver; margin-right: 0; text-align: right;}"
-          text run at (552,0) width 0: " "
           text run at (0,15) width 560: ".one {margin-right: 0.5in; text-align: right; background-color: aqua;}"
-          text run at (560,15) width 0: " "
           text run at (0,30) width 552: ".two {margin-right: 25px; text-align: right; background-color: aqua;}"
-          text run at (552,30) width 0: " "
           text run at (0,45) width 560: ".three {margin-right: 5em; text-align: right; background-color: aqua;}"
-          text run at (560,45) width 0: " "
           text run at (0,60) width 552: ".four {margin-right: 25%; text-align: right; background-color: aqua;}"
-          text run at (552,60) width 0: " "
           text run at (0,75) width 416: ".five {margin-right: -10px; background-color: aqua;}"
-          text run at (416,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (566,0) size 203x18
index 5691826..c84a2f3 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x30
         RenderText {#text} at (0,0) size 552x30
           text run at (0,0) width 552: ".one {margin-right: 25px; text-align: right; background-color: aqua;}"
-          text run at (552,0) width 0: " "
           text run at (0,15) width 408: ".two {margin-right: -10px; background-color: aqua;}"
-          text run at (408,15) width 0: " "
       RenderBlock {HR} at (0,77) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 784x36 [bgcolor=#808080]
         RenderText {#text} at (0,0) size 543x18
index 3ad9a7f..644110f 100644 (file)
@@ -9,21 +9,13 @@ layer at (0,0) size 785x1639
       RenderBlock {PRE} at (0,31) size 769x120
         RenderText {#text} at (0,0) size 392x120
           text run at (0,0) width 384: ".zero {background-color: silver; margin-top: 0;}"
-          text run at (384,0) width 0: " "
           text run at (0,15) width 392: ".one {margin-top: 0.5in; background-color: aqua;}"
-          text run at (392,15) width 0: " "
           text run at (0,30) width 384: ".two {margin-top: 25px; background-color: aqua;}"
-          text run at (384,30) width 0: " "
           text run at (0,45) width 392: ".three {margin-top: 5em; background-color: aqua;}"
-          text run at (392,45) width 0: " "
           text run at (0,60) width 384: ".four {margin-top: 25%; background-color: aqua;}"
-          text run at (384,60) width 0: " "
           text run at (0,75) width 200: ".five {margin-top: 25px;}"
-          text run at (200,75) width 0: " "
           text run at (0,90) width 392: ".six {margin-top: -10px; background-color: aqua;}"
-          text run at (392,90) width 0: " "
           text run at (0,105) width 200: "P, UL {margin-bottom: 0;}"
-          text run at (200,105) width 0: " "
       RenderBlock {HR} at (0,164) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,174) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index 9e44166..34c563b 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 392x60
           text run at (0,0) width 384: ".zero {background-color: silver; margin-top: 0;}"
-          text run at (384,0) width 0: " "
           text run at (0,15) width 384: ".one {margin-top: 25px; background-color: aqua;}"
-          text run at (384,15) width 0: " "
           text run at (0,30) width 392: ".two {margin-top: -10px; background-color: aqua;}"
-          text run at (392,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x54 [bgcolor=#808080]
index 0580167..8a45d86 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x2222
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 376x90
           text run at (0,0) width 360: ".zero {background-color: silver; padding: 0;}"
-          text run at (360,0) width 0: " "
           text run at (0,15) width 368: ".one {padding: 0.5in; background-color: aqua;}"
-          text run at (368,15) width 0: " "
           text run at (0,30) width 360: ".two {padding: 25px; background-color: aqua;}"
-          text run at (360,30) width 0: " "
           text run at (0,45) width 368: ".three {padding: 5em; background-color: aqua;}"
-          text run at (368,45) width 0: " "
           text run at (0,60) width 360: ".four {padding: 25%; background-color: aqua;}"
-          text run at (360,60) width 0: " "
           text run at (0,75) width 376: ".five {padding: -20px; background-color: aqua;}"
-          text run at (376,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index 708fcb4..79d057b 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x1550
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 432x90
           text run at (0,0) width 416: ".zero {background-color: silver; padding-bottom: 0;}"
-          text run at (416,0) width 0: " "
           text run at (0,15) width 424: ".one {padding-bottom: 0.5in; background-color: aqua;}"
-          text run at (424,15) width 0: " "
           text run at (0,30) width 416: ".two {padding-bottom: 25px; background-color: aqua;}"
-          text run at (416,30) width 0: " "
           text run at (0,45) width 424: ".three {padding-bottom: 5em; background-color: aqua;}"
-          text run at (424,45) width 0: " "
           text run at (0,60) width 416: ".four {padding-bottom: 25%; background-color: aqua;}"
-          text run at (416,60) width 0: " "
           text run at (0,75) width 432: ".five {padding-bottom: -20px; background-color: aqua;}"
-          text run at (432,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index d30be33..b60f4da 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 424x45
           text run at (0,0) width 416: ".one {padding-bottom: 25px; background-color: aqua;}"
-          text run at (416,0) width 0: " "
           text run at (0,15) width 424: ".two {padding-bottom: -10px; background-color: aqua;}"
-          text run at (424,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x72 [bgcolor=#808080]
index 3756366..6d72b6b 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 785x753
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 368x60
           text run at (0,0) width 360: ".zero {background-color: silver; padding: 0;}"
-          text run at (360,0) width 0: " "
           text run at (0,15) width 360: ".one {padding: 25px; background-color: aqua;}"
-          text run at (360,15) width 0: " "
           text run at (0,30) width 368: ".two {padding: -10px; background-color: aqua;}"
-          text run at (368,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 769x18 [bgcolor=#C0C0C0]
index cc61507..5aa215f 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x991
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 416x90
           text run at (0,0) width 400: ".zero {background-color: silver; padding-left: 0;}"
-          text run at (400,0) width 0: " "
           text run at (0,15) width 408: ".one {padding-left: 0.5in; background-color: aqua;}"
-          text run at (408,15) width 0: " "
           text run at (0,30) width 400: ".two {padding-left: 25px; background-color: aqua;}"
-          text run at (400,30) width 0: " "
           text run at (0,45) width 408: ".three {padding-left: 5em; background-color: aqua;}"
-          text run at (408,45) width 0: " "
           text run at (0,60) width 400: ".four {padding-left: 25%; background-color: aqua;}"
-          text run at (400,60) width 0: " "
           text run at (0,75) width 416: ".five {padding-left: -20px; background-color: aqua;}"
-          text run at (416,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index aaca0fd..1e0c1e6 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 408x45
           text run at (0,0) width 400: ".one {padding-left: 25px; background-color: aqua;}"
-          text run at (400,0) width 0: " "
           text run at (0,15) width 408: ".two {padding-left: -10px; background-color: aqua;}"
-          text run at (408,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x54 [bgcolor=#808080]
index 327f1ca..ef15ecc 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x1153
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 576x90
           text run at (0,0) width 408: ".zero {background-color: silver; padding-right: 0;}"
-          text run at (408,0) width 0: " "
           text run at (0,15) width 568: ".one {padding-right: 0.5in; text-align: right; background-color: aqua;}"
-          text run at (568,15) width 0: " "
           text run at (0,30) width 560: ".two {padding-right: 25px; text-align: right; background-color: aqua;}"
-          text run at (560,30) width 0: " "
           text run at (0,45) width 568: ".three {padding-right: 5em; text-align: right; background-color: aqua;}"
-          text run at (568,45) width 0: " "
           text run at (0,60) width 560: ".four {padding-right: 25%; text-align: right; background-color: aqua;}"
-          text run at (560,60) width 0: " "
           text run at (0,75) width 576: ".five {padding-right: -20px; text-align: right; background-color: aqua;}"
-          text run at (576,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index a0aeefe..60e6b2f 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 568x45
           text run at (0,0) width 560: ".one {padding-right: 25px; text-align: right; background-color: aqua;}"
-          text run at (560,0) width 0: " "
           text run at (0,15) width 568: ".two {padding-right: -10px; text-align: right; background-color: aqua;}"
-          text run at (568,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x36 [bgcolor=#808080]
index 460d4b3..966004d 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x1464
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 408x90
           text run at (0,0) width 392: ".zero {background-color: silver; padding-top: 0;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 400: ".one {padding-top: 0.5in; background-color: aqua;}"
-          text run at (400,15) width 0: " "
           text run at (0,30) width 392: ".two {padding-top: 25px; background-color: aqua;}"
-          text run at (392,30) width 0: " "
           text run at (0,45) width 400: ".three {padding-top: 5em; background-color: aqua;}"
-          text run at (400,45) width 0: " "
           text run at (0,60) width 392: ".four {padding-top: 25%; background-color: aqua;}"
-          text run at (392,60) width 0: " "
           text run at (0,75) width 408: ".five {padding-top: -20px; background-color: aqua;}"
-          text run at (408,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18 [bgcolor=#C0C0C0]
         RenderText {#text} at (0,0) size 203x18
index a772970..abc44b3 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 400x45
           text run at (0,0) width 392: ".one {padding-top: 25px; background-color: aqua;}"
-          text run at (392,0) width 0: " "
           text run at (0,15) width 400: ".two {padding-top: -10px; background-color: aqua;}"
-          text run at (400,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x72 [bgcolor=#808080]
index bfbad49..65de9ab 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 785x1342
       RenderBlock {PRE} at (0,34) size 769x45
         RenderText {#text} at (0,0) size 152x45
           text run at (0,0) width 152: ".one {width: 50px;}"
-          text run at (152,0) width 0: " "
           text run at (0,15) width 144: ".two {width: 50%;}"
-          text run at (144,15) width 0: " "
           text run at (0,30) width 152: "TABLE {width: 50%;}"
-          text run at (152,30) width 0: " "
       RenderBlock {HR} at (0,92) size 769x2 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,102) size 769x50
         RenderImage {IMG} at (0,0) size 50x50
index d1f1061..ef41a1c 100644 (file)
@@ -9,25 +9,15 @@ layer at (0,0) size 785x790
       RenderBlock {PRE} at (0,34) size 769x165
         RenderText {#text} at (0,0) size 576x165
           text run at (0,0) width 576: "<LINK rel=\"stylesheet\" type=\"text/css\" HREF=\"../resources/linktest.css\">"
-          text run at (576,0) width 0: " "
           text run at (0,15) width 152: "LI {color: purple;}"
-          text run at (152,15) width 0: " "
           text run at (0,30) width 160: "UL LI {color: blue;}"
-          text run at (160,30) width 0: " "
           text run at (0,45) width 184: "UL LI LI {color: gray;}"
-          text run at (184,45) width 0: " "
           text run at (0,60) width 176: "LI.red {color: green;}"
-          text run at (176,60) width 0: " "
           text run at (0,75) width 216: "UL LI.mar {color: #660000;}"
-          text run at (216,75) width 0: " "
           text run at (0,90) width 200: "UL LI#gre {color: green;}"
-          text run at (200,90) width 0: " "
           text run at (0,105) width 160: ".test {color: blue;}"
-          text run at (160,105) width 0: " "
           text run at (0,120) width 176: ".test {color: purple;}"
-          text run at (176,120) width 0: " "
           text run at (0,135) width 296: ".one {text-decoration: line-through;}"
-          text run at (296,135) width 0: " "
           text run at (0,150) width 0: " "
       RenderBlock {HR} at (0,212) size 769x2 [border: (1px inset #000000)]
       RenderBlock {UL} at (0,230) size 769x144
index 2a5945e..60f4584 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 232x60
           text run at (0,0) width 232: "P {color: green ! important;}"
-          text run at (232,0) width 0: " "
           text run at (0,15) width 120: "P {color: red;}"
-          text run at (120,15) width 0: " "
           text run at (0,30) width 176: "P#id1 {color: purple;}"
-          text run at (176,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x36 [color=#008000]
index aeabe3e..0bb2700 100644 (file)
@@ -9,15 +9,10 @@ layer at (0,0) size 785x816
       RenderBlock {PRE} at (0,34) size 769x75
         RenderText {#text} at (0,0) size 568x75
           text run at (0,0) width 176: ".one {display: block;}"
-          text run at (176,0) width 0: " "
           text run at (0,15) width 184: ".two {display: inline;}"
-          text run at (184,15) width 0: " "
           text run at (0,30) width 568: ".three {display: list-item; list-style-type: square; margin-left: 3em;}"
-          text run at (568,30) width 0: " "
           text run at (0,45) width 272: ".four {display: none; color: red;}"
-          text run at (272,45) width 0: " "
           text run at (0,60) width 152: "I {display: block;}"
-          text run at (152,60) width 0: " "
       RenderBlock {HR} at (0,122) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,140) size 769x18
         RenderText {#text} at (0,0) size 293x18
index 9d06628..bbff2f9 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x30
         RenderText {#text} at (0,0) size 496x30
           text run at (0,0) width 304: ".one {list-style: upper-alpha inside;}"
-          text run at (304,0) width 0: " "
           text run at (0,15) width 496: ".two {list-style: url(../resources/oransqr.gif) disc outside;}"
-          text run at (496,15) width 0: " "
       RenderBlock {HR} at (0,77) size 784x2 [border: (1px inset #000000)]
       RenderBlock {UL} at (0,95) size 784x36
         RenderListItem {LI} at (40,0) size 744x36
index b4dc12d..97ba1d5 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 440x45
           text run at (0,0) width 440: ".one {list-style-image: url(../resources/oransqr.gif);}"
-          text run at (440,0) width 0: " "
           text run at (0,15) width 240: ".two {list-style-image: none;}"
-          text run at (240,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {UL} at (0,110) size 784x57
index ac45537..74ee25e 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 288x45
           text run at (0,0) width 288: ".one {list-style-position: outside;}"
-          text run at (288,0) width 0: " "
           text run at (0,15) width 280: ".two {list-style-position: inside;}"
-          text run at (280,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {UL} at (0,110) size 784x36
index 714e5cb..63a7e80 100644 (file)
@@ -9,23 +9,14 @@ layer at (0,0) size 785x1527
       RenderBlock {PRE} at (0,34) size 769x150
         RenderText {#text} at (0,0) size 304x150
           text run at (0,0) width 232: ".one {list-style-type: disc;}"
-          text run at (232,0) width 0: " "
           text run at (0,15) width 248: ".two {list-style-type: circle;}"
-          text run at (248,15) width 0: " "
           text run at (0,30) width 264: ".three {list-style-type: square;}"
-          text run at (264,30) width 0: " "
           text run at (0,45) width 296: ".four {list-style-type: lower-roman;}"
-          text run at (296,45) width 0: " "
           text run at (0,60) width 296: ".five {list-style-type: upper-roman;}"
-          text run at (296,60) width 0: " "
           text run at (0,75) width 288: ".six {list-style-type: lower-alpha;}"
-          text run at (288,75) width 0: " "
           text run at (0,90) width 304: ".seven {list-style-type: upper-alpha;}"
-          text run at (304,90) width 0: " "
           text run at (0,105) width 272: ".eight {list-style-type: decimal;}"
-          text run at (272,105) width 0: " "
           text run at (0,120) width 240: ".nine {list-style-type: none;}"
-          text run at (240,120) width 0: " "
           text run at (0,135) width 0: " "
       RenderBlock {HR} at (0,197) size 769x2 [border: (1px inset #000000)]
       RenderBlock {UL} at (0,215) size 769x54
index 51d906f..10cd0df 100644 (file)
@@ -9,24 +9,17 @@ layer at (0,0) size 800x585
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 232x60
           text run at (0,0) width 192: ".one {white-space: pre;}"
-          text run at (192,0) width 0: " "
           text run at (0,15) width 216: ".two {white-space: nowrap;}"
-          text run at (216,15) width 0: " "
           text run at (0,30) width 232: ".three {white-space: normal;}"
-          text run at (232,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x90
         RenderText {#text} at (0,0) size 569x90
           text run at (0,0) width 0: " "
           text run at (0,18) width 569: "This sentence should     show extra space  where there    would ordinarily         not be any."
-          text run at (569,18) width 0: " "
           text run at (0,36) width 296: "     There should also be preservation of returns"
-          text run at (296,36) width 0: " "
           text run at (0,54) width 97: "as this sentence"
-          text run at (97,54) width 0: " "
           text run at (0,72) width 184: "     very clearly demonstrates."
-          text run at (184,72) width 0: " "
       RenderBlock {P} at (0,231) size 784x18
         RenderText {#text} at (0,0) size 891x18
           text run at (0,0) width 891: "This sentence should not word-wrap, no matter how long the sentence is, as it has been set to nowrap and that should have the obvious effect."
@@ -57,13 +50,9 @@ layer at (0,0) size 800x585
                 RenderText {#text} at (0,0) size 569x90
                   text run at (0,0) width 0: " "
                   text run at (0,18) width 569: "This sentence should     show extra space  where there    would ordinarily         not be any."
-                  text run at (569,18) width 0: " "
                   text run at (0,36) width 296: "     There should also be preservation of returns"
-                  text run at (296,36) width 0: " "
                   text run at (0,54) width 97: "as this sentence"
-                  text run at (97,54) width 0: " "
                   text run at (0,72) width 184: "     very clearly demonstrates."
-                  text run at (184,72) width 0: " "
               RenderBlock {P} at (4,110) size 891x18
                 RenderText {#text} at (0,0) size 891x18
                   text run at (0,0) width 891: "This sentence should not word-wrap, no matter how long the sentence is, as it has been set to nowrap and that should have the obvious effect."
index c73548d..b9a643b 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 785x721
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 648x60
           text run at (0,0) width 648: "BODY {background: green url(../resources/oransqr.gif) repeat-x center top fixed;}"
-          text run at (648,0) width 0: " "
           text run at (0,15) width 568: ".one {background: lime url(../resources/oransqr.gif) repeat-y 100% 0%;}"
-          text run at (568,15) width 0: " "
           text run at (0,30) width 592: ".two {background: lime url(../resources/oransqr.gif) repeat-y center top;}"
-          text run at (592,30) width 0: " "
           text run at (0,45) width 592: ".three {background: lime url(../resources/oransqr.gif) repeat-x left top;}"
-          text run at (592,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 769x54
         RenderText {#text} at (0,0) size 728x18
index 7173764..4552626 100644 (file)
@@ -9,7 +9,6 @@ layer at (0,0) size 785x1195
       RenderBlock {PRE} at (0,34) size 769x30
         RenderText {#text} at (0,0) size 872x30
           text run at (0,0) width 872: "BODY {background-image: url(../resources/bg.gif); background-repeat: repeat-x; background-attachment: fixed;}"
-          text run at (872,0) width 0: " "
           text run at (0,15) width 0: " "
       RenderBlock {HR} at (0,77) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 769x90
@@ -72,15 +71,10 @@ layer at (0,0) size 785x1195
       RenderBlock {PRE} at (0,465) size 769x76
         RenderText {#text} at (0,0) size 296x75
           text run at (0,0) width 72: "  BODY { "
-          text run at (72,0) width 0: " "
           text run at (0,15) width 296: "    background: red url(pendant.gif);"
-          text run at (296,15) width 0: " "
           text run at (0,30) width 256: "    background-repeat: repeat-y;"
-          text run at (256,30) width 0: " "
           text run at (0,45) width 264: "    background-attachment: fixed;"
-          text run at (264,45) width 0: " "
           text run at (0,60) width 24: "  }"
-          text run at (24,60) width 0: " "
       RenderBlock {P} at (0,556) size 769x55
         RenderInline {EM} at (0,0) size 72x18
           RenderText {#text} at (0,0) size 72x18
@@ -161,15 +155,10 @@ layer at (0,0) size 785x1195
               RenderBlock {PRE} at (4,374) size 747x76
                 RenderText {#text} at (0,0) size 296x75
                   text run at (0,0) width 72: "  BODY { "
-                  text run at (72,0) width 0: " "
                   text run at (0,15) width 296: "    background: red url(pendant.gif);"
-                  text run at (296,15) width 0: " "
                   text run at (0,30) width 256: "    background-repeat: repeat-y;"
-                  text run at (256,30) width 0: " "
                   text run at (0,45) width 264: "    background-attachment: fixed;"
-                  text run at (264,45) width 0: " "
                   text run at (0,60) width 24: "  }"
-                  text run at (24,60) width 0: " "
               RenderBlock {P} at (4,465) size 747x55
                 RenderInline {EM} at (0,0) size 72x18
                   RenderText {#text} at (0,0) size 72x18
index bf60885..4b7e042 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 296x60
           text run at (0,0) width 224: "P {background-color: green;}"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 240: ".one {background-color: lime;}"
-          text run at (240,15) width 0: " "
           text run at (0,30) width 296: ".two {background-color: transparent;}"
-          text run at (296,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x18 [bgcolor=#008000]
index f81f5b2..7f493c1 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 376x45
           text run at (0,0) width 376: "P {background-image: url(../resources/bg.gif);}"
-          text run at (376,0) width 0: " "
           text run at (0,15) width 240: ".one {background-image: none;}"
-          text run at (240,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x36
index 4cd0c17..e0ad8aa 100644 (file)
@@ -9,37 +9,21 @@ layer at (0,0) size 785x1458
       RenderBlock {PRE} at (0,34) size 769x255
         RenderText {#text} at (0,0) size 688x255
           text run at (0,0) width 648: "BODY {background-image: url(../resources/bg.gif); background-position: right top;"
-          text run at (648,0) width 0: " "
           text run at (0,15) width 288: "      background-repeat: no-repeat;}"
-          text run at (288,15) width 0: " "
           text run at (0,30) width 624: ".one {background-image: url(../resources/bg.gif); background-position: center;"
-          text run at (624,30) width 0: " "
           text run at (0,45) width 480: "      background-repeat: no-repeat; background-color: aqua;}"
-          text run at (480,45) width 0: " "
           text run at (0,60) width 632: ".two {background-image: url(../resources/bg.gif); background-position: 50% 50%;"
-          text run at (632,60) width 0: " "
           text run at (0,75) width 480: "      background-repeat: no-repeat; background-color: aqua;}"
-          text run at (480,75) width 0: " "
           text run at (0,90) width 688: ".three {background-image: url(../resources/bg.gif); background-position: bottom right;"
-          text run at (688,90) width 0: " "
           text run at (0,105) width 496: "        background-repeat: no-repeat; background-color: aqua;}"
-          text run at (496,105) width 0: " "
           text run at (0,120) width 656: ".four {background-image: url(../resources/bg.gif); background-position: 100% 100%;"
-          text run at (656,120) width 0: " "
           text run at (0,135) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
-          text run at (488,135) width 0: " "
           text run at (0,150) width 632: ".five {background-image: url(../resources/bg.gif); background-position: 0% 50%;"
-          text run at (632,150) width 0: " "
           text run at (0,165) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
-          text run at (488,165) width 0: " "
           text run at (0,180) width 632: ".six {background-image: url(../resources/bg.gif); background-position: 75% 25%;"
-          text run at (632,180) width 0: " "
           text run at (0,195) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
-          text run at (488,195) width 0: " "
           text run at (0,210) width 664: ".seven {background-image: url(../resources/bg.gif); background-position: 20px 20px;"
-          text run at (664,210) width 0: " "
           text run at (0,225) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
-          text run at (488,225) width 0: " "
           text run at (0,240) width 0: " "
       RenderBlock {HR} at (0,302) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,320) size 769x18
index 93509a8..49f8cba 100644 (file)
@@ -9,33 +9,19 @@ layer at (0,0) size 785x1838
       RenderBlock {PRE} at (0,34) size 769x225
         RenderText {#text} at (0,0) size 880x225
           text run at (0,0) width 672: ".one {background-image: url(../resources/oransqr.gif); background-repeat: repeat-y;}"
-          text run at (672,0) width 0: " "
           text run at (0,15) width 672: ".two {background-image: url(../resources/oransqr.gif); background-repeat: repeat-x;}"
-          text run at (672,15) width 0: " "
           text run at (0,30) width 696: ".three {background-image: url(../resources/oransqr.gif); background-repeat: no-repeat;}"
-          text run at (696,30) width 0: " "
           text run at (0,45) width 880: ".four {background-image: url(../resources/bg.gif); background-position: 50% 50%; background-repeat: repeat-y;}"
-          text run at (880,45) width 0: " "
           text run at (0,60) width 704: ".five {background-image: url(../resources/crosshair2.gif); background-position: 50% 50%;"
-          text run at (704,60) width 0: " "
           text run at (0,75) width 240: "       background-color: red;}"
-          text run at (240,75) width 0: " "
           text run at (0,90) width 720: ".six {background-image: url(../resources/crosshair2.gif); background-position: center top;"
-          text run at (720,90) width 0: " "
           text run at (0,105) width 232: "      background-color: red;}"
-          text run at (232,105) width 0: " "
           text run at (0,120) width 720: ".seven {background-image: url(../resources/crosshair2.gif); background-position: top left;"
-          text run at (720,120) width 0: " "
           text run at (0,135) width 248: "        background-color: red;}"
-          text run at (248,135) width 0: " "
           text run at (0,150) width 752: ".eight {background-image: url(../resources/crosshair2.gif); background-position: bottom right;"
-          text run at (752,150) width 0: " "
           text run at (0,165) width 248: "        background-color: red;}"
-          text run at (248,165) width 0: " "
           text run at (0,180) width 704: ".nine {background-image: url(../resources/crosshair2.gif); background-position: 50% 50%;"
-          text run at (704,180) width 0: " "
           text run at (0,195) width 240: "       background-color: red;}"
-          text run at (240,195) width 0: " "
           text run at (0,210) width 0: " "
       RenderBlock {HR} at (0,272) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,290) size 769x54
index 9853a27..cb1fe5b 100644 (file)
@@ -9,7 +9,6 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x30
         RenderText {#text} at (0,0) size 160x30
           text run at (0,0) width 160: ".one {color: green;}"
-          text run at (160,0) width 0: " "
           text run at (0,15) width 0: " "
       RenderBlock {HR} at (0,77) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 784x18 [color=#008000]
index 17152c7..0b272bb 100644 (file)
@@ -9,109 +9,58 @@ layer at (0,0) size 785x4035
       RenderBlock {PRE} at (0,34) size 769x810
         RenderText {#text} at (0,0) size 568x810
           text run at (0,0) width 304: "P.one {color: green; rotation: 70deg;}"
-          text run at (304,0) width 0: " "
           text run at (0,15) width 176: "P.oneb {color: green;}"
-          text run at (176,15) width 0: " "
           text run at (0,30) width 232: "P.oneb {color: invalidValue;}"
-          text run at (232,30) width 0: " "
           text run at (0,45) width 272: "P.two {background-color: inherit;}"
-          text run at (272,45) width 0: " "
           text run at (0,60) width 216: "H1 + P.three {color: blue;}"
-          text run at (216,60) width 0: " "
           text run at (0,75) width 200: "P.four + H1 {color: red;}"
-          text run at (200,75) width 0: " "
           text run at (0,90) width 264: "P.five {background-color: \"red\";}"
-          text run at (264,90) width 0: " "
           text run at (0,105) width 408: "P.sixa {border-width: medium; border-style: solid;}"
-          text run at (408,105) width 0: " "
           text run at (0,120) width 400: "P.sixb {border-width: funny; border-style: solid;}"
-          text run at (400,120) width 0: " "
           text run at (0,135) width 392: "P.sixc {border-width: 50zu; border-style: solid;}"
-          text run at (392,135) width 0: " "
           text run at (0,150) width 376: "P.sixd {border-width: px; border-style: solid;}"
-          text run at (376,150) width 0: " "
           text run at (0,165) width 96: "@three-dee {"
-          text run at (96,165) width 0: " "
           text run at (0,180) width 184: " @background-lighting {"
-          text run at (184,180) width 0: " "
           text run at (0,195) width 136: "  azimuth: 30deg;"
-          text run at (136,195) width 0: " "
           text run at (0,210) width 160: "  elevation: 190deg;"
-          text run at (160,210) width 0: " "
           text run at (0,225) width 24: "  }"
-          text run at (24,225) width 0: " "
           text run at (0,240) width 184: " P.seven { color: red }"
-          text run at (184,240) width 0: " "
           text run at (0,255) width 16: " }"
-          text run at (16,255) width 0: " "
           text run at (0,270) width 184: "P.eight {COLOR: GREEN;}"
-          text run at (184,270) width 0: " "
           text run at (0,285) width 192: "OL:wait {color: maroon;}"
-          text run at (192,285) width 0: " "
           text run at (0,300) width 272: "P.ten:first-child {color: maroon;}"
-          text run at (272,300) width 0: " "
           text run at (0,315) width 208: "UL:lang(fr) {color: gray;}"
-          text run at (208,315) width 0: " "
           text run at (0,330) width 248: "BLOCKQUOTE[href] {color: navy;}"
-          text run at (248,330) width 0: " "
           text run at (0,345) width 288: "ACRONYM[href=\"foo\"] {color: purple;}"
-          text run at (288,345) width 0: " "
           text run at (0,360) width 296: "ADDRESS[href~=\"foo\"] {color: purple;}"
-          text run at (296,360) width 0: " "
           text run at (0,375) width 248: "SPAN[lang|=\"fr\"] {color: #c37;}"
-          text run at (248,375) width 0: " "
           text run at (0,390) width 96: "@media tty {"
-          text run at (96,390) width 0: " "
           text run at (0,405) width 136: " H1 {color: red;}"
-          text run at (136,405) width 0: " "
           text run at (0,420) width 192: " P.sixteen {color: red;}"
-          text run at (192,420) width 0: " "
           text run at (0,435) width 16: " }"
-          text run at (16,435) width 0: " "
           text run at (0,450) width 96: "@three-dee {"
-          text run at (96,450) width 0: " "
           text run at (0,465) width 208: " P.seventeen {color: red }"
-          text run at (208,465) width 0: " "
           text run at (0,480) width 16: " }"
-          text run at (16,480) width 0: " "
           text run at (0,495) width 568: "P.eighteena {text-decoration: underline overline line-through diagonal;"
-          text run at (568,495) width 0: " "
           text run at (0,510) width 416: "            font: bold highlighted 100% sans-serif;}"
-          text run at (416,510) width 0: " "
           text run at (0,525) width 568: "P.eighteenb {text-decoration: underline overline line-through diagonal;"
-          text run at (568,525) width 0: " "
           text run at (0,540) width 376: "            font: bold highlighted 100% serif;}"
-          text run at (376,540) width 0: " "
           text run at (0,555) width 384: "EM, P.nineteena ! EM, STRONG {font-size: 200%; }"
-          text run at (384,555) width 0: " "
           text run at (0,570) width 0: " "
           text run at (0,585) width 128: "// UL.nineteenb,"
-          text run at (128,585) width 0: " "
           text run at (0,600) width 200: "P.nineteenb {color: red;}"
-          text run at (200,600) width 0: " "
           text run at (0,615) width 0: " "
           text run at (0,630) width 360: "P.twentya {rotation-code: \"}\"; color: blue;} "
-          text run at (360,630) width 0: " "
           text run at (0,645) width 392: "P.twentyb {rotation-code: \"\\\"}\\\"\"; color: green;}"
-          text run at (392,645) width 0: " "
           text run at (0,660) width 400: "P.twentyonea {rotation-code: '}'; color: purple;} "
-          text run at (400,660) width 0: " "
           text run at (0,675) width 416: "P.twentyoneb {rotation-code: '\\'}\\''; color: green;}"
-          text run at (416,675) width 0: " "
           text run at (0,690) width 104: "P.twentytwo {"
-          text run at (104,690) width 0: " "
           text run at (0,705) width 376: " type-display: @threedee {rotation-code: '}';};"
-          text run at (376,705) width 0: " "
           text run at (0,720) width 112: " color: green;"
-          text run at (112,720) width 0: " "
           text run at (0,735) width 16: " }"
-          text run at (16,735) width 0: " "
           text run at (0,750) width 280: "P.twentythree {text-indent: 0.5in;}"
-          text run at (280,750) width 0: " "
           text run at (0,765) width 112: " color: maroon"
-          text run at (112,765) width 0: " "
           text run at (0,780) width 208: "P.twentyfour {color: red;}"
-          text run at (208,780) width 0: " "
           text run at (0,795) width 0: " "
       RenderBlock {HR} at (0,857) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,875) size 769x18 [color=#008000]
index 74b45a4..1c643af 100644 (file)
@@ -9,29 +9,17 @@ layer at (0,0) size 785x4194
       RenderBlock {PRE} at (0,26) size 769x168
         RenderText {#text} at (0,0) size 399x168
           text run at (0,0) width 161: "BODY {font-size: 12px;}"
-          text run at (161,0) width 0: " "
           text run at (0,14) width 322: ".one {font: italic small-caps 13pt Helvetica;}"
-          text run at (322,14) width 0: " "
           text run at (0,28) width 203: ".two {font: 150%/150% serif;}"
-          text run at (203,28) width 0: " "
           text run at (0,42) width 252: ".three {font: 150%/150% sans-serif;}"
-          text run at (252,42) width 0: " "
           text run at (0,56) width 231: ".four {font: small/200% cursive;}"
-          text run at (231,56) width 0: " "
           text run at (0,70) width 399: ".five {font: italic small-caps 900 150%/150% sans-serif;}"
-          text run at (399,70) width 0: " "
           text run at (0,84) width 392: ".six {font: italic small-caps 100 150%/300% sans-serif;}"
-          text run at (392,84) width 0: " "
           text run at (0,98) width 392: ".seven {font: italic small-caps 900 150%/2em monospace;}"
-          text run at (392,98) width 0: " "
           text run at (0,112) width 399: ".eight {font: italic small-caps 500 150%/1in sans-serif;}"
-          text run at (399,112) width 0: " "
           text run at (0,126) width 378: ".nine {font: oblique normal 700 18px/200% sans-serif;}"
-          text run at (378,126) width 0: " "
           text run at (0,140) width 301: ".ten {font: normal 400 80%/2.5 sans-serif;}"
-          text run at (301,140) width 0: " "
           text run at (0,154) width 266: "SPAN.color {background-color: silver;}"
-          text run at (266,154) width 0: " "
       RenderBlock {HR} at (0,206) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,220) size 769x14
         RenderText {#text} at (0,0) size 706x14
index bc0c219..f2bddd9 100644 (file)
@@ -9,23 +9,14 @@ layer at (0,0) size 785x1313
       RenderBlock {PRE} at (0,34) size 769x135
         RenderText {#text} at (0,0) size 312x135
           text run at (0,0) width 216: "DIV.a {font-family: serif;}"
-          text run at (216,0) width 0: " "
           text run at (0,15) width 248: "DIV.b {font-family: monospace;}"
-          text run at (248,15) width 0: " "
           text run at (0,30) width 208: ".one {font-family: serif;}"
-          text run at (208,30) width 0: " "
           text run at (0,45) width 248: ".two {font-family: sans-serif;}"
-          text run at (248,45) width 0: " "
           text run at (0,60) width 240: ".three {font-family: cursive;}"
-          text run at (240,60) width 0: " "
           text run at (0,75) width 232: ".four {font-family: fantasy;}"
-          text run at (232,75) width 0: " "
           text run at (0,90) width 248: ".five {font-family: monospace;}"
-          text run at (248,90) width 0: " "
           text run at (0,105) width 312: ".six {font-family: sans-serif,cursive;}"
-          text run at (312,105) width 0: " "
           text run at (0,120) width 304: ".seven {font-family: monospace,serif;}"
-          text run at (304,120) width 0: " "
       RenderBlock {HR} at (0,182) size 769x2 [border: (1px inset #000000)]
       RenderBlock {DIV} at (0,200) size 769x199
         RenderBlock {P} at (0,0) size 769x18
index a0aab7d..42238a6 100644 (file)
@@ -9,43 +9,24 @@ layer at (0,0) size 785x2823
       RenderBlock {PRE} at (0,34) size 769x300
         RenderText {#text} at (0,0) size 224x300
           text run at (0,0) width 200: ".one {font-size: medium;}"
-          text run at (200,0) width 0: " "
           text run at (0,15) width 200: ".two {font-size: larger;}"
-          text run at (200,15) width 0: " "
           text run at (0,30) width 224: ".three {font-size: smaller;}"
-          text run at (224,30) width 0: " "
           text run at (0,45) width 224: ".four {font-size: xx-small;}"
-          text run at (224,45) width 0: " "
           text run at (0,60) width 216: ".five {font-size: x-small;}"
-          text run at (216,60) width 0: " "
           text run at (0,75) width 192: ".six {font-size: small;}"
-          text run at (192,75) width 0: " "
           text run at (0,90) width 208: ".seven {font-size: large;}"
-          text run at (208,90) width 0: " "
           text run at (0,105) width 224: ".eight {font-size: x-large;}"
-          text run at (224,105) width 0: " "
           text run at (0,120) width 224: ".nine {font-size: xx-large;}"
-          text run at (224,120) width 0: " "
           text run at (0,135) width 176: ".a {font-size: 0.5in;}"
-          text run at (176,135) width 0: " "
           text run at (0,150) width 160: ".b {font-size: 1cm;}"
-          text run at (160,150) width 0: " "
           text run at (0,165) width 168: ".c {font-size: 10mm;}"
-          text run at (168,165) width 0: " "
           text run at (0,180) width 168: ".d {font-size: 18pt;}"
-          text run at (168,180) width 0: " "
           text run at (0,195) width 176: ".e {font-size: 1.5pc;}"
-          text run at (176,195) width 0: " "
           text run at (0,210) width 160: ".f {font-size: 2em;}"
-          text run at (160,210) width 0: " "
           text run at (0,225) width 160: ".g {font-size: 3ex;}"
-          text run at (160,225) width 0: " "
           text run at (0,240) width 168: ".h {font-size: 25px;}"
-          text run at (168,240) width 0: " "
           text run at (0,255) width 168: ".i {font-size: 200%;}"
-          text run at (168,255) width 0: " "
           text run at (0,270) width 184: ".j {font-size: -0.5in;}"
-          text run at (184,270) width 0: " "
           text run at (0,285) width 0: " "
       RenderBlock {HR} at (0,347) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,365) size 769x18
index e74df2e..73e1373 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 248x60
           text run at (0,0) width 208: ".one {font-style: italic;}"
-          text run at (208,0) width 0: " "
           text run at (0,15) width 216: ".two {font-style: oblique;}"
-          text run at (216,15) width 0: " "
           text run at (0,30) width 248: ".three, I {font-style: normal;}"
-          text run at (248,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x18
index 9276a7f..1e0a89b 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x45
         RenderText {#text} at (0,0) size 256x45
           text run at (0,0) width 256: ".one {font-variant: small-caps;}"
-          text run at (256,0) width 0: " "
           text run at (0,15) width 224: ".two {font-variant: normal;}"
-          text run at (224,15) width 0: " "
           text run at (0,30) width 0: " "
       RenderBlock {HR} at (0,92) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,110) size 784x18
index 87e1ed0..2813914 100644 (file)
@@ -9,25 +9,15 @@ layer at (0,0) size 785x1046
       RenderBlock {PRE} at (0,34) size 769x165
         RenderText {#text} at (0,0) size 240x165
           text run at (0,0) width 200: ".one {font-weight: bold;}"
-          text run at (200,0) width 0: " "
           text run at (0,15) width 216: ".two {font-weight: bolder;}"
-          text run at (216,15) width 0: " "
           text run at (0,30) width 240: ".three {font-weight: lighter;}"
-          text run at (240,30) width 0: " "
           text run at (0,45) width 200: ".four {font-weight: 100;}"
-          text run at (200,45) width 0: " "
           text run at (0,60) width 200: ".five {font-weight: 300;}"
-          text run at (200,60) width 0: " "
           text run at (0,75) width 192: ".six {font-weight: 500;}"
-          text run at (192,75) width 0: " "
           text run at (0,90) width 208: ".seven {font-weight: 700;}"
-          text run at (208,90) width 0: " "
           text run at (0,105) width 208: ".eight {font-weight: 900;}"
-          text run at (208,105) width 0: " "
           text run at (0,120) width 224: ".nine {font-weight: normal;}"
-          text run at (224,120) width 0: " "
           text run at (0,135) width 200: "B {font-weight: lighter;}"
-          text run at (200,135) width 0: " "
           text run at (0,150) width 0: " "
       RenderBlock {HR} at (0,212) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,230) size 769x18
index b87bc2e..75a3156 100644 (file)
@@ -9,9 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 750x30
         RenderText {#text} at (0,0) size 552x30
           text run at (0,0) width 240: "HTML {background-color: aqua;}"
-          text run at (240,0) width 0: " "
           text run at (0,15) width 552: "BODY {background-color: green; background-image: none; margin: 25px;}"
-          text run at (552,15) width 0: " "
       RenderBlock {HR} at (0,77) size 750x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,95) size 750x54
         RenderText {#text} at (0,0) size 739x54
index 171e192..f6e44ff 100644 (file)
@@ -9,21 +9,13 @@ layer at (0,0) size 785x6281
       RenderBlock {PRE} at (0,34) size 769x135
         RenderText {#text} at (0,0) size 480x135
           text run at (0,0) width 272: "HR.minor {clear: both; width: 5%;}"
-          text run at (272,0) width 0: " "
           text run at (0,15) width 400: "HR.major {clear: both; width: 75%; margin: 1.5em;}"
-          text run at (400,15) width 0: " "
           text run at (0,30) width 480: "DIV {border: 5px solid purple; padding: 0; margin: 0.125em;}"
-          text run at (480,30) width 0: " "
           text run at (0,45) width 432: "P.left, P.right {width: 10em; padding: 1em; margin: 0;"
-          text run at (432,45) width 0: " "
           text run at (0,60) width 424: "   border: 1px solid lime; background-color: silver;}"
-          text run at (424,60) width 0: " "
           text run at (0,75) width 456: "IMG.left, IMG.right {margin: 0; border: 3px solid black;}"
-          text run at (456,75) width 0: " "
           text run at (0,90) width 160: ".left {float: left;}"
-          text run at (160,90) width 0: " "
           text run at (0,105) width 176: ".right {float: right;}"
-          text run at (176,105) width 0: " "
           text run at (0,120) width 0: " "
       RenderBlock {HR} at (0,182) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,200) size 769x36
index 3e3937a..8288ef0 100644 (file)
@@ -9,37 +9,22 @@ layer at (0,0) size 785x2319
       RenderBlock {PRE} at (0,34) size 769x270
         RenderText {#text} at (0,0) size 536x270
           text run at (0,0) width 344: "P.one {font-size: 14px; line-height: 20px;}"
-          text run at (344,0) width 0: " "
           text run at (0,15) width 304: "IMG.onea {vertical-align: text-bottom;"
-          text run at (304,15) width 0: " "
           text run at (0,30) width 272: "     width: 200px; height: 200px;}"
-          text run at (272,30) width 0: " "
           text run at (0,45) width 520: "IMG.oneb {vertical-align: text-top; width: 200px; height: 200px;}"
-          text run at (520,45) width 0: " "
           text run at (0,60) width 0: " "
           text run at (0,75) width 344: "P.two {font-size: 14px; line-height: 20px;}"
-          text run at (344,75) width 0: " "
           text run at (0,90) width 536: "IMG.twoa {vertical-align: text-bottom; width: 100px; height: 100px;"
-          text run at (536,90) width 0: " "
           text run at (0,105) width 312: "     padding: 5px; border-style: solid;"
-          text run at (312,105) width 0: " "
           text run at (0,120) width 312: "     border-width: 10px; margin: 15px;}"
-          text run at (312,120) width 0: " "
           text run at (0,135) width 280: "IMG.twob {vertical-align: text-top;"
-          text run at (280,135) width 0: " "
           text run at (0,150) width 304: "          width: 100px; height: 100px;"
-          text run at (304,150) width 0: " "
           text run at (0,165) width 312: "     padding: 5px; border-style: solid;"
-          text run at (312,165) width 0: " "
           text run at (0,180) width 312: "     border-width: 10px; margin: 15px;}"
-          text run at (312,180) width 0: " "
           text run at (0,195) width 0: " "
           text run at (0,210) width 480: "IMG.twoc {vertical-align: middle; width: 50px; height: 50px;"
-          text run at (480,210) width 0: " "
           text run at (0,225) width 312: "     padding: 5px; border-style: solid;"
-          text run at (312,225) width 0: " "
           text run at (0,240) width 320: "     border-width: 10px; margin: -10px;}"
-          text run at (320,240) width 0: " "
           text run at (0,255) width 0: " "
       RenderBlock {HR} at (0,317) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,333) size 769x463
index 73840c6..06b7d2a 100644 (file)
@@ -9,17 +9,11 @@ layer at (0,0) size 785x779
       RenderBlock {PRE} at (0,34) size 769x105
         RenderText {#text} at (0,0) size 560x105
           text run at (0,0) width 208: "P.one {line-height: 200%;}"
-          text run at (208,0) width 0: " "
           text run at (0,15) width 552: "SPAN.two {border-style: solid; border-width: 10px; border-color: red;"
-          text run at (552,15) width 0: " "
           text run at (0,30) width 304: "          padding: 2pt; margin: 30pt;}"
-          text run at (304,30) width 0: " "
           text run at (0,45) width 360: "P.three {font-size: 10pt; line-height: 12pt;}"
-          text run at (360,45) width 0: " "
           text run at (0,60) width 560: "SPAN.four {border-style: solid; border-width: 12px; border-color: red;"
-          text run at (560,60) width 0: " "
           text run at (0,75) width 192: "          padding: 2pt;}"
-          text run at (192,75) width 0: " "
           text run at (0,90) width 0: " "
       RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,170) size 769x192
index 92ea726..f538fa9 100644 (file)
@@ -9,21 +9,13 @@ layer at (0,0) size 785x2341
       RenderBlock {PRE} at (0,34) size 769x120
         RenderText {#text} at (0,0) size 504x120
           text run at (0,0) width 208: "IMG.one {display: inline;}"
-          text run at (208,0) width 0: " "
           text run at (0,15) width 200: "IMG.two {display: block;}"
-          text run at (200,15) width 0: " "
           text run at (0,30) width 208: "IMG.three {display: block;"
-          text run at (208,30) width 0: " "
           text run at (0,45) width 504: "           margin-right: auto; margin-left: auto; width: auto;}"
-          text run at (504,45) width 0: " "
           text run at (0,60) width 200: "IMG.four {display: block;"
-          text run at (200,60) width 0: " "
           text run at (0,75) width 488: "          margin-right: auto; margin-left: auto; width: 50%;}"
-          text run at (488,75) width 0: " "
           text run at (0,90) width 200: "IMG.five {display: block;"
-          text run at (200,90) width 0: " "
           text run at (0,105) width 464: "          margin-right: 0; margin-left: auto; width: 50%;}"
-          text run at (464,105) width 0: " "
       RenderBlock {HR} at (0,167) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,185) size 769x19
         RenderImage {IMG} at (0,0) size 15x15
index e28d408..df385e7 100644 (file)
@@ -9,43 +9,24 @@ layer at (0,0) size 785x2487
       RenderBlock {PRE} at (0,34) size 769x300
         RenderText {#text} at (0,0) size 496x300
           text run at (0,0) width 368: "P.one {margin-bottom: 2cm; padding-bottom: 0;}"
-          text run at (368,0) width 0: " "
           text run at (0,15) width 320: "P.two {margin-top: 2cm; padding-top: 0;}"
-          text run at (320,15) width 0: " "
           text run at (0,30) width 320: "P.three {margin-top: 0; padding-top: 0;}"
-          text run at (320,30) width 0: " "
           text run at (0,45) width 344: "P.four {margin-top: -1cm; margin-bottom: 0;"
-          text run at (344,45) width 0: " "
           text run at (0,60) width 344: "        padding-top: 0; padding-bottom: 0;}"
-          text run at (344,60) width 0: " "
           text run at (0,75) width 368: "DIV.five {margin-top: 1cm; margin-bottom: 1cm;"
-          text run at (368,75) width 0: " "
           text run at (0,90) width 376: "          padding-top: 1cm; padding-bottom: 0;}"
-          text run at (376,90) width 0: " "
           text run at (0,105) width 344: "P.six {margin-top: 1cm; margin-bottom: 1cm;"
-          text run at (344,105) width 0: " "
           text run at (0,120) width 336: "       padding-top: 0; padding-bottom: 0;}"
-          text run at (336,120) width 0: " "
           text run at (0,135) width 336: "P.seven {margin-top: 1cm; padding-top: 0;}"
-          text run at (336,135) width 0: " "
           text run at (0,150) width 408: "P.eight {margin-bottom: -1cm; padding-bottom: 2cm;}"
-          text run at (408,150) width 0: " "
           text run at (0,165) width 344: "P.nine {margin-top: -1cm; padding-top: 1cm;"
-          text run at (344,165) width 0: " "
           text run at (0,180) width 376: "        padding-bottom: 0; margin-bottom: 1cm;}"
-          text run at (376,180) width 0: " "
           text run at (0,195) width 304: "P.ten {margin-top: 1cm;padding-top: 0;"
-          text run at (304,195) width 0: " "
           text run at (0,210) width 248: "       float: left;width: 50%;}"
-          text run at (248,210) width 0: " "
           text run at (0,225) width 448: "P.eleven {margin-top: 1cm; padding-top: 0; clear: none;}"
-          text run at (448,225) width 0: " "
           text run at (0,240) width 496: "P.twelve {margin-bottom: 0; padding-bottom: 1cm; clear: both;}"
-          text run at (496,240) width 0: " "
           text run at (0,255) width 360: "P.thirteen {margin-top: 0; padding-top: 1cm;}"
-          text run at (360,255) width 0: " "
           text run at (0,270) width 160: "TABLE {clear: both;}"
-          text run at (160,270) width 0: " "
           text run at (0,285) width 0: " "
       RenderBlock {HR} at (0,347) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,365) size 769x36
index ec8e340..65d63ec 100644 (file)
@@ -9,15 +9,10 @@ layer at (0,0) size 785x683
       RenderBlock {PRE} at (0,34) size 769x90
         RenderText {#text} at (0,0) size 200x90
           text run at (0,0) width 136: "A {color: green;}"
-          text run at (136,0) width 0: " "
           text run at (0,15) width 184: "A:link {color: purple;}"
-          text run at (184,15) width 0: " "
           text run at (0,30) width 192: "A:visited {color: lime;}"
-          text run at (192,30) width 0: " "
           text run at (0,45) width 200: "A:active {color: maroon;}"
-          text run at (200,45) width 0: " "
           text run at (0,60) width 176: "#one {color: #006600;}"
-          text run at (176,60) width 0: " "
           text run at (0,75) width 0: " "
       RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,155) size 769x18
index 7830c8c..3fe014d 100644 (file)
@@ -12,11 +12,8 @@ layer at (0,0) size 785x711
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 312x60
           text run at (0,0) width 248: "P:first-letter {color: maroon;}"
-          text run at (248,0) width 0: " "
           text run at (0,15) width 288: ".two:first-letter {font-size: 200%;}"
-          text run at (288,15) width 0: " "
           text run at (0,30) width 312: "P.three:first-letter {font-size: 350%;}"
-          text run at (312,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 769x54
index 213a504..5271d0c 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 785x655
       RenderBlock {PRE} at (0,34) size 769x60
         RenderText {#text} at (0,0) size 360x60
           text run at (0,0) width 224: "P:first-line {color: green;}"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 272: ".two:first-line {font-size: 200%;}"
-          text run at (272,15) width 0: " "
           text run at (0,30) width 360: ".three:first-line {font-variant: small-caps;}"
-          text run at (360,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 769x54
index 3477ba8..8b63e60 100644 (file)
@@ -12,17 +12,11 @@ layer at (0,0) size 785x1030
       RenderBlock {PRE} at (0,34) size 769x105
         RenderText {#text} at (0,0) size 368x105
           text run at (0,0) width 224: "P:first-line {color: green;}"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 248: "P:first-letter {color: maroon;}"
-          text run at (248,15) width 0: " "
           text run at (0,30) width 272: ".two:first-line {font-size: 200%;}"
-          text run at (272,30) width 0: " "
           text run at (0,45) width 288: ".two:first-letter {font-size: 350%;}"
-          text run at (288,45) width 0: " "
           text run at (0,60) width 312: "P.three:first-letter {font-size: 350%;}"
-          text run at (312,60) width 0: " "
           text run at (0,75) width 368: "P.three:first-line {font-variant: small-caps;}"
-          text run at (368,75) width 0: " "
           text run at (0,90) width 0: " "
       RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,170) size 769x54
index db53bc4..b292b63 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 264x60
           text run at (0,0) width 264: "P:first-line {font-weight: bold;}"
-          text run at (264,0) width 0: " "
           text run at (0,15) width 256: "P.two:first-line {color: green;}"
-          text run at (256,15) width 0: " "
           text run at (0,30) width 256: "P:first-line.three {color: red;}"
-          text run at (256,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x36
index e80fcff..7f85b97 100644 (file)
@@ -9,27 +9,16 @@ layer at (0,0) size 785x1378
       RenderBlock {PRE} at (0,34) size 769x165
         RenderText {#text} at (0,0) size 264x165
           text run at (0,0) width 232: ".one {letter-spacing: 0.3in;}"
-          text run at (232,0) width 0: " "
           text run at (0,15) width 232: ".two {letter-spacing: 0.5cm;}"
-          text run at (232,15) width 0: " "
           text run at (0,30) width 232: ".three {letter-spacing: 5mm;}"
-          text run at (232,30) width 0: " "
           text run at (0,45) width 224: ".four {letter-spacing: 3pt;}"
-          text run at (224,45) width 0: " "
           text run at (0,60) width 248: ".five {letter-spacing: 0.25pc;}"
-          text run at (248,60) width 0: " "
           text run at (0,75) width 216: ".six {letter-spacing: 1em;}"
-          text run at (216,75) width 0: " "
           text run at (0,90) width 232: ".seven {letter-spacing: 1ex;}"
-          text run at (232,90) width 0: " "
           text run at (0,105) width 232: ".eight {letter-spacing: 5px;}"
-          text run at (232,105) width 0: " "
           text run at (0,120) width 248: ".nine {letter-spacing: normal;}"
-          text run at (248,120) width 0: " "
           text run at (0,135) width 224: ".ten {letter-spacing: 300%;}"
-          text run at (224,135) width 0: " "
           text run at (0,150) width 264: ".eleven {letter-spacing: -0.1em;}"
-          text run at (264,150) width 0: " "
       RenderBlock {HR} at (0,212) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,230) size 769x72
         RenderText {#text} at (0,0) size 710x72
index 942051c..8819ef9 100644 (file)
@@ -9,33 +9,19 @@ layer at (0,0) size 785x2667
       RenderBlock {PRE} at (0,34) size 769x210
         RenderText {#text} at (0,0) size 400x210
           text run at (0,0) width 344: ".one {line-height: 0.5in; font-size: 12px;}"
-          text run at (344,0) width 0: " "
           text run at (0,15) width 328: ".two {line-height: 2cm; font-size: 12px;}"
-          text run at (328,15) width 0: " "
           text run at (0,30) width 352: ".three {line-height: 20mm; font-size: 12px;}"
-          text run at (352,30) width 0: " "
           text run at (0,45) width 344: ".four {line-height: 24pt; font-size: 12px;}"
-          text run at (344,45) width 0: " "
           text run at (0,60) width 336: ".five {line-height: 2pc; font-size: 12px;}"
-          text run at (336,60) width 0: " "
           text run at (0,75) width 328: ".six {line-height: 2em; font-size: 12px;}"
-          text run at (328,75) width 0: " "
           text run at (0,90) width 344: ".seven {line-height: 3ex; font-size: 12px;}"
-          text run at (344,90) width 0: " "
           text run at (0,105) width 352: ".eight {line-height: 200%; font-size: 12px;}"
-          text run at (352,105) width 0: " "
           text run at (0,120) width 320: ".nine {line-height: 2; font-size: 12px;}"
-          text run at (320,120) width 0: " "
           text run at (0,135) width 336: ".ten {line-height: 50px; font-size: 12px;}"
-          text run at (336,135) width 0: " "
           text run at (0,150) width 360: ".eleven {line-height: -1em; font-size: 12px;}"
-          text run at (360,150) width 0: " "
           text run at (0,165) width 400: "TABLE .ten {line-height: normal; font-size: 12px;}"
-          text run at (400,165) width 0: " "
           text run at (0,180) width 248: "DIV {background-color: silver;}"
-          text run at (248,180) width 0: " "
           text run at (0,195) width 304: "SPAN.color {background-color: silver;}"
-          text run at (304,195) width 0: " "
       RenderBlock {HR} at (0,257) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,271) size 769x48
         RenderText {#text} at (0,17) size 507x14
index a97c975..97a1c47 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x75
         RenderText {#text} at (0,0) size 224x75
           text run at (0,0) width 192: ".one {text-align: left;}"
-          text run at (192,0) width 0: " "
           text run at (0,15) width 200: ".two {text-align: right;}"
-          text run at (200,15) width 0: " "
           text run at (0,30) width 224: ".three {text-align: center;}"
-          text run at (224,30) width 0: " "
           text run at (0,45) width 224: ".four {text-align: justify;}"
-          text run at (224,45) width 0: " "
           text run at (0,60) width 0: " "
       RenderBlock {HR} at (0,122) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,140) size 784x18
index 6c8450a..5283384 100644 (file)
@@ -9,19 +9,12 @@ layer at (0,0) size 785x1151
       RenderBlock {PRE} at (0,34) size 769x120
         RenderText {#text} at (0,0) size 464x120
           text run at (0,0) width 272: ".one {text-decoration: underline;}"
-          text run at (272,0) width 0: " "
           text run at (0,15) width 264: ".two {text-decoration: overline;}"
-          text run at (264,15) width 0: " "
           text run at (0,30) width 312: ".three {text-decoration: line-through;}"
-          text run at (312,30) width 0: " "
           text run at (0,45) width 248: ".four {text-decoration: blink;}"
-          text run at (248,45) width 0: " "
           text run at (0,60) width 248: "B.five {text-decoration: none;}"
-          text run at (248,60) width 0: " "
           text run at (0,75) width 344: ".six {text-decoration: underline overline;}"
-          text run at (344,75) width 0: " "
           text run at (0,90) width 464: ".seven {text-decoration: underline overline line-through;}"
-          text run at (464,90) width 0: " "
           text run at (0,105) width 0: " "
       RenderBlock {HR} at (0,167) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,185) size 769x18
index 8175d5c..5360d49 100644 (file)
@@ -9,25 +9,15 @@ layer at (0,0) size 785x1246
       RenderBlock {PRE} at (0,34) size 769x165
         RenderText {#text} at (0,0) size 384x165
           text run at (0,0) width 352: ".one {text-indent: 0.5in; background: aqua;}"
-          text run at (352,0) width 0: " "
           text run at (0,15) width 336: ".two {text-indent: 2cm; background: aqua;}"
-          text run at (336,15) width 0: " "
           text run at (0,30) width 360: ".three {text-indent: 20mm; background: aqua;}"
-          text run at (360,30) width 0: " "
           text run at (0,45) width 352: ".four {text-indent: 24pt; background: aqua;}"
-          text run at (352,45) width 0: " "
           text run at (0,60) width 344: ".five {text-indent: 2pc; background: aqua;}"
-          text run at (344,60) width 0: " "
           text run at (0,75) width 336: ".six {text-indent: 2em; background: aqua;}"
-          text run at (336,75) width 0: " "
           text run at (0,90) width 352: ".seven {text-indent: 2ex; background: aqua;}"
-          text run at (352,90) width 0: " "
           text run at (0,105) width 352: ".eight {text-indent: 50%; background: aqua;}"
-          text run at (352,105) width 0: " "
           text run at (0,120) width 352: ".nine {text-indent: 25px; background: aqua;}"
-          text run at (352,120) width 0: " "
           text run at (0,135) width 384: "blockquote {text-indent: 50%; background: aqua;}"
-          text run at (384,135) width 0: " "
           text run at (0,150) width 0: " "
       RenderBlock {HR} at (0,212) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,230) size 769x18 [bgcolor=#00FFFF]
index f815c29..581485e 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 785x732
       RenderBlock {PRE} at (0,34) size 769x75
         RenderText {#text} at (0,0) size 272x75
           text run at (0,0) width 224: ".ttn {text-transform: none;}"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 272: ".cap {text-transform: capitalize;}"
-          text run at (272,15) width 0: " "
           text run at (0,30) width 264: ".upp {text-transform: uppercase;}"
-          text run at (264,30) width 0: " "
           text run at (0,45) width 264: ".low {text-transform: lowercase;}"
-          text run at (264,45) width 0: " "
           text run at (0,60) width 0: " "
       RenderBlock {HR} at (0,122) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,140) size 769x36
index bfd92a6..13fb960 100644 (file)
@@ -9,38 +9,22 @@ layer at (0,0) size 785x4405
       RenderBlock {PRE} at (0,34) size 769x270
         RenderText {#text} at (0,0) size 512x270
           text run at (0,0) width 160: "P {font-size: 12pt;}"
-          text run at (160,0) width 0: " "
           text run at (0,15) width 216: ".one {vertical-align: sub;}"
-          text run at (216,15) width 0: " "
           text run at (0,30) width 232: ".two {vertical-align: super;}"
-          text run at (232,30) width 0: " "
           text run at (0,45) width 368: ".three {vertical-align: top; font-size: 12pt;}"
-          text run at (368,45) width 0: " "
           text run at (0,60) width 400: ".four {vertical-align: text-top; font-size: 12pt;}"
-          text run at (400,60) width 0: " "
           text run at (0,75) width 384: ".five {vertical-align: middle; font-size: 12pt;}"
-          text run at (384,75) width 0: " "
           text run at (0,90) width 376: ".six {vertical-align: bottom; font-size: 12pt;}"
-          text run at (376,90) width 0: " "
           text run at (0,105) width 432: ".seven {vertical-align: text-bottom; font-size: 12pt;}"
-          text run at (432,105) width 0: " "
           text run at (0,120) width 408: ".eight {vertical-align: baseline; font-size: 12pt;}"
-          text run at (408,120) width 0: " "
           text run at (0,135) width 512: ".nine {vertical-align: 50%; font-size: 12px; line-height: 16px;}"
-          text run at (512,135) width 0: " "
           text run at (0,150) width 0: " "
           text run at (0,165) width 224: "P.example {font-size: 14pt;}"
-          text run at (224,165) width 0: " "
           text run at (0,180) width 176: "BIG {font-size: 16pt;}"
-          text run at (176,180) width 0: " "
           text run at (0,195) width 192: "SMALL {font-size: 12pt;}"
-          text run at (192,195) width 0: " "
           text run at (0,210) width 304: ".ttopalign {vertical-align: text-top;}"
-          text run at (304,210) width 0: " "
           text run at (0,225) width 256: ".topalign {vertical-align: top;}"
-          text run at (256,225) width 0: " "
           text run at (0,240) width 280: ".midalign {vertical-align: middle;}"
-          text run at (280,240) width 0: " "
           text run at (0,255) width 0: " "
       RenderBlock {HR} at (0,317) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,335) size 769x76
index fa108e6..0c2d7ed 100644 (file)
@@ -9,25 +9,15 @@ layer at (0,0) size 785x914
       RenderBlock {PRE} at (0,34) size 769x165
         RenderText {#text} at (0,0) size 232x165
           text run at (0,0) width 216: ".one {word-spacing: 0.3in;}"
-          text run at (216,0) width 0: " "
           text run at (0,15) width 216: ".two {word-spacing: 0.5cm;}"
-          text run at (216,15) width 0: " "
           text run at (0,30) width 216: ".three {word-spacing: 5mm;}"
-          text run at (216,30) width 0: " "
           text run at (0,45) width 208: ".four {word-spacing: 3pt;}"
-          text run at (208,45) width 0: " "
           text run at (0,60) width 232: ".five {word-spacing: 0.25pc;}"
-          text run at (232,60) width 0: " "
           text run at (0,75) width 200: ".six {word-spacing: 1em;}"
-          text run at (200,75) width 0: " "
           text run at (0,90) width 216: ".seven {word-spacing: 1ex;}"
-          text run at (216,90) width 0: " "
           text run at (0,105) width 216: ".eight {word-spacing: 5px;}"
-          text run at (216,105) width 0: " "
           text run at (0,120) width 232: ".nine {word-spacing: normal;}"
-          text run at (232,120) width 0: " "
           text run at (0,135) width 224: ".ten {word-spacing: -0.2em;}"
-          text run at (224,135) width 0: " "
           text run at (0,150) width 0: " "
       RenderBlock {HR} at (0,212) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,230) size 769x18
index bc54eb5..8763192 100644 (file)
@@ -9,29 +9,17 @@ layer at (0,0) size 785x1717
       RenderBlock {PRE} at (0,34) size 769x180
         RenderText {#text} at (0,0) size 288x180
           text run at (0,0) width 160: "BODY {color: black;}"
-          text run at (160,0) width 0: " "
           text run at (0,15) width 152: ".one {color: #080;}"
-          text run at (152,15) width 0: " "
           text run at (0,30) width 176: ".two {color: #008000;}"
-          text run at (176,30) width 0: " "
           text run at (0,45) width 232: ".three {color: rgb(0,128,0);}"
-          text run at (232,45) width 0: " "
           text run at (0,60) width 240: ".four {color: rgb(0%,50%,0%);}"
-          text run at (240,60) width 0: " "
           text run at (0,75) width 288: ".five {color: rgb(0.0%,50.0%,0.0%);}"
-          text run at (288,75) width 0: " "
           text run at (0,90) width 160: ".six {color: green;}"
-          text run at (160,90) width 0: " "
           text run at (0,105) width 232: ".seven {color: invalidValue;}"
-          text run at (232,105) width 0: " "
           text run at (0,120) width 256: ".eight {color: rgb(0,128,1280);}"
-          text run at (256,120) width 0: " "
           text run at (0,135) width 240: ".nine {color: rgb(0,128,255);}"
-          text run at (240,135) width 0: " "
           text run at (0,150) width 264: ".ten {color: rgb(50%,-500%,60%);}"
-          text run at (264,150) width 0: " "
           text run at (0,165) width 264: ".eleven {color: rgb(50%,0%,60%);}"
-          text run at (264,165) width 0: " "
       RenderBlock {HR} at (0,227) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,245) size 769x18
         RenderText {#text} at (0,0) size 193x18
index 8bdd22e..c0dfac3 100644 (file)
@@ -9,27 +9,16 @@ layer at (0,0) size 785x1592
       RenderBlock {PRE} at (0,34) size 769x165
         RenderText {#text} at (0,0) size 624x165
           text run at (0,0) width 184: ".zero {margin-left: 0;}"
-          text run at (184,0) width 0: " "
           text run at (0,15) width 192: ".one {margin-left: 3em;}"
-          text run at (192,15) width 0: " "
           text run at (0,30) width 192: ".two {margin-left: 3ex;}"
-          text run at (192,30) width 0: " "
           text run at (0,45) width 216: ".three {margin-left: 36px;}"
-          text run at (216,45) width 0: " "
           text run at (0,60) width 216: ".four {margin-left: 0.5in;}"
-          text run at (216,60) width 0: " "
           text run at (0,75) width 224: ".five {margin-left: 1.27cm;}"
-          text run at (224,75) width 0: " "
           text run at (0,90) width 216: ".six {margin-left: 12.7mm;}"
-          text run at (216,90) width 0: " "
           text run at (0,105) width 216: ".seven {margin-left: 36pt;}"
-          text run at (216,105) width 0: " "
           text run at (0,120) width 208: ".eight {margin-left: 3pc;}"
-          text run at (208,120) width 0: " "
           text run at (0,135) width 208: ".nine {margin-left: +3pc;}"
-          text run at (208,135) width 0: " "
           text run at (0,150) width 624: ".ten {font-size: 40px; border-left: 1ex solid purple; background-color: aqua;}"
-          text run at (624,150) width 0: " "
       RenderBlock {HR} at (0,212) size 769x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,230) size 769x36
         RenderText {#text} at (0,0) size 761x36
index 6fea2a7..9b4b393 100644 (file)
@@ -9,13 +9,9 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x75
         RenderText {#text} at (0,0) size 504x75
           text run at (0,0) width 224: ".zero { background: yellow }"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 504: ".one { margin-left: 25%; margin-right: 25%; background: white }"
-          text run at (504,15) width 0: " "
           text run at (0,30) width 496: ".two { margin-left: 50%; margin-right: 0%; background: white }"
-          text run at (496,30) width 0: " "
           text run at (0,45) width 208: ".three {margin-left: 25%;}"
-          text run at (208,45) width 0: " "
           text run at (0,60) width 0: " "
       RenderBlock {HR} at (0,122) size 784x2 [border: (1px inset #000000)]
       RenderBlock {DIV} at (0,140) size 784x124 [bgcolor=#FFFF00]
index 7d41780..9750b3b 100644 (file)
@@ -9,11 +9,8 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,34) size 784x60
         RenderText {#text} at (0,0) size 648x60
           text run at (0,0) width 648: "<LINK rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../resources/bg.gif\">"
-          text run at (648,0) width 0: " "
           text run at (0,15) width 296: "@import url(../resources/sec642.css);"
-          text run at (296,15) width 0: " "
           text run at (0,30) width 352: "BODY {background: url(../resources/bg.gif);}"
-          text run at (352,30) width 0: " "
           text run at (0,45) width 0: " "
       RenderBlock {HR} at (0,107) size 784x2 [border: (1px inset #000000)]
       RenderBlock {P} at (0,125) size 784x18
index bfd3a87..e566286 100644 (file)
@@ -13,11 +13,7 @@ layer at (0,0) size 800x326
       RenderBlock {PRE} at (12,172) size 126x126 [color=#00FFFF] [bgcolor=#008080] [border: (3px solid #000080)]
         RenderText {#text} at (3,3) size 120x120
           text run at (3,3) width 120: "     "
-          text run at (123,3) width 0: " "
           text run at (3,27) width 120: " X X "
-          text run at (123,27) width 0: " "
           text run at (3,51) width 120: "     "
-          text run at (123,51) width 0: " "
           text run at (3,75) width 120: " X X "
-          text run at (123,75) width 0: " "
           text run at (3,99) width 120: "     "
index 4f14d10..5b3ce36 100644 (file)
@@ -10,9 +10,7 @@ layer at (0,0) size 800x154
         RenderBlock {P} at (3,3) size 225x45
           RenderText {#text} at (0,0) size 165x45
             text run at (0,0) width 120: "x  x   x"
-            text run at (120,0) width 0: " "
             text run at (0,15) width 165: " x    x   x"
-            text run at (165,15) width 0: " "
             text run at (0,30) width 135: "    x   x"
         RenderBlock {P} at (3,48) size 225x15
           RenderText {#text} at (0,0) size 225x15
index 98cbe77..b130603 100644 (file)
@@ -16,5 +16,4 @@ layer at (0,0) size 800x600
       RenderBlock {PRE} at (0,67) size 784x15
         RenderText {#text} at (0,0) size 88x15
           text run at (0,0) width 88: "Test Passed"
-          text run at (88,0) width 0: " "
 caret: position 0 of child 0 {#text} of body
index 2abf417..9c05015 100644 (file)
@@ -77,14 +77,10 @@ layer at (0,0) size 785x1616
           RenderBlock {PRE} at (16,71) size 584x103 [bgcolor=#FFFFFF]
             RenderText {#text} at (6,7) size 225x90
               text run at (6,7) width 65: ":empty {"
-              text run at (70,7) width 1: " "
               text run at (6,22) width 9: "}"
-              text run at (14,22) width 1: " "
               text run at (6,37) width 1: " "
               text run at (6,52) width 49: "<div> "
-              text run at (54,52) width 1: " "
               text run at (6,67) width 225: "   How about regular text..."
-              text run at (230,67) width 1: " "
               text run at (6,82) width 49: "</div>"
           RenderBlock {P} at (16,190) size 584x18
             RenderText {#text} at (0,0) size 533x17
index 7a7169b..9fc0b1b 100644 (file)
@@ -100,16 +100,11 @@ layer at (0,0) size 785x2270
           RenderBlock {PRE} at (16,71) size 584x118 [bgcolor=#FFFFFF]
             RenderText {#text} at (6,7) size 225x105
               text run at (6,7) width 145: "div :first-child {"
-              text run at (150,7) width 1: " "
               text run at (6,22) width 9: "}"
-              text run at (14,22) width 1: " "
               text run at (6,37) width 1: " "
               text run at (6,52) width 49: "<div> "
-              text run at (54,52) width 1: " "
               text run at (6,67) width 225: "   How about regular text..."
-              text run at (230,67) width 1: " "
               text run at (6,82) width 113: "   <div></div>"
-              text run at (118,82) width 1: " "
               text run at (6,97) width 49: "</div>"
           RenderBlock {P} at (16,205) size 584x54
             RenderText {#text} at (0,0) size 567x53
index bd03186..3592e58 100644 (file)
@@ -100,16 +100,11 @@ layer at (0,0) size 785x2270
           RenderBlock {PRE} at (16,71) size 584x118 [bgcolor=#FFFFFF]
             RenderText {#text} at (6,7) size 225x105
               text run at (6,7) width 137: "div :last-child {"
-              text run at (142,7) width 1: " "
               text run at (6,22) width 9: "}"
-              text run at (14,22) width 1: " "
               text run at (6,37) width 1: " "
               text run at (6,52) width 49: "<div> "
-              text run at (54,52) width 1: " "
               text run at (6,67) width 113: "   <div></div>"
-              text run at (118,67) width 1: " "
               text run at (6,82) width 225: "   How about regular text..."
-              text run at (230,82) width 1: " "
               text run at (6,97) width 49: "</div>"
           RenderBlock {P} at (16,205) size 584x54
             RenderText {#text} at (0,0) size 567x53
index 3f1e037..7ec0230 100644 (file)
@@ -75,16 +75,11 @@ layer at (0,0) size 785x1613
           RenderBlock {PRE} at (16,71) size 584x118 [bgcolor=#FFFFFF]
             RenderText {#text} at (6,7) size 225x105
               text run at (6,7) width 137: "div :only-child {"
-              text run at (142,7) width 1: " "
               text run at (6,22) width 9: "}"
-              text run at (14,22) width 1: " "
               text run at (6,37) width 1: " "
               text run at (6,52) width 41: "<div>"
-              text run at (46,52) width 1: " "
               text run at (6,67) width 113: "   <div></div>"
-              text run at (118,67) width 1: " "
               text run at (6,82) width 225: "   How about regular text..."
-              text run at (230,82) width 1: " "
               text run at (6,97) width 49: "</div>"
           RenderBlock {P} at (16,205) size 584x36
             RenderText {#text} at (0,0) size 572x35
index e4f7ade..d357e8c 100644 (file)
@@ -24,5 +24,4 @@ layer at (0,0) size 800x600
                 RenderBlock {PRE} at (0,0) size 284x15
                   RenderText {#text} at (0,0) size 56x15
                     text run at (0,0) width 56: "SUCCESS"
-                    text run at (56,0) width 0: " "
         RenderText {#text} at (0,0) size 0x0
index b96b225..9b5727f 100644 (file)
@@ -30,7 +30,6 @@ layer at (0,0) size 800x600
                 RenderBlock {div} at (18,61) size 685x15
                   RenderText {#text} at (0,0) size 490x14
                     text run at (0,0) width 490: "error on line 1 at column 15: Extra content at the end of the document"
-                    text run at (490,0) width 0: " "
                 RenderBlock {h3} at (18,94) size 685x23
                   RenderText {#text} at (0,0) size 429x22
                     text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 9258942..6957733 100644 (file)
@@ -12,11 +12,8 @@ layer at (0,0) size 800x600
       RenderBlock {LISTING} at (0,65) size 784x45
         RenderText {#text} at (0,0) size 792x45
           text run at (0,0) width 272: "This text is inside a listing tag."
-          text run at (272,0) width 0: " "
           text run at (0,15) width 768: "It acts exactly like the pre tag, so the text should be monospaced and not have any line breaks."
-          text run at (768,15) width 0: " "
           text run at (0,30) width 792: "Also, it eats the very first newline inside the listing, so there should not be a blank line above."
-          text run at (792,30) width 0: " "
       RenderBlock {P} at (0,126) size 784x18
         RenderText {#text} at (0,0) size 588x18
           text run at (0,0) width 588: "The listing tag has a width in it. To test the JavaScript binding, this page gets the width, here: "
index 7e2c7a3..3e2e585 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 800x169
         RenderBlock {div} at (18,61) size 716x15
           RenderText {#text} at (0,0) size 483x14
             text run at (0,0) width 483: "error on line 1 at column 1: Extra content at the end of the document"
-            text run at (483,0) width 0: " "
         RenderBlock {h3} at (18,94) size 716x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 3e26d7c..c08a650 100644 (file)
@@ -9,7 +9,6 @@ layer at (0,0) size 800x187
       RenderBlock {div} at (18,61) size 732x15
         RenderText {#text} at (0,0) size 553x14
           text run at (0,0) width 553: "error on line 7 at column 8: Opening and ending tag mismatch: p line 0 and body"
-          text run at (553,0) width 0: " "
       RenderBlock {h3} at (18,94) size 732x23
         RenderText {#text} at (0,0) size 429x22
           text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index d432e5c..60673e4 100644 (file)
@@ -12,9 +12,7 @@ layer at (0,0) size 800x600
               RenderBlock {PRE} at (0,0) size 784x75
                 RenderText {#text} at (0,0) size 784x75
                   text run at (0,0) width 416: "This line should wrap with no horizontal scroll bar:"
-                  text run at (416,0) width 0: " "
                   text run at (0,15) width 0: " "
                   text run at (0,30) width 784: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst"
                   text run at (0,45) width 784: "uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn"
                   text run at (0,60) width 512: "opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
-                  text run at (512,60) width 0: " "
index fd6f036..6048832 100644 (file)
@@ -10,69 +10,37 @@ layer at (0,0) size 785x1029
       RenderBlock {PRE} at (0,39) size 769x496
         RenderText {#text} at (0,0) size 264x495
           text run at (0,0) width 72: "#fixed1 {"
-          text run at (72,0) width 0: " "
           text run at (0,15) width 192: "\x{9}position: fixed;"
-          text run at (192,15) width 0: " "
           text run at (0,30) width 144: "\x{9}top: 80px;"
-          text run at (144,30) width 0: " "
           text run at (0,45) width 160: "\x{9}left: 300px;"
-          text run at (160,45) width 0: " "
           text run at (0,60) width 184: "\x{9}width: 150px; }"
-          text run at (184,60) width 0: " "
           text run at (0,75) width 72: "#fixed2 {"
-          text run at (72,75) width 0: " "
           text run at (0,90) width 192: "\x{9}position: fixed;"
-          text run at (192,90) width 0: " "
           text run at (0,105) width 144: "\x{9}top: 80px;"
-          text run at (144,105) width 0: " "
           text run at (0,120) width 160: "\x{9}left: 500px;"
-          text run at (160,120) width 0: " "
           text run at (0,135) width 184: "\x{9}width: 150px; }"
-          text run at (184,135) width 0: " "
           text run at (0,150) width 72: "#fixed3 {"
-          text run at (72,150) width 0: " "
           text run at (0,165) width 192: "\x{9}position: fixed;"
-          text run at (192,165) width 0: " "
           text run at (0,180) width 144: "\x{9}top: 80px;"
-          text run at (144,180) width 0: " "
           text run at (0,195) width 160: "\x{9}left: 700px;"
-          text run at (160,195) width 0: " "
           text run at (0,210) width 184: "\x{9}width: 150px; }"
-          text run at (184,210) width 0: " "
           text run at (0,225) width 136: ".overflowHidden {"
-          text run at (136,225) width 0: " "
           text run at (0,240) width 216: "\x{9}overflow: hidden; }"
-          text run at (216,240) width 0: " "
           text run at (0,255) width 88: ".relative {"
-          text run at (88,255) width 0: " "
           text run at (0,270) width 232: "\x{9}position: relative; }"
-          text run at (232,270) width 0: " "
           text run at (0,285) width 88: ".absolute {"
-          text run at (88,285) width 0: " "
           text run at (0,300) width 216: "\x{9}position: absolute;"
-          text run at (216,300) width 0: " "
           text run at (0,315) width 120: "\x{9}top: 0;"
-          text run at (120,315) width 0: " "
           text run at (0,330) width 152: "\x{9}right: 0; }"
-          text run at (152,330) width 0: " "
           text run at (0,345) width 40: "div {"
-          text run at (40,345) width 0: " "
           text run at (0,360) width 168: "\x{9}padding: 5px;"
-          text run at (168,360) width 0: " "
           text run at (0,375) width 160: "\x{9}margin: 5px;"
-          text run at (160,375) width 0: " "
           text run at (0,390) width 264: "\x{9}border: solid 1px #999; }"
-          text run at (264,390) width 0: " "
           text run at (0,405) width 96: "#veryLarge {"
-          text run at (96,405) width 0: " "
           text run at (0,420) width 216: "\x{9}position: relative;"
-          text run at (216,420) width 0: " "
           text run at (0,435) width 176: "\x{9}height:1000px;"
-          text run at (176,435) width 0: " "
           text run at (0,450) width 184: "\x{9}width:1500px; }"
-          text run at (184,450) width 0: " "
           text run at (0,465) width 64: "\x{9}"
-          text run at (64,465) width 0: " "
           text run at (0,480) width 0: " "
       RenderBlock {P} at (0,550) size 769x19
         RenderText {#text} at (0,0) size 401x18
index c0074fb..deb214d 100644 (file)
@@ -9,7 +9,6 @@ layer at (0,0) size 800x187
       RenderBlock {div} at (18,61) size 732x15
         RenderText {#text} at (0,0) size 385x14
           text run at (0,0) width 385: "error on line 4 at column 13: Entity 'fnof' not defined"
-          text run at (385,0) width 0: " "
       RenderBlock {h3} at (18,94) size 732x23
         RenderText {#text} at (0,0) size 429x22
           text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 409af0d..60ada6e 100644 (file)
@@ -18,29 +18,17 @@ layer at (0,0) size 785x1476
       RenderBlock {PRE} at (0,92) size 769x181
         RenderText {#text} at (0,0) size 688x180
           text run at (0,0) width 408: "TABLE\x{9}{ margin: 1em; border: medium solid blue; }"
-          text run at (408,0) width 0: " "
           text run at (0,15) width 408: "TD\x{9}{ border: thin solid green; padding: 5px; }"
-          text run at (408,15) width 0: " "
           text run at (0,30) width 392: "TH { border: medium solid purple; padding: 5px; }"
-          text run at (392,30) width 0: " "
           text run at (0,45) width 360: "TABLE.one, TABLE.two { border-spacing: 1em; }"
-          text run at (360,45) width 0: " "
           text run at (0,60) width 320: "TABLE.one { border-collapse: collapse; }"
-          text run at (320,60) width 0: " "
           text run at (0,75) width 320: "TABLE.two { border-collapse: separate; }"
-          text run at (320,75) width 0: " "
           text run at (0,90) width 536: "TABLE.three { border-collapse: separate; border-spacing: 0 0.5em; }"
-          text run at (536,90) width 0: " "
           text run at (0,105) width 528: "TABLE.four { border-collapse: separate; border-spacing: 0.5em 0; }"
-          text run at (528,105) width 0: " "
           text run at (0,120) width 328: "TABLE.five { border-collapse: separate; }"
-          text run at (328,120) width 0: " "
           text run at (0,135) width 464: "TABLE.five, TABLE.five TD, TABLE.five TH { border: none; }"
-          text run at (464,135) width 0: " "
           text run at (0,150) width 688: "TABLE.five TR, TABLE.five COL, TABLE.five COLGROUP, TABLE.five TBODY, TABLE.five THEAD"
-          text run at (688,150) width 0: " "
           text run at (0,165) width 296: "\x{9}{ border: medium solid red; }"
-          text run at (296,165) width 0: " "
       RenderTable {TABLE} at (16,288) size 737x185 [border: (1px solid #0000FF)]
         RenderTableSection {TBODY} at (1,1) size 734x181
           RenderTableRow {TR} at (0,0) size 734x31
index f659678..e9d3982 100644 (file)
@@ -18,29 +18,17 @@ layer at (0,0) size 785x899
       RenderBlock {PRE} at (0,92) size 769x181
         RenderText {#text} at (0,0) size 688x180
           text run at (0,0) width 408: "TABLE   { margin: 1em; border: medium solid blue; }"
-          text run at (408,0) width 0: " "
           text run at (0,15) width 376: "TD  { border: thin solid green; padding: 5px; }"
-          text run at (376,15) width 0: " "
           text run at (0,30) width 392: "TH { border: medium solid purple; padding: 5px; }"
-          text run at (392,30) width 0: " "
           text run at (0,45) width 360: "TABLE.one, TABLE.two { border-spacing: 1em; }"
-          text run at (360,45) width 0: " "
           text run at (0,60) width 320: "TABLE.one { border-collapse: collapse; }"
-          text run at (320,60) width 0: " "
           text run at (0,75) width 320: "TABLE.two { border-collapse: separate; }"
-          text run at (320,75) width 0: " "
           text run at (0,90) width 536: "TABLE.three { border-collapse: separate; border-spacing: 0 0.5em; }"
-          text run at (536,90) width 0: " "
           text run at (0,105) width 528: "TABLE.four { border-collapse: separate; border-spacing: 0.5em 0; }"
-          text run at (528,105) width 0: " "
           text run at (0,120) width 328: "TABLE.five { border-collapse: separate; }"
-          text run at (328,120) width 0: " "
           text run at (0,135) width 464: "TABLE.five, TABLE.five TD, TABLE.five TH { border: none; }"
-          text run at (464,135) width 0: " "
           text run at (0,150) width 688: "TABLE.five TR, TABLE.five COL, TABLE.five COLGROUP, TABLE.five TBODY, TABLE.five THEAD"
-          text run at (688,150) width 0: " "
           text run at (0,165) width 264: "    { border: medium solid red; }"
-          text run at (264,165) width 0: " "
       RenderBlock {DIV} at (0,285) size 1488x585
         RenderTable {TABLE} at (16,16) size 238x552 [border: (1px solid #0000FF)]
           RenderTableSection {TBODY} at (1,1) size 235x549
diff --git a/LayoutTests/platform/mac/fast/text/whitespace/001-expected.txt b/LayoutTests/platform/mac/fast/text/whitespace/001-expected.txt
new file mode 100644 (file)
index 0000000..a78ed47
--- /dev/null
@@ -0,0 +1,14 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x579
+      RenderBlock {PRE} at (0,0) size 784x15
+        RenderText {#text} at (0,0) size 104x15
+          text run at (0,0) width 104: "text      col"
+      RenderBlock {PRE} at (0,28) size 784x15
+        RenderText {#text} at (0,0) size 104x15
+          text run at (0,0) width 104: "          col"
+      RenderBlock {PRE} at (0,56) size 784x15
+        RenderText {#text} at (0,0) size 104x15
+          text run at (0,0) width 104: "thistextiscol"
diff --git a/LayoutTests/platform/mac/fast/text/whitespace/013-expected.txt b/LayoutTests/platform/mac/fast/text/whitespace/013-expected.txt
new file mode 100644 (file)
index 0000000..46ee2bc
--- /dev/null
@@ -0,0 +1,23 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x184
+  RenderBlock {HTML} at (0,0) size 800x184
+    RenderBody {BODY} at (8,8) size 784x168
+      RenderBlock (anonymous) at (0,0) size 784x18
+        RenderInline {DIV} at (0,0) size 528x16 [color=#FFFFFF] [bgcolor=#FF0000]
+          RenderText {#text} at (0,1) size 528x16
+            text run at (0,1) width 528: "Ahem_font_required_for_this_test."
+        RenderText {#text} at (0,0) size 0x0
+      RenderTable {TABLE} at (0,18) size 342x150
+        RenderTableSection {TBODY} at (0,0) size 342x150
+          RenderTableRow {TR} at (0,2) size 342x146
+            RenderTableCell {TD} at (2,2) size 338x146 [r=0 c=0 rs=1 cs=1]
+              RenderBlock {PRE} at (1,17) size 336x112 [color=#00FF00] [bgcolor=#008000]
+                RenderText {#text} at (0,0) size 336x112
+                  text run at (0,0) width 336: "                     "
+                  text run at (0,16) width 336: " xxxx xxxx xxxx xxxx "
+                  text run at (0,32) width 336: " x  x x  x x    x    "
+                  text run at (0,48) width 320: " xxxx xxxx xxxx xxxx"
+                  text run at (0,64) width 336: " x    x  x    x    x "
+                  text run at (0,80) width 336: " x    x  x xxxx xxxx "
+                  text run at (0,96) width 336: "                     "
diff --git a/LayoutTests/platform/mac/fast/text/whitespace/014-expected.txt b/LayoutTests/platform/mac/fast/text/whitespace/014-expected.txt
new file mode 100644 (file)
index 0000000..e349e0c
--- /dev/null
@@ -0,0 +1,23 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x152
+  RenderBlock {HTML} at (0,0) size 800x152
+    RenderBody {BODY} at (8,8) size 784x136
+      RenderBlock (anonymous) at (0,0) size 784x18
+        RenderInline {DIV} at (0,0) size 528x16 [color=#FFFFFF] [bgcolor=#FF0000]
+          RenderText {#text} at (0,1) size 528x16
+            text run at (0,1) width 528: "Ahem_font_required_for_this_test."
+        RenderText {#text} at (0,0) size 0x0
+      RenderTable {TABLE} at (0,18) size 342x118
+        RenderTableSection {TBODY} at (0,0) size 342x118
+          RenderTableRow {TR} at (0,2) size 342x114
+            RenderTableCell {TD} at (2,2) size 338x114 [r=0 c=0 rs=1 cs=1]
+              RenderBlock {DIV} at (1,1) size 336x112 [color=#00FF00] [bgcolor=#008000]
+                RenderText {#text} at (0,0) size 336x112
+                  text run at (0,0) width 336: "                     "
+                  text run at (0,16) width 336: " xxxx xxxx xxxx xxxx "
+                  text run at (0,32) width 336: " x  x x  x x    x    "
+                  text run at (0,48) width 320: " xxxx xxxx xxxx xxxx"
+                  text run at (0,64) width 336: " x    x  x    x    x "
+                  text run at (0,80) width 336: " x    x  x xxxx xxxx "
+                  text run at (0,96) width 336: "                     "
diff --git a/LayoutTests/platform/mac/fast/text/whitespace/022-expected.txt b/LayoutTests/platform/mac/fast/text/whitespace/022-expected.txt
new file mode 100644 (file)
index 0000000..e570b5b
--- /dev/null
@@ -0,0 +1,9 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x566
+      RenderBlock {PRE} at (0,0) size 784x60
+        RenderText {#text} at (0,0) size 240x60
+          text run at (0,0) width 240: "This is a test."
+          text run at (0,30) width 224: "Big font size?"
index a5bd392..e4e534b 100644 (file)
@@ -25,7 +25,6 @@ layer at (0,0) size 785x1187
       RenderBlock {PRE} at (0,143) size 769x16
         RenderText {#text} at (0,0) size 376x15
           text run at (0,0) width 376: "    <SPAN CLASS=dow> D  M  T  W  J  F  S</SPAN>"
-          text run at (376,0) width 0: " "
       RenderBlock {H2} at (0,178) size 769x29
         RenderText {#text} at (0,0) size 109x28
           text run at (0,0) width 109: "Example 1"
index 2f439b3..0b40821 100644 (file)
@@ -6,9 +6,7 @@ layer at (0,0) size 800x93
       RenderBlock {PRE} at (0,0) size 784x19 [border: (2px solid #008000)]
         RenderText {#text} at (2,2) size 136x15
           text run at (2,2) width 136: "I am on one line."
-          text run at (138,2) width 0: " "
       RenderBlock {DIV} at (0,32) size 784x40 [border: (2px solid #008000)]
         RenderText {#text} at (2,2) size 758x36
           text run at (2,2) width 0: " "
           text run at (2,20) width 758: "This div is two lines.  The newline right after the tag opened is significant and is honored by Firefox and Opera (and us)."
-          text run at (760,20) width 0: " "
index 140b9da..8182065 100644 (file)
@@ -9,7 +9,6 @@ layer at (0,0) size 800x255
       RenderBlock {div} at (18,61) size 732x15
         RenderText {#text} at (0,0) size 490x14
           text run at (0,0) width 490: "error on line 1 at column 76: Extra content at the end of the document"
-          text run at (490,0) width 0: " "
       RenderBlock {h3} at (18,94) size 732x23
         RenderText {#text} at (0,0) size 429x22
           text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 84c0cce..3027e26 100644 (file)
@@ -11,7 +11,6 @@ layer at (0,0) size 800x289
       RenderBlock {div} at (18,61) size 732x15
         RenderText {#text} at (0,0) size 504x14
           text run at (0,0) width 504: "error on line 1 at column 76: Namespace prefix foo on bar is not defined"
-          text run at (504,0) width 0: " "
       RenderBlock {h3} at (18,94) size 732x23
         RenderText {#text} at (0,0) size 429x22
           text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index f59b3f5..a896135 100644 (file)
@@ -50,7 +50,7 @@ layer at (20,20) size 644x433
                       text run at (0,90) width 8: "Y"
                       text run at (0,105) width 8: "P"
                       text run at (0,120) width 8: "E"
-                      text run at (0,135) width 0: " "
+                      text run at (0,135) width 8: " "
                       text run at (0,150) width 8: "h"
                       text run at (0,165) width 8: "t"
                       text run at (0,180) width 8: "m"
index fd1ab8e..aaaa2a3 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 785x600
         RenderBlock {div} at (18,61) size 701x15
           RenderText {#text} at (0,0) size 483x14
             text run at (0,0) width 483: "error on line 3 at column 1: Extra content at the end of the document"
-            text run at (483,0) width 0: " "
         RenderBlock {h3} at (18,94) size 701x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index a57ce3e..3c96f8f 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 785x600
         RenderBlock {div} at (18,61) size 701x15
           RenderText {#text} at (0,0) size 413x14
             text run at (0,0) width 413: "error on line 6 at column 2: StartTag: invalid element name"
-            text run at (413,0) width 0: " "
         RenderBlock {h3} at (18,94) size 701x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 0d34a9d..bb17b0f 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 785x600
         RenderBlock {div} at (18,61) size 701x15
           RenderText {#text} at (0,0) size 567x14
             text run at (0,0) width 567: "error on line 6 at column 14: Namespace prefix xlink for href on a is not defined"
-            text run at (567,0) width 0: " "
         RenderBlock {h3} at (18,94) size 701x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 884a959..126f4eb 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 785x600
         RenderBlock {div} at (18,61) size 701x15
           RenderText {#text} at (0,0) size 462x14
             text run at (0,0) width 462: "error on line 9 at column 66: invalid character in attribute value"
-            text run at (462,0) width 0: " "
         RenderBlock {h3} at (18,94) size 701x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 48d5b4b..6617f08 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 785x600
         RenderBlock {div} at (18,61) size 701x15
           RenderText {#text} at (0,0) size 497x14
             text run at (0,0) width 497: "error on line 1 at column 132: Extra content at the end of the document"
-            text run at (497,0) width 0: " "
         RenderBlock {h3} at (18,94) size 701x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index a34bf6b..c0e49ab 100644 (file)
@@ -10,7 +10,6 @@ layer at (0,0) size 785x600
         RenderBlock {div} at (18,61) size 701x15
           RenderText {#text} at (0,0) size 567x14
             text run at (0,0) width 567: "error on line 5 at column 7: Opening and ending tag mismatch: rect line 0 and svg"
-            text run at (567,0) width 0: " "
         RenderBlock {h3} at (18,94) size 701x23
           RenderText {#text} at (0,0) size 429x22
             text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
index 8d93534..e0e1a33 100644 (file)
@@ -6,11 +6,8 @@ layer at (0,0) size 800x144
       RenderBlock {PRE} at (0,0) size 784x45
         RenderText {#text} at (0,0) size 168x45
           text run at (0,0) width 120: "table width=50%"
-          text run at (120,0) width 0: " "
           text run at (0,15) width 96: "  td nowrap "
-          text run at (96,15) width 0: " "
           text run at (0,30) width 168: "    input width=100% "
-          text run at (168,30) width 0: " "
       RenderTable {TABLE} at (0,58) size 392x47 [bgcolor=#C0C0C0] [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 390x45
           RenderTableRow {TR} at (0,2) size 390x41
index f996c3e..b23fc4c 100644 (file)
@@ -16,13 +16,9 @@ layer at (0,0) size 800x357
       RenderBlock {PRE} at (15,126) size 769x61 [color=#000066]
         RenderText {#text} at (0,0) size 216x60
           text run at (0,0) width 80: "<colgroup>"
-          text run at (80,0) width 0: " "
           text run at (0,15) width 216: " <col width=\"100\" span=\"2\">"
-          text run at (216,15) width 0: " "
           text run at (0,30) width 144: " <col width=\"200\">"
-          text run at (144,30) width 0: " "
           text run at (0,45) width 88: "</colgroup>"
-          text run at (88,45) width 0: " "
       RenderBlock {P} at (0,202) size 784x19
         RenderText {#text} at (0,0) size 556x18
           text run at (0,0) width 556: "So the first two colums should both be 100px wide, and the third should be 200px wide."
index 5aced63..a150ae9 100644 (file)
@@ -42,27 +42,16 @@ layer at (0,0) size 785x900
       RenderBlock {PRE} at (0,245) size 769x181
         RenderText {#text} at (0,0) size 576x180
           text run at (0,0) width 472: ".firsttable { border-width : 10pt ; border-color : yellow ;"
-          text run at (472,0) width 0: " "
           text run at (0,15) width 312: "                border-style : double }"
-          text run at (312,15) width 0: " "
           text run at (0,30) width 416: ".t1 { border-color : black ; border-style : double ;"
-          text run at (416,30) width 0: " "
           text run at (0,45) width 288: "                border-width : 5pt }"
-          text run at (288,45) width 0: " "
           text run at (0,60) width 392: ".t2 { border-color : red ; border-style : solid ;"
-          text run at (392,60) width 0: " "
           text run at (0,75) width 296: "                border-width : 5pt  }"
-          text run at (296,75) width 0: " "
           text run at (0,90) width 408: ".t3 { border-color : lime ; border-style : groove ;"
-          text run at (408,90) width 0: " "
           text run at (0,105) width 296: "                border-width : 5pt  }"
-          text run at (296,105) width 0: " "
           text run at (0,120) width 576: ".t4 { border-color : blue ; border-style : inset ; border-width : 5pt  }"
-          text run at (576,120) width 0: " "
           text run at (0,135) width 480: ".secondtable { border-width : 10pt ; border-color : yellow ;"
-          text run at (480,135) width 0: " "
           text run at (0,150) width 312: "                border-style : double ;"
-          text run at (312,150) width 0: " "
           text run at (0,165) width 352: "                border-collapse : collapse }"
       RenderTable {TABLE} at (96,438) size 577x135 [border: (13.33px double #FFFF00)]
         RenderTableSection {TBODY} at (13,13) size 550x108
index 75ab8db..5a9e68b 100644 (file)
@@ -10,13 +10,9 @@ layer at (0,0) size 800x440
       RenderBlock {PRE} at (0,61) size 784x61
         RenderText {#text} at (0,0) size 224x60
           text run at (0,0) width 224: "<TABLE width=\"500\" border=1>"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 168: "<COLGROUP width=\"1*\">"
-          text run at (168,15) width 0: " "
           text run at (0,30) width 168: "<COLGROUP width=\"1*\">"
-          text run at (168,30) width 0: " "
           text run at (0,45) width 168: "<COLGROUP width=\"3*\">"
-          text run at (168,45) width 0: " "
       RenderTable {TABLE} at (0,134) size 500x77 [border: (1px outset #808080)]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
         RenderTableCol {COLGROUP} at (0,0) size 0x0
@@ -59,11 +55,8 @@ layer at (0,0) size 800x440
       RenderBlock {PRE} at (0,279) size 784x46
         RenderText {#text} at (0,0) size 224x45
           text run at (0,0) width 224: "<TABLE width=\"500\" border=1>"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 224: "<COLGROUP span=2 width=\"1*\">"
-          text run at (224,15) width 0: " "
           text run at (0,30) width 168: "<COLGROUP width=\"3*\">"
-          text run at (168,30) width 0: " "
       RenderTable {TABLE} at (0,337) size 500x77 [border: (1px outset #808080)]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
         RenderTableCol {COLGROUP} at (0,0) size 0x0
index 2107739..d530dee 100644 (file)
@@ -10,13 +10,9 @@ layer at (0,0) size 785x862
       RenderBlock {PRE} at (0,61) size 769x61
         RenderText {#text} at (0,0) size 224x60
           text run at (0,0) width 224: "<TABLE width=\"500\" border=1>"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 80: "<COLGROUP>"
-          text run at (80,15) width 0: " "
           text run at (0,30) width 80: "<COLGROUP>"
-          text run at (80,30) width 0: " "
           text run at (0,45) width 168: "<COLGROUP width=\"0*\">"
-          text run at (168,45) width 0: " "
       RenderTable {TABLE} at (0,134) size 500x77 [border: (1px outset #808080)]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
         RenderTableCol {COLGROUP} at (0,0) size 0x0
@@ -59,13 +55,9 @@ layer at (0,0) size 785x862
       RenderBlock {PRE} at (0,279) size 769x61
         RenderText {#text} at (0,0) size 224x60
           text run at (0,0) width 224: "<TABLE width=\"500\" border=1>"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 168: "<COLGROUP width=\"1*\">"
-          text run at (168,15) width 0: " "
           text run at (0,30) width 168: "<COLGROUP width=\"1*\">"
-          text run at (168,30) width 0: " "
           text run at (0,45) width 168: "<COLGROUP width=\"0*\">"
-          text run at (168,45) width 0: " "
       RenderTable {TABLE} at (0,352) size 500x77 [border: (1px outset #808080)]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
         RenderTableCol {COLGROUP} at (0,0) size 0x0
@@ -107,13 +99,9 @@ layer at (0,0) size 785x862
       RenderBlock {PRE} at (0,488) size 769x61
         RenderText {#text} at (0,0) size 224x60
           text run at (0,0) width 224: "<TABLE width=\"500\" border=1>"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 168: "<COLGROUP width=\"1*\">"
-          text run at (168,15) width 0: " "
           text run at (0,30) width 168: "<COLGROUP width=\"2*\">"
-          text run at (168,30) width 0: " "
           text run at (0,45) width 168: "<COLGROUP width=\"0*\">"
-          text run at (168,45) width 0: " "
       RenderTable {TABLE} at (0,561) size 500x77 [border: (1px outset #808080)]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
         RenderTableCol {COLGROUP} at (0,0) size 0x0
@@ -155,13 +143,9 @@ layer at (0,0) size 785x862
       RenderBlock {PRE} at (0,696) size 769x61
         RenderText {#text} at (0,0) size 224x60
           text run at (0,0) width 224: "<TABLE width=\"500\" border=1>"
-          text run at (224,0) width 0: " "
           text run at (0,15) width 168: "<COLGROUP width=\"1*\">"
-          text run at (168,15) width 0: " "
           text run at (0,30) width 176: "<COLGROUP width=\"100\">"
-          text run at (176,30) width 0: " "
           text run at (0,45) width 168: "<COLGROUP width=\"0*\">"
-          text run at (168,45) width 0: " "
       RenderTable {TABLE} at (0,769) size 500x77 [border: (1px outset #808080)]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
         RenderTableCol {COLGROUP} at (0,0) size 0x0
index b8381ca..16d9d68 100644 (file)
@@ -97,7 +97,6 @@ layer at (8,8) size 769x1399
             RenderBlock {PRE} at (21,575) size 462x17 [border: (1px dotted #FFFF00)]
               RenderText {#text} at (1,1) size 40x15
                 text run at (1,1) width 40: "  ..."
-                text run at (41,1) width 0: " "
             RenderBlock {P} at (21,608) size 462x20 [border: (1px dotted #FFFF00)]
               RenderText {#text} at (1,1) size 453x18
                 text run at (1,1) width 453: "The dotted borders and lines and the text in the left cell should be white."
index 268a0ea..045a7f4 100644 (file)
@@ -164,56 +164,29 @@ layer at (0,0) size 785x1660
       RenderBlock {PRE} at (0,1224) size 769x406
         RenderText {#text} at (0,0) size 1536x405
           text run at (0,0) width 1536: "................................................................................................................................................................................................"
-          text run at (1536,0) width 0: " "
           text run at (0,15) width 8: "."
-          text run at (8,15) width 0: " "
           text run at (0,30) width 8: "."
-          text run at (8,30) width 0: " "
           text run at (0,45) width 8: "."
-          text run at (8,45) width 0: " "
           text run at (0,60) width 8: "."
-          text run at (8,60) width 0: " "
           text run at (0,75) width 8: "."
-          text run at (8,75) width 0: " "
           text run at (0,90) width 8: "."
-          text run at (8,90) width 0: " "
           text run at (0,105) width 8: "."
-          text run at (8,105) width 0: " "
           text run at (0,120) width 8: "."
-          text run at (8,120) width 0: " "
           text run at (0,135) width 8: "."
-          text run at (8,135) width 0: " "
           text run at (0,150) width 8: "."
-          text run at (8,150) width 0: " "
           text run at (0,165) width 8: "."
-          text run at (8,165) width 0: " "
           text run at (0,180) width 8: "."
-          text run at (8,180) width 0: " "
           text run at (0,195) width 8: "."
-          text run at (8,195) width 0: " "
           text run at (0,210) width 8: "."
-          text run at (8,210) width 0: " "
           text run at (0,225) width 8: "."
-          text run at (8,225) width 0: " "
           text run at (0,240) width 8: "."
-          text run at (8,240) width 0: " "
           text run at (0,255) width 8: "."
-          text run at (8,255) width 0: " "
           text run at (0,270) width 8: "."
-          text run at (8,270) width 0: " "
           text run at (0,285) width 8: "."
-          text run at (8,285) width 0: " "
           text run at (0,300) width 8: "."
-          text run at (8,300) width 0: " "
           text run at (0,315) width 8: "."
-          text run at (8,315) width 0: " "
           text run at (0,330) width 8: "."
-          text run at (8,330) width 0: " "
           text run at (0,345) width 8: "."
-          text run at (8,345) width 0: " "
           text run at (0,360) width 8: "."
-          text run at (8,360) width 0: " "
           text run at (0,375) width 8: "."
-          text run at (8,375) width 0: " "
           text run at (0,390) width 8: "."
-          text run at (8,390) width 0: " "
index 60f2c98..bdb31a0 100644 (file)
@@ -1,3 +1,48 @@
+2014-10-28  Zalan Bujtas  <zalan@apple.com>
+
+        Speed up line parsing for simple line layout.
+        https://bugs.webkit.org/show_bug.cgi?id=137275
+
+        Reviewed by Antti Koivisto.
+        
+        This patch speeds up the line parsing for simple line layout by
+        reducing the number of text measurement calls.
+        The parsing logic hasn't changed. We simply walk over
+        the whitespace/non-whitespace fragments and measure them to
+        figure out whether they fit.
+        The performance gain mainly comes from the more efficient line wrapping
+        so that we don't re-measure the fragment when it is pushed to
+        the next line.
+
+        No change in behaviour. (except the empty line-break run removal.)
+
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::skipWhitespace): 
+        (WebCore::SimpleLineLayout::computeLineLeft):
+        (WebCore::SimpleLineLayout::TextFragment::TextFragment):
+        (WebCore::SimpleLineLayout::TextFragment::isEmpty):
+        (WebCore::SimpleLineLayout::LineState::LineState):
+        (WebCore::SimpleLineLayout::LineState::commitAndCreateRun): adds uncommitted text to the line and creates a run out of it. 
+        (WebCore::SimpleLineLayout::LineState::addUncommitted): appends fragment to the uncommitted text. 
+        (WebCore::SimpleLineLayout::LineState::addUncommittedWhitespace): appends whitespace to the uncommitted text.
+        (WebCore::SimpleLineLayout::LineState::jumpTo): moves line's current position without committing text. 
+        (WebCore::SimpleLineLayout::LineState::width): current width of the line including committed and uncommitted text.
+        (WebCore::SimpleLineLayout::LineState::fits): checks if committed + uncommitted text fits the line. 
+        (WebCore::SimpleLineLayout::LineState::removeCommittedTrailingWhitespace): 
+        (WebCore::SimpleLineLayout::removeTrailingWhitespace): post processing the trailing whitespace.
+        (WebCore::SimpleLineLayout::initializeLine):
+        (WebCore::SimpleLineLayout::splitFragmentToFitLine): breaks the fragments into 2 so that the first (sub)fragment fits the line.
+        (WebCore::SimpleLineLayout::nextFragment): returns the next valid fragment of the text.
+        (WebCore::SimpleLineLayout::createLineRuns): creates runs for the current line and returns when we can't fit more text on the line.
+        (WebCore::SimpleLineLayout::updateLineConstrains): updates left/right constrains for the current line.
+        (WebCore::SimpleLineLayout::createTextRuns): creates runs for the whole text.
+        (WebCore::SimpleLineLayout::isWhitespace): Deleted.
+        (WebCore::SimpleLineLayout::skipWhitespaces): Deleted.
+        (WebCore::SimpleLineLayout::measureWord): Deleted.
+        (WebCore::SimpleLineLayout::adjustRunOffsets): Deleted.
+        * rendering/SimpleLineLayout.h:
+        (WebCore::SimpleLineLayout::Run::Run):
+
 2014-10-28  Alexey Proskuryakov  <ap@apple.com>
 
         Windows build fix.
index b2ebf97..8b92d17 100644 (file)
@@ -213,17 +213,16 @@ struct Style {
     unsigned tabWidth;
 };
 
-static inline bool isWhitespace(UChar character, bool preserveNewline)
-{
-    return character == ' ' || character == '\t' || (!preserveNewline && character == '\n');
-}
-
 template <typename CharacterType>
-static inline unsigned skipWhitespaces(const CharacterType* text, unsigned offset, unsigned length, bool preserveNewline)
+static inline unsigned skipWhitespace(const CharacterType* text, unsigned offset, unsigned length, bool preserveNewline, unsigned& spaceCount)
 {
+    spaceCount = 0;
     for (; offset < length; ++offset) {
-        if (!isWhitespace(text[offset], preserveNewline))
+        bool isSpace = text[offset] == ' ';
+        if (!(isSpace || text[offset] == '\t' || (!preserveNewline && text[offset] == '\n')))
             return offset;
+        if (isSpace)
+            ++spaceCount;
     }
     return length;
 }
@@ -244,127 +243,10 @@ static float textWidth(const RenderText& renderText, const CharacterType* text,
     return style.font.width(run);
 }
 
-template <typename CharacterType>
-static float measureWord(unsigned start, unsigned end, float lineWidth, const Style& style, const CharacterType* text, unsigned textLength, const RenderText& textRenderer)
-{
-    if (text[start] == ' ' && end == start + 1)
-        return style.spaceWidth;
-
-    bool measureWithEndSpace = style.collapseWhitespace && end < textLength && text[end] == ' ';
-    if (measureWithEndSpace)
-        ++end;
-    float width = textWidth(textRenderer, text, textLength, start, end, lineWidth, style);
-
-    return measureWithEndSpace ? width - style.spaceWidth : width;
-}
-
-template <typename CharacterType>
-Vector<Run, 4> createLineRuns(unsigned lineStart, LineWidth& lineWidth, LazyLineBreakIterator& lineBreakIterator, const Style& style, const CharacterType* text, unsigned textLength, const RenderText& textRenderer)
-{
-    Vector<Run, 4> lineRuns;
-    lineRuns.uncheckedAppend(Run(lineStart, 0));
-
-    unsigned wordEnd = lineStart;
-    while (wordEnd < textLength) {
-        ASSERT(!style.collapseWhitespace || !isWhitespace(text[wordEnd], style.preserveNewline));
-
-        unsigned wordStart = wordEnd;
-
-        if (style.preserveNewline && text[wordStart] == '\n') {
-            ++wordEnd;
-            // FIXME: This creates a dedicated run for newline. This is wasteful and unnecessary but it keeps test results unchanged.
-            if (wordStart > lineStart)
-                lineRuns.append(Run(wordStart, lineRuns.last().right));
-            lineRuns.last().right = lineRuns.last().left;
-            lineRuns.last().end = wordEnd;
-            break;
-        }
-
-        if (!style.collapseWhitespace && isWhitespace(text[wordStart], style.preserveNewline))
-            wordEnd = wordStart + 1;
-        else
-            wordEnd = nextBreakablePosition<CharacterType, false>(lineBreakIterator, text, textLength, wordStart + 1);
-
-        bool wordIsPrecededByWhitespace = style.collapseWhitespace && wordStart > lineStart && isWhitespace(text[wordStart - 1], style.preserveNewline);
-        if (wordIsPrecededByWhitespace)
-            --wordStart;
-
-        float wordWidth = measureWord(wordStart, wordEnd, lineWidth.committedWidth(), style, text, textLength, textRenderer);
-
-        lineWidth.addUncommittedWidth(wordWidth);
-
-        if (style.wrapLines) {
-            // Move to the next line if the current one is full and we have something on it.
-            if (!lineWidth.fitsOnLine() && lineWidth.committedWidth())
-                break;
-
-            // This is for white-space: pre-wrap which requires special handling for end line whitespace.
-            if (!style.collapseWhitespace && lineWidth.fitsOnLine() && wordEnd < textLength && isWhitespace(text[wordEnd], style.preserveNewline)) {
-                // Look ahead to see if the next whitespace would fit.
-                float whitespaceWidth = textWidth(textRenderer, text, textLength, wordEnd, wordEnd + 1, lineWidth.committedWidth(), style);
-                if (!lineWidth.fitsOnLineIncludingExtraWidth(whitespaceWidth)) {
-                    // If not eat away the rest of the whitespace on the line.
-                    unsigned whitespaceEnd = skipWhitespaces(text, wordEnd, textLength, style.preserveNewline);
-                    // Include newline to this run too.
-                    if (whitespaceEnd < textLength && text[whitespaceEnd] == '\n')
-                        ++whitespaceEnd;
-                    lineRuns.last().end = whitespaceEnd;
-                    lineRuns.last().right = lineWidth.availableWidth();
-                    break;
-                }
-            }
-        }
-
-        if (wordStart > lineRuns.last().end) {
-            // There were more than one consecutive whitespace.
-            ASSERT(wordIsPrecededByWhitespace);
-            // Include space to the end of the previous run.
-            lineRuns.last().end++;
-            lineRuns.last().right += style.spaceWidth;
-            // Start a new run on the same line.
-            lineRuns.append(Run(wordStart + 1, lineRuns.last().right));
-        }
-
-        if (!lineWidth.fitsOnLine() && style.breakWordOnOverflow) {
-            // Backtrack and start measuring character-by-character.
-            lineWidth.addUncommittedWidth(-lineWidth.uncommittedWidth());
-            unsigned splitEnd = wordStart;
-            for (; splitEnd < wordEnd; ++splitEnd) {
-                float charWidth = textWidth(textRenderer, text, textLength, splitEnd, splitEnd + 1, 0, style);
-                lineWidth.addUncommittedWidth(charWidth);
-                if (!lineWidth.fitsOnLine() && splitEnd > lineStart)
-                    break;
-                lineWidth.commit();
-            }
-            lineRuns.last().end = splitEnd;
-            lineRuns.last().right = lineWidth.committedWidth();
-            // To match line boxes, set single-space-only line width to zero.
-            if (text[lineRuns.last().start] == ' ' && lineRuns.last().start + 1 == lineRuns.last().end)
-                lineRuns.last().right = lineRuns.last().left;
-            break;
-        }
-
-        lineWidth.commit();
-
-        lineRuns.last().right = lineWidth.committedWidth();
-        lineRuns.last().end = wordEnd;
-
-        if (style.collapseWhitespace)
-            wordEnd = skipWhitespaces(text, wordEnd, textLength, style.preserveNewline);
-
-        if (!lineWidth.fitsOnLine() && style.wrapLines) {
-            // The first run on the line overflows.
-            ASSERT(lineRuns.size() == 1);
-            break;
-        }
-    }
-    return lineRuns;
-}
-
-static float computeLineLeft(ETextAlign textAlign, const LineWidth& lineWidth)
+static float computeLineLeft(ETextAlign textAlign, float availableWidth, float committedWidth, float logicalLeftOffset)
 {
-    float remainingWidth = lineWidth.availableWidth() - lineWidth.committedWidth();
-    float left = lineWidth.logicalLeftOffset();
+    float remainingWidth = availableWidth - committedWidth;
+    float left = logicalLeftOffset;
     switch (textAlign) {
     case LEFT:
     case WEBKIT_LEFT:
@@ -384,56 +266,366 @@ static float computeLineLeft(ETextAlign textAlign, const LineWidth& lineWidth)
     return 0;
 }
 
-static void adjustRunOffsets(Vector<Run, 4>& lineRuns, float adjustment)
-{
-    if (!adjustment)
-        return;
-    for (unsigned i = 0; i < lineRuns.size(); ++i) {
-        lineRuns[i].left += adjustment;
-        lineRuns[i].right += adjustment;
+struct TextFragment {
+    TextFragment()
+        : start(0)
+        , isCollapsedWhitespace(false)
+        , end(0)
+        , isWhitespaceOnly(false)
+        , isBreakable(false)
+        , mustBreak(false)
+        , width(0)
+    { }
+
+    TextFragment(unsigned textStart, unsigned textEnd, unsigned textWidth)
+        : start(textStart)
+        , isCollapsedWhitespace(false)
+        , end(textEnd)
+        , isWhitespaceOnly(false)
+        , isBreakable(false)
+        , mustBreak(false)
+        , width(textWidth)
+    { }
+
+    bool isEmpty() const
+    {
+        return start == end;
     }
-}
 
-template <typename CharacterType>
-void createTextRuns(Layout::RunVector& runs, unsigned& lineCount, RenderBlockFlow& flow, RenderText& textRenderer)
-{
-    const Style style(flow.style());
+    unsigned start : 31;
+    bool isCollapsedWhitespace : 1;
+    unsigned end : 31;
+    bool isWhitespaceOnly : 1;
+    bool isBreakable;
+    bool mustBreak;
+    float width;
+};
 
-    const CharacterType* text = textRenderer.text()->characters<CharacterType>();
-    const unsigned textLength = textRenderer.textLength();
+struct LineState {
+    LineState()
+        : availableWidth(0)
+        , logicalLeftOffset(0)
+        , uncommittedStart(0)
+        , uncommittedEnd(0)
+        , uncommittedLeft(0)
+        , uncommittedWidth(0)
+        , committedWidth(0)
+        , end(0)
+        , trailingWhitespaceWidth(0)
+    {
+    }
 
-    LayoutUnit borderAndPaddingBefore = flow.borderAndPaddingBefore();
-    LayoutUnit lineHeight = lineHeightFromFlow(flow);
+    void commitAndCreateRun(Layout::RunVector& lineRuns)
+    {
+        if (uncommittedStart == uncommittedEnd)
+            return;
 
-    LazyLineBreakIterator lineBreakIterator(textRenderer.text(), flow.style().locale());
+        lineRuns.append(Run(uncommittedStart, uncommittedEnd, uncommittedLeft, uncommittedLeft + uncommittedWidth, false));
+        // Move uncommitted to committed.
+        committedWidth += uncommittedWidth;
+
+        uncommittedStart = uncommittedEnd;
+        uncommittedLeft += uncommittedWidth;
+        uncommittedWidth = 0;
+    }
 
-    unsigned lineEnd = 0;
-    while (lineEnd < textLength) {
-        if (style.collapseWhitespace)
-            lineEnd = skipWhitespaces(text, lineEnd, textLength, style.preserveNewline);
+    void addUncommitted(const TextFragment& fragment)
+    {
+        addUncommitted(fragment.end, fragment.width, fragment.isWhitespaceOnly);
+    }
 
-        unsigned lineStart = lineEnd;
+    void addUncommitted(unsigned fragmentEnd, float fragmentWidth, bool whitespaceOnly)
+    {
+        unsigned uncomittedFragmentLength = fragmentEnd - uncommittedEnd;
+        uncommittedWidth += fragmentWidth;
+        uncommittedEnd = fragmentEnd;
+        end = uncommittedEnd;
+        trailingWhitespaceWidth = whitespaceOnly ? fragmentWidth : 0;
+        trailingWhitespaceLength = whitespaceOnly ? uncomittedFragmentLength  : 0;
+    }
 
-        // LineWidth reads the current y position from the flow so keep it updated.
-        flow.setLogicalHeight(lineHeight * lineCount + borderAndPaddingBefore);
-        LineWidth lineWidth(flow, false, DoNotIndentText);
+    void addUncommittedWhitespace(float whitespaceWidth)
+    {
+        addUncommitted(uncommittedEnd + 1, whitespaceWidth, true);
+    }
 
-        auto lineRuns = createLineRuns(lineStart, lineWidth, lineBreakIterator, style, text, textLength, textRenderer);
+    void jumpTo(unsigned newPositon, float leftX)
+    {
+        end = newPositon;
 
-        lineEnd = lineRuns.last().end;
-        if (lineStart == lineEnd)
-            continue;
+        uncommittedStart = newPositon;
+        uncommittedEnd = newPositon;
+        uncommittedLeft = leftX;
+        uncommittedWidth = 0;
+    }
 
-        lineRuns.last().isEndOfLine = true;
+    float width() const
+    {
+        return committedWidth + uncommittedWidth;
+    }
 
-        float lineLeft = computeLineLeft(style.textAlign, lineWidth);
-        adjustRunOffsets(lineRuns, lineLeft);
+    bool fits(float extra) const
+    {
+        return availableWidth >= width() + extra;
+    }
+
+    void removeCommittedTrailingWhitespace()
+    {
+        ASSERT(!uncommittedWidth);
+        committedWidth -= trailingWhitespaceWidth;
+        trailingWhitespaceWidth = 0;
+        trailingWhitespaceLength = 0;
+    }
+
+    float availableWidth;
+    float logicalLeftOffset;
+
+    unsigned uncommittedStart;
+    unsigned uncommittedEnd;
+    float uncommittedLeft;
+    float uncommittedWidth;
+    float committedWidth;
+    unsigned end; // End position of the current line.
+    float trailingWhitespaceWidth; // Use this to remove trailing whitespace without re-mesuring the text.
+    float trailingWhitespaceLength;
+};
+
+template <typename CharacterType>
+static void removeTrailingWhitespace(LineState& line, TextFragment& fragmentForNextLine, Layout::RunVector& lineRuns, const Style& style, const CharacterType* text, unsigned textLength)
+{
+    bool preWrap = style.wrapLines && !style.collapseWhitespace;
+    // Trailing whitespace gets removed when we either collapse whitespace or pre-wrap is present.
+    if (!(style.collapseWhitespace || preWrap))
+        return;
+
+    ASSERT(lineRuns.size());
+    Run& lastRun = lineRuns.last();
+
+    unsigned originalLineEnd = line.end;
+    bool trailingPreWrapWhitespaceNeedsToBeRemoved = false;
+    // When pre-wrap is present, trailing whitespace needs to be removed:
+    // 1. from the "next line": when at least the first charater fits. When even the first whitespace is wider that the available width, we don't remove any whitespace at all.
+    // 2. from this line: remove whitespace, unless it's the only fragment on the line -so removing the whitesapce would produce an empty line.
+    if (preWrap) {
+        if (fragmentForNextLine.isWhitespaceOnly && !fragmentForNextLine.isEmpty() && line.availableWidth >= line.committedWidth) {
+            line.end = fragmentForNextLine.end;
+            fragmentForNextLine = TextFragment();
+        }
+        if (line.trailingWhitespaceLength)
+            trailingPreWrapWhitespaceNeedsToBeRemoved = !(line.committedWidth == line.trailingWhitespaceWidth); // Check if we've got only whitespace on this line.
+    }
+    if (line.trailingWhitespaceLength && (style.collapseWhitespace || trailingPreWrapWhitespaceNeedsToBeRemoved)) {
+        lastRun.right -= line.trailingWhitespaceWidth;
+        lastRun.end -= line.trailingWhitespaceLength;
+        if (lastRun.start == lastRun.end)
+            lineRuns.removeLast();
+        line.removeCommittedTrailingWhitespace();
+    }
+
+    // If we skipped any whitespace and now the line end is a "preserved" newline, skip the newline too as we are wrapping the line here already.
+    if (originalLineEnd != line.end && style.preserveNewline && line.end < textLength && text[line.end] == '\n')
+        ++line.end;
+}
+
+template <typename CharacterType>
+static void initializeLine(LineState& line, const Style& style, const CharacterType* text, unsigned textLength)
+{
+    line.committedWidth = 0;
+    line.uncommittedLeft = 0;
+    line.trailingWhitespaceWidth = 0;
+    line.trailingWhitespaceLength = 0;
+    // Skip leading whitespace if collapsing whitespace, unless there's an uncommitted fragment pushed from the previous line.
+    // FIXME: Be smarter when the run from the previous line does not fit the current line. Right now, we just reprocess it.
+    if (line.uncommittedWidth && !line.fits(line.uncommittedWidth))
+        line.jumpTo(line.uncommittedStart, 0); // Start over with this fragment.
+    else if (!line.uncommittedWidth) {
+        unsigned spaceCount = 0;
+        line.jumpTo(style.collapseWhitespace ? skipWhitespace(text, line.end, textLength, style.preserveNewline, spaceCount) : line.end, 0);
+    }
+}
+
+template <typename CharacterType>
+static TextFragment splitFragmentToFitLine(TextFragment& fragmentToSplit, float availableWidth, bool keepAtLeastOneCharacter, const RenderText& textRenderer,
+    const CharacterType* text, unsigned textLength, const Style& style)
+{
+    // Fast path for single char fragments.
+    if (fragmentToSplit.start + 1 == fragmentToSplit.end) {
+        if (keepAtLeastOneCharacter)
+            return TextFragment();
+
+        TextFragment fragmentForNextLine(fragmentToSplit);
+        fragmentToSplit.end = fragmentToSplit.start;
+        fragmentToSplit.width = 0;
+        return fragmentForNextLine;
+    }
+    // Simple binary search to find out what fits the current line.
+    // FIXME: add surrogate pair support.
+    unsigned left = fragmentToSplit.start;
+    unsigned right = fragmentToSplit.end - 1; // We can ignore the last character. It surely does not fit.
+    float width = 0;
+    while (left < right) {
+        unsigned middle = (left + right) / 2;
+        width = textWidth(textRenderer, text, textLength, fragmentToSplit.start, middle + 1, 0, style);
+        if (availableWidth > width)
+            left = middle + 1;
+        else if (availableWidth < width)
+            right = middle;
+        else {
+            right = middle + 1;
+            break;
+        }
+    }
+
+    if (keepAtLeastOneCharacter && right == fragmentToSplit.start)
+        ++right;
+    TextFragment fragmentForNextLine(fragmentToSplit);
+    fragmentToSplit.end = right;
+    fragmentToSplit.width = fragmentToSplit.isEmpty() ? 0 : textWidth(textRenderer, text, textLength, fragmentToSplit.start, right, 0, style);
+
+    fragmentForNextLine.start = fragmentToSplit.end;
+    fragmentForNextLine.width -= fragmentToSplit.width;
+    return fragmentForNextLine;
+}
 
-        for (unsigned i = 0; i < lineRuns.size(); ++i)
-            runs.append(lineRuns[i]);
+template <typename CharacterType>
+static TextFragment nextFragment(unsigned previousFragmentEnd, LazyLineBreakIterator& lineBreakIterator, const Style& style, const CharacterType* text, unsigned textLength,
+    float xPosition, const RenderText& textRenderer)
+{
+    // A fragment can have
+    // 1. new line character when preserveNewline is on (not considered as whitespace) or
+    // 2. whitespace (collasped, non-collapsed multi or single) or
+    // 3. non-whitespace characters.
+    TextFragment fragment;
+    fragment.mustBreak = style.preserveNewline && text[previousFragmentEnd] == '\n';
+    unsigned spaceCount = 0;
+    unsigned whitespaceEnd = previousFragmentEnd;
+    if (!fragment.mustBreak)
+        whitespaceEnd = skipWhitespace(text, previousFragmentEnd, textLength, style.preserveNewline, spaceCount);
+    fragment.isWhitespaceOnly = previousFragmentEnd < whitespaceEnd;
+    fragment.start = previousFragmentEnd;
+    if (fragment.isWhitespaceOnly)
+        fragment.end = whitespaceEnd;
+    else if (fragment.mustBreak)
+        fragment.end = fragment.start + 1;
+    else
+        fragment.end = nextBreakablePosition<CharacterType, false>(lineBreakIterator, text, textLength, previousFragmentEnd + 1);
+    bool multiple = fragment.start + 1 < fragment.end;
+    fragment.isCollapsedWhitespace = multiple && fragment.isWhitespaceOnly && style.collapseWhitespace;
+    // Non-collapsed whitespace or just plain words when "break word on overflow" is on can wrap.
+    fragment.isBreakable = multiple && ((fragment.isWhitespaceOnly && !fragment.isCollapsedWhitespace) || (!fragment.isWhitespaceOnly && style.breakWordOnOverflow));
+
+    // Compute fragment width or just use the pre-computed whitespace widths.
+    unsigned fragmentLength = fragment.end - fragment.start;
+    if (fragment.isCollapsedWhitespace)
+        fragment.width = style.spaceWidth;
+    else if (fragment.mustBreak)
+        fragment.width = 0; // Newline character's width is 0.
+    else if (fragmentLength == spaceCount) // Space only.
+        fragment.width = style.spaceWidth * spaceCount;
+    else
+        fragment.width = textWidth(textRenderer, text, textLength, fragment.start, fragment.end, xPosition, style);
+    return fragment;
+}
 
+template <typename CharacterType>
+bool createLineRuns(LineState& line, Layout::RunVector& lineRuns, unsigned& lineCount, LazyLineBreakIterator& lineBreakIterator, const Style& style, const CharacterType* text,
+    unsigned textLength, const RenderText& textRenderer)
+{
+    unsigned previousNumberOfRuns = lineRuns.size();
+    TextFragment fragmentForNextLine;
+    initializeLine(line, style, text, textLength);
+    bool lineCanBeWrapped = style.wrapLines || style.breakWordOnOverflow;
+    while (line.end < textLength) {
+        // Find the next text fragment. Start from the end of the previous fragment -current line end.
+        TextFragment fragment = nextFragment(line.end, lineBreakIterator, style, text, textLength, line.width(), textRenderer);
+        if ((lineCanBeWrapped && !line.fits(fragment.width)) || fragment.mustBreak) {
+            // Overflow wrapping behaviour:
+            // 1. Newline character: wraps the line unless it's treated as whitespace.
+            // 2. Whitesapce collapse on: whitespace is skipped.
+            // 3. Whitespace collapse off: whitespace is wrapped.
+            // 4. First, non-whitespace fragment is either wrapped or kept on the line. (depends on overflow-wrap)
+            // 5. Non-whitespace fragment when there's already another fragment on the line gets pushed to the next line.
+            bool isFirstFragment = !line.width();
+            if (fragment.mustBreak) {
+                if (isFirstFragment)
+                    line.addUncommitted(fragment);
+                else {
+                    // No need to add the new line fragment if there's already content on the line. We are about to close this line anyway.
+                    ++line.end;
+                }
+            } else if (style.collapseWhitespace && fragment.isWhitespaceOnly) {
+                // Whitespace collapse is on: whitespace that doesn't fit is simply skipped.
+                line.end = fragment.end;
+            } else if (fragment.isWhitespaceOnly || ((isFirstFragment && style.breakWordOnOverflow) || !style.wrapLines)) { // !style.wrapLines: bug138102(preserve existing behavior)
+                // Whitespace collapse is off or non-whitespace content. split the fragment; (modified)fragment -> this line, fragmentForNextLine -> next line.
+                // When this is the only (first) fragment, the first character stays on the line, even if it does not fit.
+                fragmentForNextLine = splitFragmentToFitLine(fragment, line.availableWidth - line.width(), isFirstFragment, textRenderer, text, textLength, style);
+                if (!fragment.isEmpty()) {
+                    // Whitespace fragments can get pushed entirely to the next line.
+                    line.addUncommitted(fragment);
+                }
+            } else if (isFirstFragment) {
+                // Non-breakable non-whitespace first fragment. Add it to the current line. -it overflows though.
+                line.addUncommitted(fragment);
+            } else {
+                // Non-breakable non-whitespace fragment when there's already a fragment on the line. Push it to the next line.
+                fragmentForNextLine = fragment;
+            }
+            break;
+        }
+        // When the current fragment is collapsed whitespace, we need to create a run for what we've processed so far.
+        if (fragment.isCollapsedWhitespace) {
+            // One trailing whitespace to preserve.
+            line.addUncommittedWhitespace(style.spaceWidth);
+            line.commitAndCreateRun(lineRuns);
+            // And skip the collapsed whitespace.
+            line.jumpTo(fragment.end, line.width() + fragment.width - style.spaceWidth);
+        } else
+            line.addUncommitted(fragment);
+    }
+    line.commitAndCreateRun(lineRuns);
+    // Postprocessing the runs we added for this line.
+    if (previousNumberOfRuns != lineRuns.size()) {
+        removeTrailingWhitespace(line, fragmentForNextLine, lineRuns, style, text, textLength);
+        lineRuns.last().isEndOfLine = true;
+        // Adjust runs' position by taking line's alignment into account.
+        if (float lineLeft = computeLineLeft(style.textAlign, line.availableWidth, line.committedWidth, line.logicalLeftOffset)) {
+            for (unsigned i = previousNumberOfRuns; i < lineRuns.size(); ++i) {
+                lineRuns[i].left += lineLeft;
+                lineRuns[i].right += lineLeft;
+            }
+        }
         ++lineCount;
     }
+    if (!fragmentForNextLine.isEmpty())
+        line.addUncommitted(fragmentForNextLine);
+    return line.end < textLength || line.uncommittedWidth;
+}
+
+static void updateLineConstrains(const RenderBlockFlow& flow, float& availableWidth, float& logicalLeftOffset)
+{
+    LayoutUnit height = flow.logicalHeight();
+    LayoutUnit logicalHeight = flow.minLineHeightForReplacedRenderer(false, 0);
+    float logicalRightOffset = flow.logicalRightOffsetForLine(height, false, logicalHeight);
+    logicalLeftOffset = flow.logicalLeftOffsetForLine(height, false, logicalHeight);
+    availableWidth = std::max<float>(0, logicalRightOffset - logicalLeftOffset);
+}
+
+template <typename CharacterType>
+void createTextRuns(Layout::RunVector& runs, unsigned& lineCount, RenderBlockFlow& flow, RenderText& textRenderer)
+{
+    const Style style(flow.style());
+    const CharacterType* text = textRenderer.text()->characters<CharacterType>();
+    const unsigned textLength = textRenderer.textLength();
+    LayoutUnit borderAndPaddingBefore = flow.borderAndPaddingBefore();
+    LayoutUnit lineHeight = lineHeightFromFlow(flow);
+    LazyLineBreakIterator lineBreakIterator(textRenderer.text(), flow.style().locale());
+    LineState line;
+
+    do {
+        flow.setLogicalHeight(lineHeight * lineCount + borderAndPaddingBefore);
+        updateLineConstrains(flow, line.availableWidth, line.logicalLeftOffset);
+    } while (createLineRuns(line, runs, lineCount, lineBreakIterator, style, text, textLength, textRenderer));
 }
 
 std::unique_ptr<Layout> create(RenderBlockFlow& flow)
index 5d02fd1..c438ca9 100644 (file)
@@ -51,6 +51,13 @@ struct Run {
         , left(left)
         , right(left)
     { }
+    Run(unsigned start, unsigned end, float left, float right, bool isEndOfLine)
+        : start(start)
+        , end(end)
+        , isEndOfLine(isEndOfLine)
+        , left(left)
+        , right(right)
+    { }
 
     unsigned start;
     unsigned end : 31;