2011-06-29 Kent Tamura <tkent@chromium.org>
authortkent@chromium.org <tkent@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Jun 2011 06:30:23 +0000 (06:30 +0000)
committertkent@chromium.org <tkent@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Jun 2011 06:30:23 +0000 (06:30 +0000)
        Reviewed by Dimitri Glazkov.

        Avoid custom layout code of RenderTextControlSingleLine
        https://bugs.webkit.org/show_bug.cgi?id=61415

        Update tests including <input type=search> or <input type=number>. Their
        internal structures are changed.
        Slight position changes for search result buttons and search cancel
        buttons are expected.

        * fast/css/text-input-with-webkit-border-radius-expected.txt:
        * platform/chromium/test_expectations.txt:
        * platform/mac/fast/css/input-search-padding-expected.png:
        * platform/mac/fast/css/input-search-padding-expected.txt:
        * platform/mac/fast/css/pseudo-cache-stale-expected.txt:
        * platform/mac/fast/forms/box-shadow-override-expected.txt:
        * platform/mac/fast/forms/control-restrict-line-height-expected.txt:
        * platform/mac/fast/forms/input-appearance-height-expected.txt:
        * platform/mac/fast/forms/input-appearance-spinbutton-disabled-readonly-expected.txt:
        * platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
        * platform/mac/fast/forms/input-appearance-spinbutton-layer-expected.txt:
        * platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
        * platform/mac/fast/forms/input-appearance-spinbutton-visibility-expected.txt:
        * platform/mac/fast/forms/placeholder-position-expected.txt:
        * platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/mac/fast/forms/placeholder-set-value-expected.txt:
        * platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
        * platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
        * platform/mac/fast/forms/search-placeholder-value-changed-expected.txt:
        * platform/mac/fast/forms/search-rtl-expected.txt:
        * platform/mac/fast/forms/search-styled-expected.txt:
        * platform/mac/fast/forms/search-vertical-alignment-expected.png:
        * platform/mac/fast/forms/search-vertical-alignment-expected.txt:
        * platform/mac/fast/forms/searchfield-heights-expected.txt:
        * platform/mac/fast/repaint/search-field-cancel-expected.png:
        * platform/mac/fast/repaint/search-field-cancel-expected.txt:
        * platform/mac/fast/replaced/width100percent-searchfield-expected.txt:
        * platform/mac/fast/table/colspanMinWidth-vertical-expected.png:
        * platform/mac/fast/table/colspanMinWidth-vertical-expected.txt:
2011-06-29  Kent Tamura  <tkent@chromium.org>

        Reviewed by Dimitri Glazkov.

        Avoid custom layout code of RenderTextControlSingleLine
        https://bugs.webkit.org/show_bug.cgi?id=61415

        If a text field has a search results button, a search cancel
        button, a speech button, or a spin button, the editable inner text
        element and the buttons are wrapped by a flexible box container,
        and the editable inner text element has flexibility. As the result
        of applying the flexible box, we don't need any horizontal layout
        code in RenderTextControlSingleLine except the inner spin button.

        Also, we remove custom hit-testing code in nodeAtPoint(). If a
        user clicks on a position left of the inner editable text but not
        on the search results button, the search results button doesn't
        work though it worked.

        * css/html.css:
        (input::-webkit-textfield-decoration-container):
          New style definition for the "container" element.
        (input[type="search"]::-webkit-search-cancel-button):
          It should be a block element because it's a child of the flexible box.
          Also, this doesn't have flexibility.
        (input[type="search"]::-webkit-search-decoration): ditto.
        (input[type="search"]::-webkit-search-results-decoration): ditto.
        (input[type="search"]::-webkit-search-results-button): ditto.
        (input::-webkit-inner-spin-button): ditto.
        (input::-webkit-input-speech-button): ditto.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::containerElement):
          Add an accessor of the flexible box container.
          It just calls InputType::containerElement().
        * html/HTMLInputElement.h: Declare it.
        * html/InputType.h:
        (WebCore::InputType::containerElement): New accessor for a shadow element.
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::SearchInputType):
          m_innerBlock is moved to TextFieldInputType.
        (WebCore::SearchInputType::needsContainer):
          A search field always needs the flexible box container because
          of the results button and the cancel button.
        (WebCore::SearchInputType::createShadowSubtree):
          Use TextFieldInputType::createShadowSubtree(), then modify the tree.
        (WebCore::SearchInputType::destroyShadowSubtree):
          m_innerBlock is moved to TextFieldInputType.
        * html/SearchInputType.h:
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::TextFieldInputType):
          Initialize the new members.
        (WebCore::TextFieldInputType::needsContainer):
          Returns true if x-webkit-speech. We check a spin button separately.
        (WebCore::TextFieldInputType::createShadowSubtree):
          Wrap everything with the flexible box container if needsContainer() or we need a spin button.
        (WebCore::TextFieldInputType::containerElement): Added an accessor.
        (WebCore::TextFieldInputType::innerBlockElement): ditto.
        (WebCore::TextFieldInputType::innerTextElement): ditto.
        (WebCore::TextFieldInputType::innerSpinButtonElement): ditto.
        (WebCore::TextFieldInputType::speechButtonElement): ditto.
        (WebCore::TextFieldInputType::destroyShadowSubtree):
          Clear references to new shadow nodes.
        * html/TextFieldInputType.h:
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::containerElement): Added an accessor.
        (WebCore::RenderTextControlSingleLine::innerTextElement):
        (WebCore::RenderTextControlSingleLine::layout):
         - Correct heights check
          Comparing with height(), not contentHeigth(), was incorrect.
         - Adjust the container height like the editable inner text.
         - Remove width adjustment
         - Remove the speech button layout code
          The flexible box layout is enough.
        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
          Remove custom code for results/cancel/speech buttons, and
          Simplify comments.
        (WebCore::RenderTextControlSingleLine::forwardEvent):
          Remove custom forwarding code for results/cancel buttons.
        (WebCore::RenderTextControlSingleLine::styleDidChange):
          Clear the style of the container because we update it in layout().
        (WebCore::RenderTextControlSingleLine::hasControlClip):
          Decoration buttons should be clipped by the container.
        (WebCore::RenderTextControlSingleLine::controlClipRect): ditto.
        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
          We don't need to use display:inline-block any more.
        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
          The text wrapper element should have flexibility.
        (WebCore::RenderTextControlSingleLine::textBlockInsetTop):
          Updated for the tree structure change.
        * rendering/RenderTextControlSingleLine.h:

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

41 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/css/text-input-with-webkit-border-radius-expected.txt
LayoutTests/platform/chromium/test_expectations.txt
LayoutTests/platform/mac/fast/css/input-search-padding-expected.png
LayoutTests/platform/mac/fast/css/input-search-padding-expected.txt
LayoutTests/platform/mac/fast/css/pseudo-cache-stale-expected.txt
LayoutTests/platform/mac/fast/forms/box-shadow-override-expected.txt
LayoutTests/platform/mac/fast/forms/control-restrict-line-height-expected.txt
LayoutTests/platform/mac/fast/forms/input-appearance-height-expected.txt
LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-disabled-readonly-expected.txt
LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-expected.txt
LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-layer-expected.txt
LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt
LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-visibility-expected.txt
LayoutTests/platform/mac/fast/forms/placeholder-position-expected.txt
LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt
LayoutTests/platform/mac/fast/forms/placeholder-set-value-expected.txt
LayoutTests/platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt
LayoutTests/platform/mac/fast/forms/search-display-none-cancel-button-expected.txt
LayoutTests/platform/mac/fast/forms/search-placeholder-value-changed-expected.txt
LayoutTests/platform/mac/fast/forms/search-rtl-expected.txt
LayoutTests/platform/mac/fast/forms/search-styled-expected.txt
LayoutTests/platform/mac/fast/forms/search-vertical-alignment-expected.png
LayoutTests/platform/mac/fast/forms/search-vertical-alignment-expected.txt
LayoutTests/platform/mac/fast/forms/searchfield-heights-expected.txt
LayoutTests/platform/mac/fast/repaint/search-field-cancel-expected.png
LayoutTests/platform/mac/fast/repaint/search-field-cancel-expected.txt
LayoutTests/platform/mac/fast/replaced/width100percent-searchfield-expected.txt
LayoutTests/platform/mac/fast/table/colspanMinWidth-vertical-expected.png
LayoutTests/platform/mac/fast/table/colspanMinWidth-vertical-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/css/html.css
Source/WebCore/html/HTMLInputElement.cpp
Source/WebCore/html/HTMLInputElement.h
Source/WebCore/html/InputType.h
Source/WebCore/html/SearchInputType.cpp
Source/WebCore/html/SearchInputType.h
Source/WebCore/html/TextFieldInputType.cpp
Source/WebCore/html/TextFieldInputType.h
Source/WebCore/rendering/RenderTextControlSingleLine.cpp
Source/WebCore/rendering/RenderTextControlSingleLine.h

index 49b29a0..bb1a10f 100644 (file)
@@ -1,3 +1,45 @@
+2011-06-29  Kent Tamura  <tkent@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Avoid custom layout code of RenderTextControlSingleLine
+        https://bugs.webkit.org/show_bug.cgi?id=61415
+
+        Update tests including <input type=search> or <input type=number>. Their
+        internal structures are changed.
+        Slight position changes for search result buttons and search cancel
+        buttons are expected.
+
+        * fast/css/text-input-with-webkit-border-radius-expected.txt:
+        * platform/chromium/test_expectations.txt:
+        * platform/mac/fast/css/input-search-padding-expected.png:
+        * platform/mac/fast/css/input-search-padding-expected.txt:
+        * platform/mac/fast/css/pseudo-cache-stale-expected.txt:
+        * platform/mac/fast/forms/box-shadow-override-expected.txt:
+        * platform/mac/fast/forms/control-restrict-line-height-expected.txt:
+        * platform/mac/fast/forms/input-appearance-height-expected.txt:
+        * platform/mac/fast/forms/input-appearance-spinbutton-disabled-readonly-expected.txt:
+        * platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
+        * platform/mac/fast/forms/input-appearance-spinbutton-layer-expected.txt:
+        * platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
+        * platform/mac/fast/forms/input-appearance-spinbutton-visibility-expected.txt:
+        * platform/mac/fast/forms/placeholder-position-expected.txt:
+        * platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
+        * platform/mac/fast/forms/placeholder-set-value-expected.txt:
+        * platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
+        * platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
+        * platform/mac/fast/forms/search-placeholder-value-changed-expected.txt:
+        * platform/mac/fast/forms/search-rtl-expected.txt:
+        * platform/mac/fast/forms/search-styled-expected.txt:
+        * platform/mac/fast/forms/search-vertical-alignment-expected.png:
+        * platform/mac/fast/forms/search-vertical-alignment-expected.txt:
+        * platform/mac/fast/forms/searchfield-heights-expected.txt:
+        * platform/mac/fast/repaint/search-field-cancel-expected.png:
+        * platform/mac/fast/repaint/search-field-cancel-expected.txt:
+        * platform/mac/fast/replaced/width100percent-searchfield-expected.txt:
+        * platform/mac/fast/table/colspanMinWidth-vertical-expected.png:
+        * platform/mac/fast/table/colspanMinWidth-vertical-expected.txt:
+
 2011-06-29  Simon Fraser  <simon.fraser@apple.com>
 
         Fix the test description.
index bd57d00..dec2d34 100644 (file)
@@ -16,11 +16,12 @@ layer at (0,0) size 800x137
           text run at (0,0) width 617: "If the test passes, you will see a text entry field containing \"default text\" inside the grey div below."
       RenderBlock {DIV} at (0,68) size 163x45 [bgcolor=#888888]
         RenderTextControl {INPUT} at (11,9) size 133x19 [bgcolor=#00FF00] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 127x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (114,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 127x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 106x13
+            RenderBlock {DIV} at (114,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
 layer at (30,96) size 106x13
-  RenderBlock {DIV} at (8,0) size 106x13
+  RenderBlock {DIV} at (0,0) size 106x13
     RenderText {#text} at (1,0) size 62x13
       text run at (1,0) width 62: "default text"
index 4c2ff67..9ba0aa6 100644 (file)
@@ -1296,7 +1296,6 @@ BUGCR23488 LEOPARD DEBUG SLOW : fast/backgrounds/size/backgroundSize15.html = IM
 BUGCR23488 LEOPARD : fast/block/float/float-avoidance.html = IMAGE
 BUGCR23488 MAC : fast/canvas/canvas-incremental-repaint-2.html = IMAGE
 BUGCR23488 LEOPARD : fast/css/shadow-multiple.html = IMAGE
-BUGCR23488 MAC : fast/forms/search-vertical-alignment.html = IMAGE
 BUGCR23488 LEOPARD : fast/frames/content-opacity-1.html = IMAGE
 BUGCR23488 LEOPARD : fast/frames/content-opacity-2.html = IMAGE
 BUGCR23488 MAC : fast/layers/add-layer-with-nested-stacking.html = IMAGE
@@ -1393,7 +1392,7 @@ BUGCR23473 MAC : fast/repaint/reflection-redraw.html = IMAGE
 BUGCR23473 MAC : fast/repaint/reflection-repaint-test.html = IMAGE
 BUGCR23473 MAC : fast/repaint/rel-positioned-inline-with-overflow.html = IMAGE
 BUGCR23473 MAC : fast/repaint/repaint-resized-overflow.html = IMAGE
-BUGCR23473 MAC : fast/repaint/search-field-cancel.html = IMAGE
+//BUGCR23473 MAC : fast/repaint/search-field-cancel.html = IMAGE
 BUGCR23473 MAC : fast/repaint/selected-replaced.html = IMAGE
 BUGCR23473 MAC : fast/repaint/selection-after-delete.html = IMAGE
 BUGCR23473 MAC : fast/repaint/selection-clear.html = IMAGE
@@ -1488,12 +1487,6 @@ BUGCR27486 WIN LINUX : fast/forms/slider-zoomed.html = TEXT
 // Mac flaky failures.
 BUGCR10472 MAC DEBUG : svg/css/glyph-orientation-rounding-test.xhtml = FAIL PASS
 
-// <input type="search">; various failures, some tests may simply need new
-// baselines, others have more problems.
-BUGCR10473 LINUX : fast/forms/placeholder-set-value.html = FAIL
-BUGCR10473 LINUX : fast/forms/search-display-none-cancel-button.html = FAIL
-BUGCR10473 LINUX : fast/replaced/width100percent-searchfield.html = FAIL
-
 // This test isn't just slow -- sometimes it times out indefinitely.
 BUGCR27569 LINUX MAC WIN : http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html = TIMEOUT PASS CRASH
 
@@ -1964,10 +1957,6 @@ BUGUKAI WIN MAC SKIP : fast/text/international/bold-bengali.html = FAIL
 // They should be moved to the JavaScriptCore test suite.
 BUGCR42875 WONTFIX SKIP : sputnik = TEXT
 
-// WebKit roll 58626:58719
-BUGCR43963 WIN : fast/forms/searchfield-heights.html = IMAGE
-BUGCR43963 LINUX : fast/forms/searchfield-heights.html = IMAGE+TEXT TEXT
-
 BUGWK38705 : http/tests/security/sandbox-inherit-to-initial-document-2.html = TEXT
 
 // WebKit roll 58791:58807
@@ -2601,9 +2590,6 @@ BUG_YUTAK LEOPARD : fast/images/imagemap-polygon-focus-ring.html = IMAGE
 BUGCR62433 MAC LINUX : fast/backgrounds/animated-gif-as-background.html = IMAGE
 BUGCR62433 MAC LINUX : fast/images/gif-loop-count.html = IMAGE
 
-// Similar to the above, input-search related failures
-BUG_DRT MAC : fast/css/input-search-padding.html = IMAGE
-
 // Background color is wrong.
 BUG_DRT MAC : fast/backgrounds/solid-color-context-restore.html = IMAGE
 BUG_DRT MAC : fast/reflections/inline-crash.html = IMAGE
@@ -2958,7 +2944,6 @@ BUGWK54322 SNOWLEOPARD : fast/forms/file-input-direction.html = IMAGE+TEXT
 BUGWK54322 SNOWLEOPARD : fast/forms/input-appearance-bkcolor.html = IMAGE
 BUGWK54322 SNOWLEOPARD : fast/forms/input-file-re-render.html = IMAGE
 BUGWK54322 SNOWLEOPARD : fast/forms/preserveFormDuringResidualStyle.html = IMAGE
-BUGWK54322 SNOWLEOPARD : fast/forms/search-transformed.html = IMAGE
 BUGWK54322 SNOWLEOPARD : fast/images/favicon-as-image.html = IMAGE+TEXT
 //BUGWK54322 SNOWLEOPARD : fast/inline/inline-box-background-long-image.html = IMAGE
 BUGWK54322 SNOWLEOPARD : fast/media/mq-transform-02.html = IMAGE+TEXT
@@ -3231,7 +3216,6 @@ BUGCR78998 DEBUG : fast/frames/frame-element-name.html = TEXT PASS
 // Windows 7 failures that need triaging and probably mostly just need
 // new baselines.
 BUGWK58193 WIN7 : fast/css/first-letter-first-line-hover.html = IMAGE+TEXT
-BUGWK58193 WIN7 : fast/forms/search-styled.html = IMAGE+TEXT
 BUGWK58193 WIN7 : fast/text/backslash-to-yen-sign-euc.html = IMAGE+TEXT
 BUGWK58193 WIN7 : fast/text/backslash-to-yen-sign.html = IMAGE+TEXT
 BUGWK58193 WIN7 : fast/text/international/bidi-mirror-he-ar.html = IMAGE+TEXT
@@ -3313,7 +3297,6 @@ BUGWK58193 WIN7 : svg/custom/circular-marker-reference-3.svg = TEXT
 BUGWK58193 WIN7 : svg/custom/circular-marker-reference-4.svg = TEXT
 BUGWK58193 WIN7 : http/tests/local/fileapi/send-sliced-dragged-file.html = TIMEOUT PASS TEXT
 
-BUGWK58193 VISTA : fast/forms/search-styled.html = IMAGE+TEXT
 BUGWK58193 VISTA : fast/text/backslash-to-yen-sign-euc.html = IMAGE+TEXT
 BUGWK58193 VISTA : fast/text/international/khmer-selection.html = IMAGE+TEXT
 BUGWK58193 VISTA : svg/W3C-I18N/text-dirLTR-ubOverride.svg = IMAGE+TEXT
@@ -3766,6 +3749,37 @@ BUGWK60931 DEBUG :  http/tests/security/aboutBlank/window-open-self-about-blank.
 BUGWK60931 DEBUG :  http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html = CRASH
 BUGWK60931 DEBUG :  http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-window-open.html = CRASH
 
+// Needs rebaseline.
+BUGWK61415 : fast/css/input-search-padding.html = FAIL
+BUGWK61415 : fast/css/pseudo-cache-stale.html = FAIL
+BUGWK61415 : fast/css/text-input-with-webkit-border-radius.html = FAIL
+BUGWK61415 : fast/forms/box-shadow-override.html = FAIL
+BUGWK61415 : fast/forms/control-restrict-line-height.html = FAIL
+BUGWK61415 : fast/forms/input-appearance-height.html = FAIL
+BUGWK61415 : fast/forms/input-appearance-spinbutton-disabled-readonly.html = FAIL
+BUGWK61415 : fast/forms/input-appearance-spinbutton-layer.html = FAIL
+BUGWK61415 : fast/forms/input-appearance-spinbutton-visibility.html = FAIL
+BUGWK61415 : fast/forms/placeholder-position.html = FAIL
+BUGWK61415 : fast/forms/placeholder-pseudo-style.html = FAIL
+BUGWK61415 : fast/forms/placeholder-set-value.html = FAIL
+BUGWK61415 : fast/forms/search-cancel-button-style-sharing.html = FAIL
+BUGWK61415 : fast/forms/search-display-none-cancel-button.html = FAIL
+BUGWK61415 : fast/forms/search-placeholder-value-changed.html = FAIL
+BUGWK61415 : fast/forms/search-rtl.html = FAIL
+BUGWK61415 : fast/forms/search-styled.html = FAIL
+BUGWK61415 : fast/forms/search-transformed.html = FAIL
+BUGWK61415 : fast/forms/search-vertical-alignment.html = FAIL
+BUGWK61415 : fast/forms/search-zoomed.html = FAIL
+BUGWK61415 : fast/forms/searchfield-heights.html = FAIL
+// Do not update an image for search-field-cancel.html.
+BUGWK61415 : fast/repaint/search-field-cancel.html = FAIL
+BUGWK61415 : fast/replaced/width100percent-searchfield.html = FAIL
+BUGWK61415 WIN MAC : fast/speech/input-appearance-numberandspeech.html = FAIL
+BUGWK61415 WIN MAC : fast/speech/input-appearance-speechbutton.html = FAIL
+BUGWK61415 : fast/table/colspanMinWidth-vertical.html = FAIL
+BUGWK61415 : platform/mac/fast/forms/input-appearance-spinbutton-up.html = FAIL
+BUGWK61415 : platform/mac/fast/forms/input-appearance-spinbutton.html = FAIL
+
 // Flaky since added by r86478
 BUGCR82881 : http/tests/appcache/interrupted-update.html = PASS TEXT
 
index 8a736fe..6f82aca 100644 (file)
Binary files a/LayoutTests/platform/mac/fast/css/input-search-padding-expected.png and b/LayoutTests/platform/mac/fast/css/input-search-padding-expected.png differ
index 127e782..c7212aa 100644 (file)
@@ -4,25 +4,27 @@ layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
       RenderTextControl {INPUT} at (2,2) size 429x82 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,17) size 423x47
-          RenderBlock {DIV} at (0,26) size 10x13
-          RenderBlock {DIV} at (407,26) size 16x13
-      RenderBR {BR} at (433,86) size 0x0
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 423x47
+          RenderBlock {DIV} at (0,17) size 10x13
+          RenderBlock {DIV} at (10,0) size 397x47
+          RenderBlock {DIV} at (407,17) size 16x13
+      RenderBR {BR} at (433,44) size 0x0
       RenderTextControl {INPUT} at (2,88) size 429x82 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-      RenderBR {BR} at (433,172) size 0x0
+      RenderBR {BR} at (433,130) size 0x0
       RenderTextControl {INPUT} at (2,172) size 224x25 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (6,1) size 212x23
-          RenderBlock {DIV} at (0,6) size 10x13
-          RenderBlock {DIV} at (196,6) size 16x13
-layer at (23,27) size 397x47 scrollWidth 410
-  RenderBlock {DIV} at (10,0) size 397x47
+        RenderDeprecatedFlexibleBox {DIV} at (6,1) size 212x23
+          RenderBlock {DIV} at (0,5) size 10x13
+          RenderBlock {DIV} at (10,0) size 186x23
+          RenderBlock {DIV} at (196,5) size 16x13
+layer at (23,13) size 397x47 scrollWidth 410
+  RenderBlock {DIV} at (0,0) size 397x47
     RenderText {#text} at (1,0) size 408x47
       text run at (1,0) width 408: "value jgq not clipped"
-layer at (13,113) size 423x47
-  RenderBlock {DIV} at (3,17) size 423x47
+layer at (13,99) size 423x47
+  RenderBlock {DIV} at (3,3) size 423x47
     RenderText {#text} at (1,0) size 408x47
       text run at (1,0) width 408: "value jgq not clipped"
 layer at (26,181) size 186x23
-  RenderBlock {DIV} at (10,0) size 186x23
+  RenderBlock {DIV} at (0,0) size 186x23
     RenderText {#text} at (1,0) size 127x23
       text run at (1,0) width 127: "Sample Input"
index 3ba9697..3e5a719 100644 (file)
@@ -14,10 +14,11 @@ layer at (0,0) size 800x600
           text run at (0,0) width 535: "This sentence should be extra-extra-large."
       RenderBlock (anonymous) at (0,74) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
         RenderText {#text} at (0,0) size 0x0
 layer at (21,87) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
index f326cc3..1df2f25 100644 (file)
@@ -11,21 +11,24 @@ layer at (0,0) size 800x600
           text run at (0,0) width 257: "You should not see any red on this page."
       RenderBlock {DIV} at (0,68) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,91) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 17x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 17x11
+            RenderBlock {DIV} at (17,0) size 89x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,114) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 22x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 22x11
+            RenderBlock {DIV} at (22,0) size 84x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,137) size 784x32
         RenderBlock {INPUT} at (2,12) size 12x13
@@ -71,12 +74,12 @@ layer at (0,0) size 800x600
               text run at (0,0) width 64: "Button"
         RenderText {#text} at (0,0) size 0x0
 layer at (21,81) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 36x13
       text run at (1,0) width 36: "Search"
 layer at (30,104) size 89x13
-  RenderBlock {DIV} at (17,0) size 89x13
+  RenderBlock {DIV} at (0,0) size 89x13
 layer at (35,127) size 84x13
-  RenderBlock {DIV} at (22,0) size 84x13
+  RenderBlock {DIV} at (0,0) size 84x13
 layer at (107,153) size 15x15
   RenderBlock (relative positioned) {DIV} at (0,0) size 15x15
index 482c370..af1c0ec 100644 (file)
@@ -21,11 +21,12 @@ layer at (0,0) size 800x600
         text run at (298,41) width 4: " "
       RenderBR {BR} at (0,0) size 0x0
       RenderTextControl {INPUT} at (2,64) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 98x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderText {#text} at (0,0) size 0x0
 layer at (21,75) size 98x13 scrollWidth 280
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 278x13
       text run at (1,0) width 278: "This text should be centered vertically in the button"
index 7974dd6..57d1c6a 100644 (file)
@@ -89,9 +89,10 @@ layer at (0,0) size 800x600
         RenderText {#text} at (0,237) size 44x18
           text run at (0,237) width 44: "search "
         RenderTextControl {INPUT} at (46,237) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
 layer at (49,31) size 119x13
   RenderBlock {DIV} at (3,3) size 119x13
@@ -102,6 +103,6 @@ layer at (62,220) size 119x13
 layer at (77,243) size 119x13
   RenderBlock {DIV} at (3,3) size 119x13
 layer at (65,266) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
 layer at (106,152) size 15x15
   RenderBlock (relative positioned) {DIV} at (0,0) size 15x15
index a2d91de..c4519c5 100644 (file)
@@ -9,33 +9,39 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,34) size 784x33
         RenderInline {LABEL} at (0,0) size 306x18
           RenderTextControl {INPUT} at (2,2) size 218x29 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderDeprecatedFlexibleBox {DIV} at (3,3) size 212x23
+              RenderBlock {DIV} at (0,0) size 193x23
           RenderText {#text} at (222,10) size 84x18
             text run at (222,10) width 84: " Normal state"
       RenderBlock {DIV} at (0,67) size 784x33
         RenderInline {LABEL} at (0,0) size 314x18
           RenderTextControl {INPUT} at (2,2) size 218x29 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderDeprecatedFlexibleBox {DIV} at (3,3) size 212x23
+              RenderBlock {DIV} at (0,0) size 193x23
           RenderText {#text} at (222,10) size 92x18
             text run at (222,10) width 92: " Disabled state"
       RenderBlock {DIV} at (0,100) size 784x33
         RenderInline {LABEL} at (0,0) size 324x18
           RenderTextControl {INPUT} at (2,2) size 218x29 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderDeprecatedFlexibleBox {DIV} at (3,3) size 212x23
+              RenderBlock {DIV} at (0,0) size 193x23
           RenderText {#text} at (222,10) size 102x18
             text run at (222,10) width 102: " Read-only state"
 layer at (13,47) size 193x23
-  RenderBlock {DIV} at (3,3) size 193x23
+  RenderBlock {DIV} at (0,0) size 193x23
     RenderText {#text} at (1,0) size 13x23
       text run at (1,0) width 13: "0"
 layer at (13,80) size 193x23
-  RenderBlock {DIV} at (3,3) size 193x23 [color=#545454]
+  RenderBlock {DIV} at (0,0) size 193x23 [color=#545454]
     RenderText {#text} at (1,0) size 13x23
       text run at (1,0) width 13: "0"
 layer at (13,113) size 193x23
-  RenderBlock {DIV} at (3,3) size 193x23
+  RenderBlock {DIV} at (0,0) size 193x23
     RenderText {#text} at (1,0) size 13x23
       text run at (1,0) width 13: "0"
 layer at (207,46) size 19x25
-  RenderBlock (relative positioned) {DIV} at (197,2) size 19x25
+  RenderBlock (relative positioned) {DIV} at (194,-1) size 19x25
 layer at (207,79) size 19x25
-  RenderBlock (relative positioned) {DIV} at (197,2) size 19x25
+  RenderBlock (relative positioned) {DIV} at (194,-1) size 19x25
 layer at (207,112) size 19x25
-  RenderBlock (relative positioned) {DIV} at (197,2) size 19x25
+  RenderBlock (relative positioned) {DIV} at (194,-1) size 19x25
index b36e5bd..27fcdcf 100644 (file)
@@ -18,48 +18,64 @@ layer at (0,0) size 800x600
                     text run at (100,0) width 4: " "
                   RenderBR {BR} at (104,14) size 0x0
                   RenderTextControl {INPUT} at (0,19) size 100x16 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 94x10
+                      RenderBlock {DIV} at (0,0) size 81x10
                 RenderBlock {DIV} at (1,36) size 178x36
                   RenderTextControl {INPUT} at (0,2) size 102x17 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (102,0) size 4x18
                     text run at (102,0) width 4: " "
                   RenderBR {BR} at (106,14) size 0x0
                   RenderTextControl {INPUT} at (0,19) size 102x17 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 96x11
+                      RenderBlock {DIV} at (0,0) size 83x11
                 RenderBlock {DIV} at (1,72) size 178x37
                   RenderTextControl {INPUT} at (0,1) size 104x18 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (104,0) size 4x18
                     text run at (104,0) width 4: " "
                   RenderBR {BR} at (108,14) size 0x0
                   RenderTextControl {INPUT} at (0,19) size 104x18 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 98x12
+                      RenderBlock {DIV} at (0,0) size 85x12
                 RenderBlock {DIV} at (1,109) size 178x46
                   RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (129,2) size 4x18
                     text run at (129,2) width 4: " "
                   RenderBR {BR} at (133,16) size 0x0
                   RenderTextControl {INPUT} at (2,25) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+                      RenderBlock {DIV} at (0,0) size 106x13
                 RenderBlock {DIV} at (1,155) size 178x50
                   RenderTextControl {INPUT} at (2,2) size 127x21 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (131,3) size 4x18
                     text run at (131,3) width 4: " "
                   RenderBR {BR} at (135,17) size 0x0
                   RenderTextControl {INPUT} at (2,27) size 127x21 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 121x15
+                      RenderBlock {DIV} at (0,0) size 108x15
                 RenderBlock {DIV} at (1,205) size 178x52
                   RenderTextControl {INPUT} at (2,2) size 148x22 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (152,4) size 4x18
                     text run at (152,4) width 4: " "
                   RenderBR {BR} at (156,18) size 0x0
                   RenderTextControl {INPUT} at (2,28) size 148x22 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 142x16
+                      RenderBlock {DIV} at (0,0) size 127x16
                 RenderBlock {DIV} at (1,257) size 178x54
                   RenderTextControl {INPUT} at (2,2) size 150x23 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (154,5) size 4x18
                     text run at (154,5) width 4: " "
                   RenderBR {BR} at (158,19) size 0x0
                   RenderTextControl {INPUT} at (2,29) size 150x23 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 144x17
+                      RenderBlock {DIV} at (0,0) size 129x17
                 RenderBlock {DIV} at (1,311) size 178x56
                   RenderTextControl {INPUT} at (2,2) size 170x24 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (174,6) size 4x18
                     text run at (174,6) width 4: " "
                   RenderBR {BR} at (178,20) size 0x0
                   RenderTextControl {INPUT} at (2,30) size 170x24 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 164x18
+                      RenderBlock {DIV} at (0,0) size 149x18
               RenderTableCell {TD} at (184,2) size 253x524 [r=0 c=1 rs=1 cs=1]
                 RenderBlock {DIV} at (1,1) size 251x56
                   RenderTextControl {INPUT} at (2,2) size 172x24 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
@@ -67,141 +83,157 @@ layer at (0,0) size 800x600
                     text run at (176,6) width 4: " "
                   RenderBR {BR} at (180,20) size 0x0
                   RenderTextControl {INPUT} at (2,30) size 172x24 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 166x18
+                      RenderBlock {DIV} at (0,0) size 151x18
                 RenderBlock {DIV} at (1,57) size 251x60
                   RenderTextControl {INPUT} at (2,2) size 174x26 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (178,7) size 4x18
                     text run at (178,7) width 4: " "
                   RenderBR {BR} at (182,21) size 0x0
                   RenderTextControl {INPUT} at (2,32) size 174x26 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 168x20
+                      RenderBlock {DIV} at (0,0) size 153x20
                 RenderBlock {DIV} at (1,117) size 251x62
                   RenderTextControl {INPUT} at (2,2) size 195x27 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (199,8) size 4x18
                     text run at (199,8) width 4: " "
                   RenderBR {BR} at (203,22) size 0x0
                   RenderTextControl {INPUT} at (2,33) size 195x27 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 189x21
+                      RenderBlock {DIV} at (0,0) size 170x21
                 RenderBlock {DIV} at (1,179) size 251x64
                   RenderTextControl {INPUT} at (2,2) size 197x28 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (201,9) size 4x18
                     text run at (201,9) width 4: " "
                   RenderBR {BR} at (205,23) size 0x0
                   RenderTextControl {INPUT} at (2,34) size 197x28 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 191x22
+                      RenderBlock {DIV} at (0,0) size 172x22
                 RenderBlock {DIV} at (1,243) size 251x66
                   RenderTextControl {INPUT} at (2,2) size 218x29 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (222,10) size 4x18
                     text run at (222,10) width 4: " "
                   RenderBR {BR} at (226,24) size 0x0
                   RenderTextControl {INPUT} at (2,35) size 218x29 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 212x23
+                      RenderBlock {DIV} at (0,0) size 193x23
                 RenderBlock {DIV} at (1,309) size 251x68
                   RenderTextControl {INPUT} at (2,2) size 220x30 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (224,11) size 4x18
                     text run at (224,11) width 4: " "
                   RenderBR {BR} at (228,25) size 0x0
                   RenderTextControl {INPUT} at (2,36) size 220x30 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 214x24
+                      RenderBlock {DIV} at (0,0) size 195x24
                 RenderBlock {DIV} at (1,377) size 251x72
                   RenderTextControl {INPUT} at (2,2) size 241x32 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (245,12) size 4x18
                     text run at (245,12) width 4: " "
                   RenderBR {BR} at (249,26) size 0x0
                   RenderTextControl {INPUT} at (2,38) size 241x32 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 235x26
+                      RenderBlock {DIV} at (0,0) size 216x26
                 RenderBlock {DIV} at (1,449) size 251x74
                   RenderTextControl {INPUT} at (2,2) size 243x33 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                   RenderText {#text} at (247,13) size 4x18
                     text run at (247,13) width 4: " "
                   RenderBR {BR} at (251,27) size 0x0
                   RenderTextControl {INPUT} at (2,39) size 243x33 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 237x27
+                      RenderBlock {DIV} at (0,0) size 218x27
 layer at (14,129) size 94x10
   RenderBlock {DIV} at (3,3) size 94x10
 layer at (14,145) size 81x10
-  RenderBlock {DIV} at (3,3) size 81x10
+  RenderBlock {DIV} at (0,0) size 81x10
 layer at (14,163) size 96x11
   RenderBlock {DIV} at (3,3) size 96x11
 layer at (14,180) size 83x11
-  RenderBlock {DIV} at (3,3) size 83x11
+  RenderBlock {DIV} at (0,0) size 83x11
 layer at (14,198) size 98x12
   RenderBlock {DIV} at (3,3) size 98x12
 layer at (14,216) size 85x12
-  RenderBlock {DIV} at (3,3) size 85x12
+  RenderBlock {DIV} at (0,0) size 85x12
 layer at (16,236) size 119x13
   RenderBlock {DIV} at (3,3) size 119x13
 layer at (16,259) size 106x13
-  RenderBlock {DIV} at (3,3) size 106x13
+  RenderBlock {DIV} at (0,0) size 106x13
 layer at (16,282) size 121x15
   RenderBlock {DIV} at (3,3) size 121x15
 layer at (16,307) size 108x15
-  RenderBlock {DIV} at (3,3) size 108x15
+  RenderBlock {DIV} at (0,0) size 108x15
 layer at (16,332) size 142x16
   RenderBlock {DIV} at (3,3) size 142x16
 layer at (16,358) size 127x16
-  RenderBlock {DIV} at (3,3) size 127x16
+  RenderBlock {DIV} at (0,0) size 127x16
 layer at (16,384) size 144x17
   RenderBlock {DIV} at (3,3) size 144x17
 layer at (16,411) size 129x17
-  RenderBlock {DIV} at (3,3) size 129x17
+  RenderBlock {DIV} at (0,0) size 129x17
 layer at (16,438) size 164x18
   RenderBlock {DIV} at (3,3) size 164x18
 layer at (16,466) size 149x18
-  RenderBlock {DIV} at (3,3) size 149x18
+  RenderBlock {DIV} at (0,0) size 149x18
 layer at (198,50) size 166x18
   RenderBlock {DIV} at (3,3) size 166x18
 layer at (198,78) size 151x18
-  RenderBlock {DIV} at (3,3) size 151x18
+  RenderBlock {DIV} at (0,0) size 151x18
 layer at (198,106) size 168x20
   RenderBlock {DIV} at (3,3) size 168x20
 layer at (198,136) size 153x20
-  RenderBlock {DIV} at (3,3) size 153x20
+  RenderBlock {DIV} at (0,0) size 153x20
 layer at (198,166) size 189x21
   RenderBlock {DIV} at (3,3) size 189x21
 layer at (198,197) size 170x21
-  RenderBlock {DIV} at (3,3) size 170x21
+  RenderBlock {DIV} at (0,0) size 170x21
 layer at (198,228) size 191x22
   RenderBlock {DIV} at (3,3) size 191x22
 layer at (198,260) size 172x22
-  RenderBlock {DIV} at (3,3) size 172x22
+  RenderBlock {DIV} at (0,0) size 172x22
 layer at (198,292) size 212x23
   RenderBlock {DIV} at (3,3) size 212x23
 layer at (198,325) size 193x23
-  RenderBlock {DIV} at (3,3) size 193x23
+  RenderBlock {DIV} at (0,0) size 193x23
 layer at (198,358) size 214x24
   RenderBlock {DIV} at (3,3) size 214x24
 layer at (198,392) size 195x24
-  RenderBlock {DIV} at (3,3) size 195x24
+  RenderBlock {DIV} at (0,0) size 195x24
 layer at (198,426) size 235x26
   RenderBlock {DIV} at (3,3) size 235x26
 layer at (198,462) size 216x26
-  RenderBlock {DIV} at (3,3) size 216x26
+  RenderBlock {DIV} at (0,0) size 216x26
 layer at (198,498) size 237x27
   RenderBlock {DIV} at (3,3) size 237x27
 layer at (198,535) size 218x27
-  RenderBlock {DIV} at (3,3) size 218x27
+  RenderBlock {DIV} at (0,0) size 218x27
 layer at (96,144) size 13x12
-  RenderBlock (relative positioned) {DIV} at (85,2) size 13x12
+  RenderBlock (relative positioned) {DIV} at (82,-1) size 13x12
 layer at (98,179) size 13x13
-  RenderBlock (relative positioned) {DIV} at (87,2) size 13x13
+  RenderBlock (relative positioned) {DIV} at (84,-1) size 13x13
 layer at (100,215) size 13x14
-  RenderBlock (relative positioned) {DIV} at (89,2) size 13x14
+  RenderBlock (relative positioned) {DIV} at (86,-1) size 13x14
 layer at (123,258) size 13x15
-  RenderBlock (relative positioned) {DIV} at (110,2) size 13x15
+  RenderBlock (relative positioned) {DIV} at (107,-1) size 13x15
 layer at (125,306) size 13x17
-  RenderBlock (relative positioned) {DIV} at (112,2) size 13x17
+  RenderBlock (relative positioned) {DIV} at (109,-1) size 13x17
 layer at (144,357) size 15x18
-  RenderBlock (relative positioned) {DIV} at (131,2) size 15x18
+  RenderBlock (relative positioned) {DIV} at (128,-1) size 15x18
 layer at (146,410) size 15x19
-  RenderBlock (relative positioned) {DIV} at (133,2) size 15x19
+  RenderBlock (relative positioned) {DIV} at (130,-1) size 15x19
 layer at (166,465) size 15x20
-  RenderBlock (relative positioned) {DIV} at (153,2) size 15x20
+  RenderBlock (relative positioned) {DIV} at (150,-1) size 15x20
 layer at (350,77) size 15x20
-  RenderBlock (relative positioned) {DIV} at (155,2) size 15x20
+  RenderBlock (relative positioned) {DIV} at (152,-1) size 15x20
 layer at (352,135) size 15x22
-  RenderBlock (relative positioned) {DIV} at (157,2) size 15x22
+  RenderBlock (relative positioned) {DIV} at (154,-1) size 15x22
 layer at (369,196) size 19x23
-  RenderBlock (relative positioned) {DIV} at (174,2) size 19x23
+  RenderBlock (relative positioned) {DIV} at (171,-1) size 19x23
 layer at (371,259) size 19x24
-  RenderBlock (relative positioned) {DIV} at (176,2) size 19x24
+  RenderBlock (relative positioned) {DIV} at (173,-1) size 19x24
 layer at (392,324) size 19x25
-  RenderBlock (relative positioned) {DIV} at (197,2) size 19x25
+  RenderBlock (relative positioned) {DIV} at (194,-1) size 19x25
 layer at (394,391) size 19x26
-  RenderBlock (relative positioned) {DIV} at (199,2) size 19x26
+  RenderBlock (relative positioned) {DIV} at (196,-1) size 19x26
 layer at (415,461) size 19x28
-  RenderBlock (relative positioned) {DIV} at (220,2) size 19x28
+  RenderBlock (relative positioned) {DIV} at (217,-1) size 19x28
 layer at (417,534) size 19x29
-  RenderBlock (relative positioned) {DIV} at (222,2) size 19x29
+  RenderBlock (relative positioned) {DIV} at (219,-1) size 19x29
index 855c328..3502f74 100644 (file)
@@ -5,18 +5,22 @@ layer at (0,0) size 800x62
     RenderBody {BODY} at (8,8) size 784x46
       RenderBR {BR} at (129,2) size 0x18
       RenderTextControl {INPUT} at (2,25) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,0) size 106x13
       RenderText {#text} at (0,0) size 0x0
 layer at (13,36) size 106x13
-  RenderBlock {DIV} at (3,3) size 106x13
+  RenderBlock {DIV} at (0,0) size 106x13
     RenderText {#text} at (1,0) size 14x13
       text run at (1,0) width 14: "10"
 layer at (10,10) size 125x19
   RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+    RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+      RenderBlock {DIV} at (0,0) size 106x13
 layer at (13,13) size 106x13
-  RenderBlock {DIV} at (3,3) size 106x13
+  RenderBlock {DIV} at (0,0) size 106x13
     RenderText {#text} at (1,0) size 14x13
       text run at (1,0) width 14: "10"
 layer at (120,12) size 13x15
-  RenderBlock (relative positioned) {DIV} at (110,2) size 13x15
+  RenderBlock (relative positioned) {DIV} at (107,-1) size 13x15
 layer at (120,35) size 13x15
-  RenderBlock (relative positioned) {DIV} at (110,2) size 13x15
+  RenderBlock (relative positioned) {DIV} at (107,-1) size 13x15
index 730a214..2c7df99 100644 (file)
@@ -9,12 +9,14 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,34) size 784x0
       RenderBlock (anonymous) at (0,34) size 784x31
         RenderTextControl {INPUT} at (2,2) size 195x27 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 189x21
+            RenderBlock {DIV} at (0,0) size 170x21
         RenderText {#text} at (0,0) size 0x0
         RenderText {#text} at (0,0) size 0x0
 layer at (13,47) size 170x21
-  RenderBlock {DIV} at (3,3) size 170x21
+  RenderBlock {DIV} at (0,0) size 170x21
     RenderText {#text} at (1,0) size 12x21
       text run at (1,0) width 12: "1"
 layer at (184,46) size 19x23
-  RenderBlock (relative positioned) {DIV} at (174,2) size 19x23
-caret: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
+  RenderBlock (relative positioned) {DIV} at (171,-1) size 19x23
+caret: position 1 of child 0 {#text} of child 0 {DIV} of child 0 {DIV} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
index 8167a7f..481f820 100644 (file)
@@ -4,13 +4,17 @@ layer at (0,0) size 800x39
   RenderBlock {HTML} at (0,0) size 800x39
     RenderBody {BODY} at (8,8) size 784x23
       RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,0) size 106x13
       RenderText {#text} at (129,2) size 4x18
         text run at (129,2) width 4: " "
       RenderTextControl {INPUT} at (135,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,0) size 106x13
       RenderText {#text} at (0,0) size 0x0
 layer at (13,13) size 106x13
-  RenderBlock {DIV} at (3,3) size 106x13
+  RenderBlock {DIV} at (0,0) size 106x13
 layer at (146,13) size 106x13
-  RenderBlock {DIV} at (3,3) size 106x13
+  RenderBlock {DIV} at (0,0) size 106x13
 layer at (120,12) size 13x15
-  RenderBlock (relative positioned) {DIV} at (110,2) size 13x15
+  RenderBlock (relative positioned) {DIV} at (107,-1) size 13x15
index 4e043e8..f1ce031 100644 (file)
@@ -4,42 +4,45 @@ layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
       RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 98x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderBR {BR} at (129,16) size 0x0
       RenderTextControl {INPUT} at (2,25) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
       RenderBR {BR} at (129,39) size 0x0
       RenderTextControl {INPUT} at (2,48) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 98x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderBR {BR} at (129,62) size 0x0
       RenderTextControl {INPUT} at (2,71) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 22x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 22x11
+          RenderBlock {DIV} at (22,0) size 84x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderBR {BR} at (129,85) size 0x0
       RenderBR {BR} at (165,128) size 0x0
       RenderTextControl {INPUT} at (2,130) size 125x33 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-      RenderBR {BR} at (129,165) size 0x0
+      RenderBR {BR} at (129,144) size 0x0
       RenderBR {BR} at (165,214) size 0x0
       RenderTextControl {INPUT} at (5,219) size 176x30 [bgcolor=#FFFFFF] [border: (5px solid #000000)]
       RenderBR {BR} at (186,240) size 0x0
-      RenderBR {BR} at (129,277) size 0x0
+      RenderBR {BR} at (129,284) size 0x0
 layer at (21,13) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
 layer at (13,36) size 119x13
   RenderBlock {DIV} at (3,3) size 119x13
 layer at (21,59) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
 layer at (35,82) size 84x13
-  RenderBlock {DIV} at (22,0) size 84x13
+  RenderBlock {DIV} at (0,0) size 84x13
 layer at (10,102) size 161x32 clip at (11,103) size 159x30
   RenderTextControl {TEXTAREA} at (2,94) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     RenderBlock {DIV} at (3,3) size 155x13
-layer at (13,148) size 119x13
-  RenderBlock {DIV} at (3,10) size 119x13
+layer at (13,141) size 119x13
+  RenderBlock {DIV} at (3,3) size 119x13
 layer at (10,175) size 161x45 clip at (11,176) size 159x43
   RenderTextControl {TEXTAREA} at (2,167) size 161x45 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     RenderBlock {DIV} at (3,16) size 155x13
@@ -47,5 +50,5 @@ layer at (19,233) size 164x18
   RenderBlock {DIV} at (6,6) size 164x18
 layer at (10,264) size 125x33
   RenderTextControl {INPUT} at (2,256) size 125x33 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-layer at (13,274) size 119x13
-  RenderBlock {DIV} at (3,10) size 119x13
+layer at (13,281) size 119x13
+  RenderBlock {DIV} at (3,17) size 119x13
index 4c1819b..a1e5fab 100644 (file)
@@ -10,9 +10,10 @@ layer at (0,0) size 800x600
       RenderText {#text} at (129,20) size 4x18
         text run at (129,20) width 4: " "
       RenderTextControl {INPUT} at (135,20) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 98x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderText {#text} at (262,20) size 4x18
         text run at (262,20) width 4: " "
       RenderTextControl {INPUT} at (268,20) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
@@ -29,7 +30,7 @@ layer at (0,0) size 800x600
 layer at (13,31) size 119x13
   RenderBlock {DIV} at (3,3) size 119x13
 layer at (154,31) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
 layer at (279,31) size 119x13
   RenderBlock {DIV} at (3,3) size 119x13
 layer at (412,31) size 119x13
index b7fee38..7501217 100644 (file)
@@ -14,11 +14,12 @@ layer at (0,0) size 800x600
           text run at (0,18) width 27: "text."
       RenderBlock (anonymous) at (0,52) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
 layer at (21,65) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 48x13
       text run at (1,0) width 48: "New text"
index 0cce39f..30ac84d 100644 (file)
@@ -8,19 +8,21 @@ layer at (0,0) size 800x600
           text run at (0,0) width 385: "Only the second search field should have a cancel button (\x{D7})."
       RenderBlock (anonymous) at (0,34) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (129,2) size 4x18
           text run at (129,2) width 4: " "
         RenderTextControl {INPUT} at (135,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
 layer at (21,47) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
 layer at (154,47) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 43x13
       text run at (1,0) width 43: "this one"
index 3c2934d..c586599 100644 (file)
@@ -7,10 +7,11 @@ layer at (0,0) size 800x600
         text run at (0,0) width 499: "This tests that the display:none style will work on a search field's cancel button."
       RenderBR {BR} at (499,14) size 0x0
       RenderTextControl {INPUT} at (2,20) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 111x13
       RenderText {#text} at (0,0) size 0x0
 layer at (21,31) size 111x13
-  RenderBlock {DIV} at (8,0) size 111x13
+  RenderBlock {DIV} at (0,0) size 111x13
     RenderText {#text} at (1,0) size 20x13
       text run at (1,0) width 20: "test"
index ddfda65..3bcea06 100644 (file)
@@ -4,10 +4,11 @@ layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
       RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 98x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderText {#text} at (0,0) size 0x0
       RenderText {#text} at (0,0) size 0x0
 layer at (21,13) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
index 6993949..d8dc7bb 100644 (file)
@@ -17,29 +17,32 @@ layer at (0,0) size 800x600
           text run at (752,0) width 4: "."
       RenderBlock {P} at (0,34) size 784x69
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 22x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 22x11
+            RenderBlock {DIV} at (22,0) size 84x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (129,2) size 4x18
           text run at (129,2) width 4: " "
         RenderBR {BR} at (0,0) size 0x0
         RenderTextControl {INPUT} at (2,25) size 175x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 169x13
-            RenderBlock {DIV} at (0,0) size 22x11
-            RenderBlock {DIV} at (156,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 169x13
+            RenderBlock {DIV} at (0,1) size 22x11
+            RenderBlock {DIV} at (22,0) size 134x13
+            RenderBlock {DIV} at (156,1) size 13x11
         RenderText {#text} at (179,25) size 4x18
           text run at (179,25) width 4: " "
         RenderBR {BR} at (0,0) size 0x0
         RenderTextControl {INPUT} at (2,48) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 22x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 22x11
+            RenderBlock {DIV} at (22,0) size 84x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {P} at (0,119) size 784x18
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
 layer at (35,47) size 84x13 scrollX 52 scrollWidth 136
-  RenderBlock {DIV} at (22,0) size 84x13
+  RenderBlock {DIV} at (0,0) size 84x13
     RenderText {#text} at (-51,0) size 135x13
       text run at (-51,0) width 22 RTL: " \x{5D5}\x{5D6}\x{5D4}\x{5D5}"
       text run at (-29,0) width 19: "she"
@@ -47,7 +50,7 @@ layer at (35,47) size 84x13 scrollX 52 scrollWidth 136
       text run at (33,0) width 14: "he"
       text run at (46,0) width 37 RTL: "\x{5D4}\x{5D5}\x{5D0} \x{5D6}\x{5D4} "
 layer at (35,70) size 134x13 scrollX 2 scrollWidth 136
-  RenderBlock {DIV} at (22,0) size 134x13
+  RenderBlock {DIV} at (0,0) size 134x13
     RenderText {#text} at (-1,0) size 135x13
       text run at (-1,0) width 22 RTL: " \x{5D5}\x{5D6}\x{5D4}\x{5D5}"
       text run at (20,0) width 20: "she"
@@ -55,5 +58,5 @@ layer at (35,70) size 134x13 scrollX 2 scrollWidth 136
       text run at (83,0) width 14: "he"
       text run at (96,0) width 37 RTL: "\x{5D4}\x{5D5}\x{5D0} \x{5D6}\x{5D4} "
 layer at (35,93) size 84x13
-  RenderBlock {DIV} at (22,0) size 84x13
-caret: position 0 of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 9 {INPUT} of child 3 {P} of body
+  RenderBlock {DIV} at (0,0) size 84x13
+caret: position 0 of child 0 {DIV} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 9 {INPUT} of child 3 {P} of body
index 07a972c..80fc816 100644 (file)
@@ -4,9 +4,10 @@ layer at (0,0) size 800x39
   RenderBlock {HTML} at (0,0) size 800x39
     RenderBody {BODY} at (8,8) size 784x23
       RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 22x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 22x11
+          RenderBlock {DIV} at (22,0) size 84x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderText {#text} at (0,0) size 0x0
 layer at (35,13) size 84x13
-  RenderBlock {DIV} at (22,0) size 84x13
+  RenderBlock {DIV} at (0,0) size 84x13
index c5eb3df..ad3f7ae 100644 (file)
Binary files a/LayoutTests/platform/mac/fast/forms/search-vertical-alignment-expected.png and b/LayoutTests/platform/mac/fast/forms/search-vertical-alignment-expected.png differ
index a931744..88420d4 100644 (file)
@@ -12,33 +12,36 @@ layer at (0,0) size 800x600
           text run at (459,18) width 122: "same in both fields."
       RenderBlock {P} at (0,52) size 784x45
         RenderTextControl {INPUT} at (2,0) size 125x45 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,16) size 119x13
-            RenderBlock {DIV} at (0,0) size 17x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x39
+            RenderBlock {DIV} at (0,14) size 17x11
+            RenderBlock {DIV} at (17,13) size 89x13
+            RenderBlock {DIV} at (106,14) size 13x11
         RenderText {#text} at (129,13) size 4x18
           text run at (129,13) width 4: " "
         RenderTextControl {INPUT} at (135,0) size 125x45 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {P} at (0,113) size 784x18
         RenderTextControl {INPUT} at (2,2) size 125x16 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,1) size 119x13
-            RenderBlock {DIV} at (0,0) size 17x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,1) size 119x13
+            RenderBlock {DIV} at (0,1) size 17x11
+            RenderBlock {DIV} at (17,0) size 89x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (129,0) size 4x18
           text run at (129,0) width 4: " "
         RenderTextControl {INPUT} at (135,2) size 125x16 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {P} at (0,147) size 784x18
         RenderTextControl {INPUT} at (2,2) size 125x12 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x6
+          RenderDeprecatedFlexibleBox {DIV} at (3,0) size 119x12
             RenderBlock {DIV} at (0,0) size 17x11
+            RenderBlock {DIV} at (17,3) size 89x6
             RenderBlock {DIV} at (106,0) size 13x11
         RenderText {#text} at (129,0) size 4x18
           text run at (129,0) width 4: " "
         RenderTextControl {INPUT} at (135,2) size 125x12 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
         RenderText {#text} at (0,0) size 0x0
 layer at (30,76) size 89x13
-  RenderBlock {DIV} at (17,0) size 89x13
+  RenderBlock {DIV} at (0,0) size 89x13
     RenderText {#text} at (1,0) size 24x13
       text run at (1,0) width 24: "Text"
 layer at (146,76) size 119x13
@@ -46,15 +49,15 @@ layer at (146,76) size 119x13
     RenderText {#text} at (1,0) size 24x13
       text run at (1,0) width 24: "Text"
 layer at (30,124) size 89x13
-  RenderBlock {DIV} at (17,0) size 89x13
+  RenderBlock {DIV} at (0,0) size 89x13
     RenderText {#text} at (1,0) size 24x13
       text run at (1,0) width 24: "Text"
 layer at (146,124) size 119x13
   RenderBlock {DIV} at (3,1) size 119x13
     RenderText {#text} at (1,0) size 24x13
       text run at (1,0) width 24: "Text"
-layer at (30,160) size 89x13
-  RenderBlock {DIV} at (17,0) size 89x13
+layer at (30,160) size 89x6 scrollHeight 13
+  RenderBlock {DIV} at (0,0) size 89x6
     RenderText {#text} at (1,0) size 24x13
       text run at (1,0) width 24: "Text"
 layer at (146,160) size 119x6 scrollHeight 13
index a2c961f..6989ed4 100644 (file)
@@ -7,31 +7,34 @@ layer at (0,0) size 800x600
         text run at (0,0) width 368: "This tests that aqua-style search fields do not honor height."
       RenderBR {BR} at (368,14) size 0x0
       RenderTextControl {INPUT} at (0,22) size 102x17 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 96x11
-          RenderBlock {DIV} at (0,0) size 8x9
-          RenderBlock {DIV} at (83,0) size 13x9
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 96x11
+          RenderBlock {DIV} at (0,1) size 8x9
+          RenderBlock {DIV} at (8,0) size 75x11
+          RenderBlock {DIV} at (83,1) size 13x9
       RenderText {#text} at (102,20) size 4x18
         text run at (102,20) width 4: " "
       RenderTextControl {INPUT} at (108,20) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 119x13
-          RenderBlock {DIV} at (0,0) size 8x11
-          RenderBlock {DIV} at (106,0) size 13x11
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+          RenderBlock {DIV} at (0,1) size 8x11
+          RenderBlock {DIV} at (8,0) size 98x13
+          RenderBlock {DIV} at (106,1) size 13x11
       RenderText {#text} at (235,20) size 4x18
         text run at (235,20) width 4: " "
       RenderTextControl {INPUT} at (241,18) size 148x22 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderBlock {DIV} at (3,3) size 142x16
-          RenderBlock {DIV} at (0,0) size 10x13
-          RenderBlock {DIV} at (126,0) size 16x13
+        RenderDeprecatedFlexibleBox {DIV} at (3,3) size 142x16
+          RenderBlock {DIV} at (0,1) size 10x13
+          RenderBlock {DIV} at (10,0) size 116x16
+          RenderBlock {DIV} at (126,1) size 16x13
       RenderText {#text} at (0,0) size 0x0
 layer at (19,33) size 75x11
-  RenderBlock {DIV} at (8,0) size 75x11
+  RenderBlock {DIV} at (0,0) size 75x11
     RenderText {#text} at (1,0) size 20x11
       text run at (1,0) width 20: "mini"
 layer at (127,31) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 29x13
       text run at (1,0) width 29: "small"
 layer at (262,29) size 116x16
-  RenderBlock {DIV} at (10,0) size 116x16
+  RenderBlock {DIV} at (0,0) size 116x16
     RenderText {#text} at (1,0) size 45x16
       text run at (1,0) width 45: "regular"
index 806a38a..31ea414 100644 (file)
Binary files a/LayoutTests/platform/mac/fast/repaint/search-field-cancel-expected.png and b/LayoutTests/platform/mac/fast/repaint/search-field-cancel-expected.png differ
index e1c6931..d348fd3 100644 (file)
@@ -13,11 +13,12 @@ layer at (0,0) size 800x600
           text run at (358,0) width 322: ". The cancel button in a search field fails to redraw."
       RenderBlock (anonymous) at (0,34) size 784x23
         RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-          RenderBlock {DIV} at (3,3) size 119x13
-            RenderBlock {DIV} at (0,0) size 8x11
-            RenderBlock {DIV} at (106,0) size 13x11
+          RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+            RenderBlock {DIV} at (0,1) size 8x11
+            RenderBlock {DIV} at (8,0) size 98x13
+            RenderBlock {DIV} at (106,1) size 13x11
         RenderText {#text} at (0,0) size 0x0
 layer at (21,47) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 54x13
       text run at (1,0) width 54: "some text"
index 993c3af..5ab9785 100644 (file)
@@ -11,19 +11,22 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,1) size 784x25
             RenderTableCell {TD} at (1,1) size 127x25 [r=0 c=0 rs=1 cs=1]
               RenderTextControl {INPUT} at (1,3) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-                RenderBlock {DIV} at (3,3) size 119x13
-                  RenderBlock {DIV} at (0,0) size 8x11
-                  RenderBlock {DIV} at (106,0) size 13x11
+                RenderDeprecatedFlexibleBox {DIV} at (3,3) size 119x13
+                  RenderBlock {DIV} at (0,1) size 8x11
+                  RenderBlock {DIV} at (8,0) size 98x13
+                  RenderBlock {DIV} at (106,1) size 13x11
             RenderTableCell {TD} at (129,1) size 8x25 [r=0 c=1 rs=1 cs=1]
               RenderTextControl {INPUT} at (1,3) size 6x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-                RenderBlock {DIV} at (3,3) size 0x35
-                  RenderBlock {DIV} at (0,0) size 8x11
-                  RenderBlock {DIV} at (0,24) size 13x11
+                RenderDeprecatedFlexibleBox {DIV} at (3,3) size 0x13
+                  RenderBlock {DIV} at (0,1) size 8x11
+                  RenderBlock {DIV} at (8,0) size 0x13
+                  RenderBlock {DIV} at (8,1) size 13x11
             RenderTableCell {TD} at (138,1) size 8x25 [r=0 c=2 rs=1 cs=1]
               RenderTextControl {INPUT} at (1,3) size 6x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-                RenderBlock {DIV} at (3,3) size 0x35
-                  RenderBlock {DIV} at (0,0) size 8x11
-                  RenderBlock {DIV} at (0,24) size 13x11
+                RenderDeprecatedFlexibleBox {DIV} at (3,3) size 0x13
+                  RenderBlock {DIV} at (0,1) size 8x11
+                  RenderBlock {DIV} at (8,0) size 0x13
+                  RenderBlock {DIV} at (8,1) size 13x11
             RenderTableCell {TD} at (147,3) size 636x20 [r=0 c=3 rs=1 cs=1]
               RenderText {#text} at (1,1) size 4x18
                 text run at (1,1) width 4: " "
@@ -35,43 +38,46 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,1) size 784x25
             RenderTableCell {TD} at (1,1) size 527x25 [r=0 c=0 rs=1 cs=1]
               RenderTextControl {INPUT} at (1,3) size 525x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-                RenderBlock {DIV} at (3,3) size 519x13
-                  RenderBlock {DIV} at (0,0) size 22x11
-                  RenderBlock {DIV} at (506,0) size 13x11
+                RenderDeprecatedFlexibleBox {DIV} at (3,3) size 519x13
+                  RenderBlock {DIV} at (0,1) size 22x11
+                  RenderBlock {DIV} at (22,0) size 484x13
+                  RenderBlock {DIV} at (506,1) size 13x11
             RenderTableCell {TD} at (529,1) size 8x25 [r=0 c=1 rs=1 cs=1]
               RenderTextControl {INPUT} at (1,3) size 6x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-                RenderBlock {DIV} at (3,3) size 0x35
-                  RenderBlock {DIV} at (0,0) size 22x11
-                  RenderBlock {DIV} at (0,24) size 13x11
+                RenderDeprecatedFlexibleBox {DIV} at (3,3) size 0x13
+                  RenderBlock {DIV} at (0,1) size 22x11
+                  RenderBlock {DIV} at (22,0) size 0x13
+                  RenderBlock {DIV} at (22,1) size 13x11
             RenderTableCell {TD} at (538,1) size 8x25 [r=0 c=2 rs=1 cs=1]
               RenderTextControl {INPUT} at (1,3) size 6x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-                RenderBlock {DIV} at (3,3) size 0x35
-                  RenderBlock {DIV} at (0,0) size 22x11
-                  RenderBlock {DIV} at (0,24) size 13x11
+                RenderDeprecatedFlexibleBox {DIV} at (3,3) size 0x13
+                  RenderBlock {DIV} at (0,1) size 22x11
+                  RenderBlock {DIV} at (22,0) size 0x13
+                  RenderBlock {DIV} at (22,1) size 13x11
             RenderTableCell {TD} at (547,3) size 236x20 [r=0 c=3 rs=1 cs=1]
               RenderText {#text} at (1,1) size 4x18
                 text run at (1,1) width 4: " "
 layer at (21,33) size 98x13
-  RenderBlock {DIV} at (8,0) size 98x13
+  RenderBlock {DIV} at (0,0) size 98x13
     RenderText {#text} at (1,0) size 49x13
       text run at (1,0) width 49: "New Mail"
-layer at (141,44) size 2x13 scrollWidth 31
-  RenderBlock {DIV} at (0,11) size 2x13
+layer at (149,33) size 31x13
+  RenderBlock {DIV} at (0,0) size 31x13
     RenderText {#text} at (1,0) size 29x13
       text run at (1,0) width 29: "Reply"
-layer at (150,44) size 2x13 scrollWidth 49
-  RenderBlock {DIV} at (0,11) size 2x13
+layer at (158,33) size 49x13
+  RenderBlock {DIV} at (0,0) size 49x13
     RenderText {#text} at (1,0) size 47x13
       text run at (1,0) width 47: "Reply All"
 layer at (35,96) size 484x13
-  RenderBlock {DIV} at (22,0) size 484x13
+  RenderBlock {DIV} at (0,0) size 484x13
     RenderText {#text} at (1,0) size 49x13
       text run at (1,0) width 49: "New Mail"
-layer at (541,107) size 2x13 scrollWidth 31
-  RenderBlock {DIV} at (0,11) size 2x13
+layer at (563,96) size 31x13
+  RenderBlock {DIV} at (0,0) size 31x13
     RenderText {#text} at (1,0) size 29x13
       text run at (1,0) width 29: "Reply"
-layer at (550,107) size 2x13 scrollWidth 49
-  RenderBlock {DIV} at (0,11) size 2x13
+layer at (572,96) size 49x13
+  RenderBlock {DIV} at (0,0) size 49x13
     RenderText {#text} at (1,0) size 47x13
       text run at (1,0) width 47: "Reply All"
index ae3ba7e..4105e63 100644 (file)
Binary files a/LayoutTests/platform/mac/fast/table/colspanMinWidth-vertical-expected.png and b/LayoutTests/platform/mac/fast/table/colspanMinWidth-vertical-expected.png differ
index eb4682c..47bddb5 100644 (file)
@@ -3,22 +3,22 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderTable {TABLE} at (0,0) size 32x149
-        RenderTableSection {TBODY} at (0,0) size 32x149
+      RenderTable {TABLE} at (0,0) size 45x149
+        RenderTableSection {TBODY} at (0,0) size 45x149
           RenderTableRow {TR} at (0,2) size 2x149
             RenderTableCell {TD} at (2,2) size 2x3 [bgcolor=#0000FF] [r=0 c=0 rs=1 cs=1]
           RenderTableRow {TR} at (0,6) size 0x149
             RenderTableCell {TD} at (6,2) size 2x141 [bgcolor=#008000] [r=1 c=0 rs=2 cs=2]
           RenderTableRow {TR} at (0,8) size 0x149
-            RenderTableCell {TD} at (8,155) size 22x-18 [bgcolor=#FF0000] [r=2 c=2 rs=2 cs=1]
-          RenderTableRow {TR} at (0,10) size 20x149
-            RenderTableCell {TD} at (10,2) size 20x141 [bgcolor=#00FFFF] [r=3 c=0 rs=1 cs=2]
-              RenderTable {TABLE} at (1,1) size 18x139
-                RenderTableSection {TBODY} at (0,0) size 18x139
-                  RenderTableRow {TR} at (0,2) size 14x139
-                    RenderTableCell {TD} at (2,8) size 14x-10 [bgcolor=#FF00FF] [r=0 c=0 rs=1 cs=1]
-                    RenderTableCell {TD} at (2,6) size 14x131 [bgcolor=#FFFF00] [r=0 c=1 rs=1 cs=1]
-                      RenderTextControl {INPUT} at (3,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (8,161) size 35x-31 [bgcolor=#FF0000] [r=2 c=2 rs=2 cs=1]
+          RenderTableRow {TR} at (0,10) size 33x149
+            RenderTableCell {TD} at (10,2) size 33x141 [bgcolor=#00FFFF] [r=3 c=0 rs=1 cs=2]
+              RenderTable {TABLE} at (1,1) size 31x139
+                RenderTableSection {TBODY} at (0,0) size 31x139
+                  RenderTableRow {TR} at (0,2) size 27x139
+                    RenderTableCell {TD} at (2,14) size 27x-23 [bgcolor=#FF00FF] [r=0 c=0 rs=1 cs=1]
+                    RenderTableCell {TD} at (2,6) size 27x131 [bgcolor=#FFFF00] [r=0 c=1 rs=1 cs=1]
+                      RenderTextControl {INPUT} at (3,3) size 21x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
                       RenderText {#text} at (0,0) size 0x0
-layer at (19,23) size 2x119 scrollX 13 scrollWidth 15
-  RenderBlock {DIV} at (3,3) size 2x119
+layer at (19,-30) size 15x119 backgroundClip at (19,0) size 15x89 clip at (19,0) size 15x89 outlineClip at (0,0) size 800x600
+  RenderBlock {DIV} at (3,-50) size 15x119
index 826f471..cdb3abf 100644 (file)
@@ -1,5 +1,96 @@
 2011-06-29  Kent Tamura  <tkent@chromium.org>
 
+        Reviewed by Dimitri Glazkov.
+
+        Avoid custom layout code of RenderTextControlSingleLine
+        https://bugs.webkit.org/show_bug.cgi?id=61415
+
+        If a text field has a search results button, a search cancel
+        button, a speech button, or a spin button, the editable inner text
+        element and the buttons are wrapped by a flexible box container,
+        and the editable inner text element has flexibility. As the result
+        of applying the flexible box, we don't need any horizontal layout
+        code in RenderTextControlSingleLine except the inner spin button.
+
+        Also, we remove custom hit-testing code in nodeAtPoint(). If a
+        user clicks on a position left of the inner editable text but not
+        on the search results button, the search results button doesn't
+        work though it worked.
+
+        * css/html.css:
+        (input::-webkit-textfield-decoration-container):
+          New style definition for the "container" element.
+        (input[type="search"]::-webkit-search-cancel-button):
+          It should be a block element because it's a child of the flexible box.
+          Also, this doesn't have flexibility.
+        (input[type="search"]::-webkit-search-decoration): ditto.
+        (input[type="search"]::-webkit-search-results-decoration): ditto.
+        (input[type="search"]::-webkit-search-results-button): ditto.
+        (input::-webkit-inner-spin-button): ditto.
+        (input::-webkit-input-speech-button): ditto.
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::containerElement):
+          Add an accessor of the flexible box container.
+          It just calls InputType::containerElement().
+        * html/HTMLInputElement.h: Declare it.
+        * html/InputType.h:
+        (WebCore::InputType::containerElement): New accessor for a shadow element.
+        * html/SearchInputType.cpp:
+        (WebCore::SearchInputType::SearchInputType):
+          m_innerBlock is moved to TextFieldInputType.
+        (WebCore::SearchInputType::needsContainer):
+          A search field always needs the flexible box container because
+          of the results button and the cancel button.
+        (WebCore::SearchInputType::createShadowSubtree):
+          Use TextFieldInputType::createShadowSubtree(), then modify the tree.
+        (WebCore::SearchInputType::destroyShadowSubtree):
+          m_innerBlock is moved to TextFieldInputType.
+        * html/SearchInputType.h:
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::TextFieldInputType):
+          Initialize the new members.
+        (WebCore::TextFieldInputType::needsContainer):
+          Returns true if x-webkit-speech. We check a spin button separately.
+        (WebCore::TextFieldInputType::createShadowSubtree):
+          Wrap everything with the flexible box container if needsContainer() or we need a spin button.
+        (WebCore::TextFieldInputType::containerElement): Added an accessor.
+        (WebCore::TextFieldInputType::innerBlockElement): ditto.
+        (WebCore::TextFieldInputType::innerTextElement): ditto.
+        (WebCore::TextFieldInputType::innerSpinButtonElement): ditto.
+        (WebCore::TextFieldInputType::speechButtonElement): ditto.
+        (WebCore::TextFieldInputType::destroyShadowSubtree):
+          Clear references to new shadow nodes.
+        * html/TextFieldInputType.h:
+        * rendering/RenderTextControlSingleLine.cpp:
+        (WebCore::RenderTextControlSingleLine::containerElement): Added an accessor.
+        (WebCore::RenderTextControlSingleLine::innerTextElement):
+        (WebCore::RenderTextControlSingleLine::layout):
+         - Correct heights check
+          Comparing with height(), not contentHeigth(), was incorrect.
+         - Adjust the container height like the editable inner text.
+         - Remove width adjustment
+         - Remove the speech button layout code
+          The flexible box layout is enough.
+        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
+          Remove custom code for results/cancel/speech buttons, and
+          Simplify comments.
+        (WebCore::RenderTextControlSingleLine::forwardEvent):
+          Remove custom forwarding code for results/cancel buttons.
+        (WebCore::RenderTextControlSingleLine::styleDidChange):
+          Clear the style of the container because we update it in layout().
+        (WebCore::RenderTextControlSingleLine::hasControlClip):
+          Decoration buttons should be clipped by the container.
+        (WebCore::RenderTextControlSingleLine::controlClipRect): ditto.
+        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
+          We don't need to use display:inline-block any more.
+        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
+          The text wrapper element should have flexibility.
+        (WebCore::RenderTextControlSingleLine::textBlockInsetTop):
+          Updated for the tree structure change.
+        * rendering/RenderTextControlSingleLine.h:
+
+2011-06-29  Kent Tamura  <tkent@chromium.org>
+
         [Mac] Attempt to fix Leopard build.
 
         * platform/mac/CursorMac.mm:
index 6e0c814..945f4a5 100644 (file)
@@ -419,24 +419,34 @@ input[type="search"] {
     -webkit-box-sizing: border-box;
 }
 
+input::-webkit-textfield-decoration-container {
+    direction: ltr;
+    display: -webkit-box;
+    -webkit-box-align: center;
+}
+
 input[type="search"]::-webkit-search-cancel-button {
     -webkit-appearance: searchfield-cancel-button;
-    display: inline-block;
+    display: block;
+    -webkit-box-flex: 0;
 }
 
 input[type="search"]::-webkit-search-decoration {
     -webkit-appearance: searchfield-decoration;
-    display: inline-block;
+    display: block;
+    -webkit-box-flex: 0;
 }
 
 input[type="search"]::-webkit-search-results-decoration {
     -webkit-appearance: searchfield-results-decoration;
-    display: inline-block;
+    display: block;
+    -webkit-box-flex: 0;
 }
 
 input[type="search"]::-webkit-search-results-button {
     -webkit-appearance: searchfield-results-button;
-    display: inline-block;
+    display: block;
+    -webkit-box-flex: 0;
 }
 
 #if defined(ENABLE_DATALIST) && ENABLE_DATALIST
@@ -448,18 +458,20 @@ input::-webkit-input-list-button {
 
 input::-webkit-inner-spin-button {
     -webkit-appearance: inner-spin-button;
-    display: inline-block;
+    display: block;
     position: relative;
     cursor: default;
     vertical-align: top;
+    -webkit-box-flex: 0;
     -webkit-user-select: none;
 }
 
 #if defined(ENABLE_INPUT_SPEECH) && ENABLE_INPUT_SPEECH
 input::-webkit-input-speech-button {
     -webkit-appearance: -webkit-input-speech-button;
-    display: inline-block;
+    display: block;
     vertical-align: top;
+    -webkit-box-flex: 0;
 }
 #endif
 
index 2c25841..b8af49c 100644 (file)
@@ -129,6 +129,11 @@ const AtomicString& HTMLInputElement::formControlName() const
     return m_name.isNull() ? emptyAtom : m_name;
 }
 
+HTMLElement* HTMLInputElement::containerElement() const
+{
+    return m_inputType->containerElement();
+}
+
 HTMLElement* HTMLInputElement::innerTextElement() const
 {
     return m_inputType->innerTextElement();
index 3c0cd9a..8c615bd 100644 (file)
@@ -109,6 +109,7 @@ public:
     bool isSpeechEnabled() const;
 #endif
 
+    HTMLElement* containerElement() const;
     virtual HTMLElement* innerTextElement() const;
     HTMLElement* innerBlockElement() const;
     HTMLElement* innerSpinButtonElement() const;
index bf17e13..de4c047 100644 (file)
@@ -189,6 +189,7 @@ public:
     virtual void createShadowSubtree();
     virtual void destroyShadowSubtree();
 
+    virtual HTMLElement* containerElement() const { return 0; }
     virtual HTMLElement* innerBlockElement() const { return 0; }
     virtual HTMLElement* innerTextElement() const { return 0; }
     virtual HTMLElement* innerSpinButtonElement() const { return 0; }
index ad798af..d6bc86e 100644 (file)
@@ -63,37 +63,28 @@ bool SearchInputType::isSearchField() const
     return true;
 }
 
+bool SearchInputType::needsContainer() const
+{
+    return true;
+}
+
 void SearchInputType::createShadowSubtree()
 {
-    ASSERT(!m_innerBlock);
     ASSERT(!m_resultsButton);
     ASSERT(!m_cancelButton);
 
-    ExceptionCode ec = 0;
-    Document* document = element()->document();
-    m_innerBlock = TextControlInnerElement::create(document);
-    element()->ensureShadowRoot()->appendChild(m_innerBlock, ec);
-
-#if ENABLE(INPUT_SPEECH)
-    if (element()->isSpeechEnabled()) {
-        setSpeechButtonElement(InputFieldSpeechButtonElement::create(document));
-        element()->ensureShadowRoot()->appendChild(speechButtonElement(), ec);
-    }
-#endif
+    TextFieldInputType::createShadowSubtree();
+    HTMLElement* container = containerElement();
+    HTMLElement* textWrapper = innerBlockElement();
+    ASSERT(container);
+    ASSERT(textWrapper);
 
-    m_resultsButton = SearchFieldResultsButtonElement::create(document);
-    m_innerBlock->appendChild(m_resultsButton, ec);
-
-    setInnerTextElement(TextControlInnerTextElement::create(document));
-    m_innerBlock->appendChild(innerTextElement(), ec);
+    ExceptionCode ec = 0;
+    m_resultsButton = SearchFieldResultsButtonElement::create(element()->document());
+    container->insertBefore(m_resultsButton, textWrapper, ec);
 
     m_cancelButton = SearchFieldCancelButtonElement::create(element()->document());
-    m_innerBlock->appendChild(m_cancelButton, ec);
-}
-
-HTMLElement* SearchInputType::innerBlockElement() const
-{
-    return m_innerBlock.get();
+    container->insertBefore(m_cancelButton, textWrapper->nextSibling(), ec);
 }
 
 HTMLElement* SearchInputType::resultsButtonElement() const
@@ -109,7 +100,6 @@ HTMLElement* SearchInputType::cancelButtonElement() const
 void SearchInputType::destroyShadowSubtree()
 {
     TextFieldInputType::destroyShadowSubtree();
-    m_innerBlock.clear();
     m_resultsButton.clear();
     m_cancelButton.clear();
 }
index 6d43a3c..6999d11 100644 (file)
@@ -42,20 +42,17 @@ class SearchInputType : public BaseTextInputType {
 public:
     static PassOwnPtr<InputType> create(HTMLInputElement*);
 
-protected:
-    virtual void createShadowSubtree();
-    virtual void destroyShadowSubtree();
-
 private:
     SearchInputType(HTMLInputElement*);
     virtual const AtomicString& formControlType() const;
     virtual bool shouldRespectSpeechAttribute();
     virtual bool isSearchField() const;
-    virtual HTMLElement* innerBlockElement() const;
+    virtual bool needsContainer() const;
+    virtual void createShadowSubtree();
+    virtual void destroyShadowSubtree();
     virtual HTMLElement* resultsButtonElement() const;
     virtual HTMLElement* cancelButtonElement() const;
 
-    RefPtr<HTMLElement> m_innerBlock;
     RefPtr<HTMLElement> m_resultsButton;
     RefPtr<HTMLElement> m_cancelButton;
 };
index ae6d57a..387fbe1 100644 (file)
@@ -129,51 +129,65 @@ RenderObject* TextFieldInputType::createRenderer(RenderArena* arena, RenderStyle
     return new (arena) RenderTextControlSingleLine(element(), element()->placeholderShouldBeVisible());
 }
 
+bool TextFieldInputType::needsContainer() const
+{
+#if ENABLE(INPUT_SPEECH)
+    return element()->isSpeechEnabled();
+#else
+    return false;
+#endif
+}
+
 void TextFieldInputType::createShadowSubtree()
 {
     ASSERT(!m_innerText);
+    ASSERT(!m_innerBlock);
     ASSERT(!m_innerSpinButton);
 
     Document* document = element()->document();
     RefPtr<RenderTheme> theme = document->page() ? document->page()->theme() : RenderTheme::defaultTheme();
     bool shouldHaveSpinButton = theme->shouldHaveSpinButton(element());
-    bool hasDecorations = shouldHaveSpinButton;
-#if ENABLE(INPUT_SPEECH)
-    if (element()->isSpeechEnabled())
-        hasDecorations = true;
-#endif
+    bool createsContainer = shouldHaveSpinButton || needsContainer();
 
     ExceptionCode ec = 0;
     m_innerText = TextControlInnerTextElement::create(document);
-    element()->ensureShadowRoot()->appendChild(m_innerText, ec);
-    if (!hasDecorations)
+    if (!createsContainer) {
+        element()->ensureShadowRoot()->appendChild(m_innerText, ec);
         return;
+    }
+
+    ShadowRoot* shadowRoot = element()->ensureShadowRoot();
+    m_container = HTMLDivElement::create(document);
+    m_container->setShadowPseudoId("-webkit-textfield-decoration-container", ec);
+    shadowRoot->appendChild(m_container, ec);
+
+    m_innerBlock = TextControlInnerElement::create(document);
+    m_innerBlock->appendChild(m_innerText, ec);
+    m_container->appendChild(m_innerBlock, ec);
 
 #if ENABLE(INPUT_SPEECH)
     ASSERT(!m_speechButton);
     if (element()->isSpeechEnabled()) {
         m_speechButton = InputFieldSpeechButtonElement::create(document);
-        element()->ensureShadowRoot()->appendChild(m_speechButton, ec);
+        m_container->appendChild(m_speechButton, ec);
     }
 #endif
 
     if (shouldHaveSpinButton) {
         m_innerSpinButton = SpinButtonElement::create(document);
-        element()->ensureShadowRoot()->appendChild(m_innerSpinButton, ec);
+        m_container->appendChild(m_innerSpinButton, ec);
     }
 }
 
-void TextFieldInputType::setInnerTextElement(PassRefPtr<HTMLElement> element)
+HTMLElement* TextFieldInputType::containerElement() const
 {
-    m_innerText = element;
+    return m_container.get();
 }
 
-#if ENABLE(INPUT_SPEECH)
-void TextFieldInputType::setSpeechButtonElement(PassRefPtr<HTMLElement> element)
+HTMLElement* TextFieldInputType::innerBlockElement() const
 {
-    m_speechButton = element;
+    return m_innerBlock.get();
 }
-#endif
 
 HTMLElement* TextFieldInputType::innerTextElement() const
 {
@@ -197,10 +211,12 @@ void TextFieldInputType::destroyShadowSubtree()
 {
     InputType::destroyShadowSubtree();
     m_innerText.clear();
+    m_innerBlock.clear();
 #if ENABLE(INPUT_SPEECH)
     m_speechButton.clear();
 #endif
     m_innerSpinButton.clear();
+    m_container.clear();
 }
 
 bool TextFieldInputType::shouldUseInputMethod() const
index 16cbc31..5289d4a 100644 (file)
@@ -46,6 +46,8 @@ protected:
     void handleKeydownEventForSpinButton(KeyboardEvent*);
     void handleWheelEventForSpinButton(WheelEvent*);
 
+    virtual HTMLElement* containerElement() const;
+    virtual HTMLElement* innerBlockElement() const;
     virtual HTMLElement* innerTextElement() const;
     virtual HTMLElement* innerSpinButtonElement() const;
 #if ENABLE(INPUT_SPEECH)
@@ -53,12 +55,9 @@ protected:
 #endif
 
 protected:
+    virtual bool needsContainer() const;
     virtual void createShadowSubtree();
     virtual void destroyShadowSubtree();
-    void setInnerTextElement(PassRefPtr<HTMLElement>);
-#if ENABLE(INPUT_SPEECH)
-    void setSpeechButtonElement(PassRefPtr<HTMLElement>);
-#endif
 
 private:
     virtual bool isTextField() const;
@@ -71,6 +70,8 @@ private:
     virtual String sanitizeValue(const String&);
     virtual bool shouldRespectListAttribute();
 
+    RefPtr<HTMLElement> m_container;
+    RefPtr<HTMLElement> m_innerBlock;
     RefPtr<HTMLElement> m_innerText;
     RefPtr<HTMLElement> m_innerSpinButton;
 #if ENABLE(INPUT_SPEECH)
index 14a475d..379167f 100644 (file)
@@ -88,7 +88,12 @@ RenderTextControlSingleLine::~RenderTextControlSingleLine()
     }
 }
 
-HTMLElement* RenderTextControlSingleLine::innerTextElement() const
+inline HTMLElement* RenderTextControlSingleLine::containerElement() const
+{
+    return inputElement()->containerElement();
+}
+
+inline HTMLElement* RenderTextControlSingleLine::innerTextElement() const
 {
     return inputElement()->innerTextElement();
 }
@@ -253,6 +258,17 @@ void RenderTextControlSingleLine::paint(PaintInfo& paintInfo, const LayoutPoint&
 
 void RenderTextControlSingleLine::layout()
 {
+    // FIXME: We should remove the height-related hacks in layout() and
+    // styleDidChange(). We need them because
+    // - Center the inner elements vertically if the input height is taller than
+    //   the intrinsic height of the inner elements.
+    // - Shrink the inner elment heights if the input height is samller than the
+    //   intrinsic heights of the inner elements.
+
+    // We don't honor paddings and borders for textfields without decorations
+    // and type=search if the text height is taller than the contentHeight()
+    // because of compability.
+
     int oldHeight = height();
     computeLogicalHeight();
 
@@ -262,135 +278,78 @@ void RenderTextControlSingleLine::layout()
     bool relayoutChildren = oldHeight != height() || oldWidth != width();
 
     RenderBox* innerTextRenderer = innerTextElement()->renderBox();
-    HTMLElement* innerBlock = innerBlockElement();
-    RenderBox* innerBlockRenderer = innerBlock ? innerBlock->renderBox() : 0;
+    ASSERT(innerTextRenderer);
+    RenderBox* innerBlockRenderer = innerBlockElement() ? innerBlockElement()->renderBox() : 0;
+    HTMLElement* container = containerElement();
+    RenderBox* containerRenderer = container ? container->renderBox() : 0;
 
     // Set the text block height
     int desiredHeight = textBlockHeight();
     int currentHeight = innerTextRenderer->height();
 
-    if (currentHeight > height()) {
+    int heightLimit = (inputElement()->isSearchField() || !container) ? height() : contentHeight();
+    if (currentHeight > heightLimit) {
         if (desiredHeight != currentHeight)
             relayoutChildren = true;
         innerTextRenderer->style()->setHeight(Length(desiredHeight, Fixed));
-        if (innerBlock)
+        if (innerBlockRenderer)
             innerBlockRenderer->style()->setHeight(Length(desiredHeight, Fixed));
     }
-
-    // Set the text block width
-    int desiredWidth = textBlockWidth();
-    if (desiredWidth != innerTextRenderer->width())
-        relayoutChildren = true;
-    innerTextRenderer->style()->setWidth(Length(desiredWidth, Fixed));
-
-    if (innerBlock) {
-        int innerBlockWidth = width() - borderAndPaddingWidth();
-        if (innerBlockWidth != innerBlockRenderer->width())
+    // The container might be taller because of decoration elements.
+    if (containerRenderer) {
+        containerRenderer->layoutIfNeeded();
+        int containerHeight = containerRenderer->height();
+        if (containerHeight > heightLimit) {
+            containerRenderer->style()->setHeight(Length(heightLimit, Fixed));
             relayoutChildren = true;
-        innerBlockRenderer->style()->setWidth(Length(innerBlockWidth, Fixed));
+        } else if (containerRenderer->height() < contentHeight()) {
+            containerRenderer->style()->setHeight(Length(contentHeight(), Fixed));
+            relayoutChildren = true;
+        }
     }
 
     RenderBlock::layoutBlock(relayoutChildren);
 
     // Center the child block vertically
-    RenderBox* childBlock = innerBlockRenderer ? innerBlockRenderer : innerTextRenderer;
-    currentHeight = childBlock->height();
-    if (currentHeight < height())
-        childBlock->setY((height() - currentHeight) / 2);
-
-    // Ignores the paddings for the inner spin button.
-    HTMLElement* innerSpinButton = innerSpinButtonElement();
-    if (RenderBox* spinBox = innerSpinButton ? innerSpinButton->renderBox() : 0) {
-        spinBox->setLocation(IntPoint(spinBox->x() + paddingRight(), borderTop()));
-        spinBox->setHeight(height() - borderTop() - borderBottom());
+    currentHeight = innerTextRenderer->height();
+    if (!container && currentHeight != contentHeight()) {
+        int heightDiff = currentHeight - contentHeight();
+        innerTextRenderer->setY(innerTextRenderer->y() - (heightDiff / 2 + heightDiff % 2));
+    } else if (inputElement()->isSearchField() && containerRenderer && containerRenderer->height() > contentHeight()) {
+        // A quirk for find-in-page box on Safari Windows.
+        // http://webkit.org/b/63157
+        int heightDiff = containerRenderer->height() - contentHeight();
+        containerRenderer->setY(containerRenderer->y() - (heightDiff / 2 + heightDiff % 2));
     }
 
-#if ENABLE(INPUT_SPEECH)
-    if (RenderBox* button = speechButtonElement() ? speechButtonElement()->renderBox() : 0) {
-        if (innerBlock) {
-            // This is mostly the case where this is a search field. The speech button is a sibling
-            // of the inner block and laid out at the far right.
-            int x = width() - borderAndPaddingWidth() - button->width() - button->borderAndPaddingWidth();
-            int y = (height() - button->height()) / 2;
-            button->setLocation(IntPoint(x, y));
-        } else {
-            int x = width() - borderRight() - paddingRight() - button->width();
-            RenderBox* spinBox = innerSpinButtonElement() ? innerSpinButtonElement()->renderBox() : 0;
-            if (style()->isLeftToRightDirection())
-                x -= spinBox ? spinBox->width() : 0;
-            else
-                innerTextRenderer->setX(paddingLeft() + borderLeft() + (spinBox ? spinBox->width() : 0));
-            int y = (height() - button->height()) / 2;
-            button->setLocation(IntPoint(x, y));
-        }
+    // Ignores the paddings for the inner spin button.
+    if (RenderBox* innerSpinBox = innerSpinButtonElement() ? innerSpinButtonElement()->renderBox() : 0) {
+        RenderBox* parentBox = innerSpinBox->parentBox();
+        innerSpinBox->setLocation(IntPoint(parentBox->width() - innerSpinBox->width() + paddingRight(), -paddingTop()));
+        innerSpinBox->setHeight(height() - borderTop() - borderBottom());
     }
-#endif
 }
 
 bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const IntPoint& pointInContainer, const IntPoint& accumulatedOffset, HitTestAction hitTestAction)
 {
-    // If we're within the text control, we want to act as if we've hit the inner text block element, in case the point
-    // was on the control but not on the inner element (see Radar 4617841).
-
-    // In a search field, we want to act as if we've hit the results block if we're to the left of the inner text block,
-    // and act as if we've hit the close block if we're to the right of the inner text block.
-
     if (!RenderTextControl::nodeAtPoint(request, result, pointInContainer, accumulatedOffset, hitTestAction))
         return false;
 
-    // If we hit a node inside the inner text element, say that we hit that element,
-    // and if we hit our node (e.g. we're over the border or padding), also say that we hit the
-    // inner text element so that it gains focus.
-    if (result.innerNode()->isDescendantOf(innerTextElement()) || result.innerNode() == node())
-        hitInnerTextElement(result, pointInContainer, accumulatedOffset);
-
-    // If we found a spin button, we're done.
-    HTMLElement* innerSpinButton = innerSpinButtonElement();
-    if (innerSpinButton && result.innerNode() == innerSpinButton)
-        return true;
-#if ENABLE(INPUT_SPEECH)
-    HTMLElement* speechButton = speechButtonElement();
-    if (speechButton && result.innerNode() == speechButton)
-        return true;
-#endif
-    // If we're not a search field, or we already found the speech, results or cancel buttons, we're done.
-    HTMLElement* innerBlock = innerBlockElement();
-    HTMLElement* resultsButton = resultsButtonElement();
-    HTMLElement* cancelButton = cancelButtonElement();
-    if (!innerBlock || result.innerNode() == resultsButton || result.innerNode() == cancelButton)
-        return true;
-
-    Node* innerNode = 0;
-    RenderBox* innerBlockRenderer = innerBlock->renderBox();
-    RenderBox* innerTextRenderer = innerTextElement()->renderBox();
-
-    IntPoint localPoint = result.localPoint();
-    localPoint.move(-innerBlockRenderer->location());
-
-    int textLeft = accumulatedOffset.x() + x() + innerBlockRenderer->x() + innerTextRenderer->x();
-    if (resultsButton && resultsButton->renderer() && pointInContainer.x() < textLeft)
-        innerNode = resultsButton;
-
-#if ENABLE(INPUT_SPEECH)
-    if (!innerNode && speechButtonElement() && speechButtonElement()->renderer()) {
-        int buttonLeft = accumulatedOffset.x() + x() + innerBlockRenderer->x() + innerBlockRenderer->width() - speechButtonElement()->renderBox()->width();
-        if (pointInContainer.x() >= buttonLeft)
-            innerNode = speechButtonElement();
-    }
-#endif
-
-    if (!innerNode) {
-        int textRight = textLeft + innerTextRenderer->width();
-        if (cancelButton && cancelButton->renderer() && pointInContainer.x() > textRight)
-            innerNode = cancelButton;
-    }
-
-    if (innerNode) {
-        result.setInnerNode(innerNode);
-        localPoint.move(-innerNode->renderBox()->location());
+    // Say that we hit the inner text element if
+    //  - we hit a node inside the inner text element,
+    //  - we hit the <input> element (e.g. we're over the border or padding), or
+    //  - we hit regions not in any decoration buttons.
+    HTMLElement* container = containerElement();
+    if (result.innerNode()->isDescendantOf(innerTextElement()) || result.innerNode() == node() || (container && container == result.innerNode())) {
+        IntPoint pointInParent = pointInContainer;
+        if (container && innerBlockElement()) {
+            if (innerBlockElement()->renderBox())
+                pointInParent -= toSize(innerBlockElement()->renderBox()->location());
+            if (container->renderBox())
+                pointInParent -= toSize(container->renderBox()->location());
+        }
+        hitInnerTextElement(result, pointInParent, accumulatedOffset);
     }
-
-    result.setLocalPoint(localPoint);
     return true;
 }
 
@@ -408,46 +367,24 @@ void RenderTextControlSingleLine::forwardEvent(Event* event)
     } else if (event->type() == eventNames().focusEvent)
         capsLockStateMayHaveChanged();
 
-    if (!event->isMouseEvent()) {
-        RenderTextControl::forwardEvent(event);
-        return;
-    }
-
-#if ENABLE(INPUT_SPEECH)
-    if (RenderBox* speechBox = speechButtonElement() ? speechButtonElement()->renderBox() : 0) {
-        RenderBox* parent = innerTextRenderer ? innerTextRenderer : this;
-        FloatPoint pointInTextControlCoords = parent->absoluteToLocal(static_cast<MouseEvent*>(event)->absoluteLocation(), false, true);
-        if (speechBox->frameRect().contains(roundedIntPoint(pointInTextControlCoords))) {
-            speechButtonElement()->defaultEventHandler(event);
-            return;
-        }
-    }
-#endif
-
-    FloatPoint localPoint = innerTextRenderer->absoluteToLocal(static_cast<MouseEvent*>(event)->absoluteLocation(), false, true);
-    int textRight = innerTextRenderer->borderBoxRect().maxX();
-
-    HTMLElement* resultsButton = resultsButtonElement();
-    HTMLElement* cancelButton = cancelButtonElement();
-    if (resultsButton && localPoint.x() < innerTextRenderer->borderBoxRect().x())
-        resultsButton->defaultEventHandler(event);
-    else if (cancelButton && localPoint.x() > textRight)
-        cancelButton->defaultEventHandler(event);
-    else
-        RenderTextControl::forwardEvent(event);
+    RenderTextControl::forwardEvent(event);
 }
 
 void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
 {
     RenderTextControl::styleDidChange(diff, oldStyle);
 
+    // We may have set the width and the height in the old style in layout().
+    // Reset them now to avoid getting a spurious layout hint.
     HTMLElement* innerBlock = innerBlockElement();
     if (RenderObject* innerBlockRenderer = innerBlock ? innerBlock->renderer() : 0) {
-        // We may have set the width and the height in the old style in layout().
-        // Reset them now to avoid getting a spurious layout hint.
         innerBlockRenderer->style()->setHeight(Length());
         innerBlockRenderer->style()->setWidth(Length());
-        innerBlockRenderer->setStyle(createInnerBlockStyle(style()));
+    }
+    HTMLElement* container = containerElement();
+    if (RenderObject* containerRenderer = container ? container->renderer() : 0) {
+        containerRenderer->style()->setHeight(Length());
+        containerRenderer->style()->setWidth(Length());
     }
     setHasOverflowClip(false);
 }
@@ -478,53 +415,18 @@ void RenderTextControlSingleLine::capsLockStateMayHaveChanged()
 
 bool RenderTextControlSingleLine::hasControlClip() const
 {
-    bool clip = cancelButtonElement();
-    return clip;
+    // Apply control clip for text fields with decorations.
+    return !!containerElement();
 }
 
 IntRect RenderTextControlSingleLine::controlClipRect(const IntPoint& additionalOffset) const
 {
-    // This should only get called for search & speech inputs.
     ASSERT(hasControlClip());
-
-    IntRect clipRect = IntRect(innerBlockElement()->renderBox()->frameRect());
+    IntRect clipRect = IntRect(containerElement()->renderBox()->frameRect());
     clipRect.moveBy(additionalOffset);
     return clipRect;
 }
 
-int RenderTextControlSingleLine::textBlockWidth() const
-{
-    int width = RenderTextControl::textBlockWidth();
-
-    HTMLElement* resultsButton = resultsButtonElement();
-    if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0) {
-        resultsRenderer->computeLogicalWidth();
-        width -= resultsRenderer->width() + resultsRenderer->marginLeft() + resultsRenderer->marginRight();
-    }
-
-    HTMLElement* cancelButton = cancelButtonElement();
-    if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0) {
-        cancelRenderer->computeLogicalWidth();
-        width -= cancelRenderer->width() + cancelRenderer->marginLeft() + cancelRenderer->marginRight();
-    }
-
-    HTMLElement* innerSpinButton = innerSpinButtonElement();
-    if (RenderBox* spinRenderer = innerSpinButton ? innerSpinButton->renderBox() : 0) {
-        spinRenderer->computeLogicalWidth();
-        width -= spinRenderer->width() + spinRenderer->marginLeft() + spinRenderer->marginRight();
-    }
-
-#if ENABLE(INPUT_SPEECH)
-    HTMLElement* speechButton = speechButtonElement();
-    if (RenderBox* speechRenderer = speechButton ? speechButton->renderBox() : 0) {
-        speechRenderer->computeLogicalWidth();
-        width -= speechRenderer->width() + speechRenderer->marginLeft() + speechRenderer->marginRight();
-    }
-#endif
-
-    return width;
-}
-
 float RenderTextControlSingleLine::getAvgCharWidth(AtomicString family)
 {
     // Since Lucida Grande is the default font, we want this to match the width
@@ -647,12 +549,7 @@ PassRefPtr<RenderStyle> RenderTextControlSingleLine::createInnerTextStyle(const
     if (textBlockStyle->fontMetrics().lineSpacing() > lineHeight(true, HorizontalLine, PositionOfInteriorLineBoxes))
         textBlockStyle->setLineHeight(Length(-100.0f, Percent));
 
-    WebCore::EDisplay display = (innerBlockElement() || theme()->shouldHaveSpinButton(inputElement()) ? INLINE_BLOCK : BLOCK);
-#if ENABLE(INPUT_SPEECH)
-    if (inputElement()->isSpeechEnabled())
-      display = INLINE_BLOCK;
-#endif
-    textBlockStyle->setDisplay(display);
+    textBlockStyle->setDisplay(BLOCK);
 
     // We're adding one extra pixel of padding to match WinIE.
     textBlockStyle->setPaddingLeft(Length(1, Fixed));
@@ -666,6 +563,7 @@ PassRefPtr<RenderStyle> RenderTextControlSingleLine::createInnerBlockStyle(const
     RefPtr<RenderStyle> innerBlockStyle = RenderStyle::create();
     innerBlockStyle->inheritFrom(startStyle);
 
+    innerBlockStyle->setBoxFlex(1);
     innerBlockStyle->setDisplay(BLOCK);
     innerBlockStyle->setDirection(LTR);
 
@@ -976,14 +874,16 @@ int RenderTextControlSingleLine::textBlockInsetRight() const
 
 int RenderTextControlSingleLine::textBlockInsetTop() const
 {
-    RenderBox* innerRenderer = 0;
-
-    if (HTMLElement* innerBlock = innerBlockElement())
-        innerRenderer = innerBlock->renderBox();
-    else if (HTMLElement* innerText = innerTextElement())
-        innerRenderer = innerText->renderBox();
-    
-    return innerRenderer ? innerRenderer->y() : borderTop() + paddingTop();
+    HTMLElement* innerText = innerTextElement();
+    if (!innerText || !innerText->renderBox())
+        return borderTop() + paddingTop();
+    HTMLElement* container = containerElement();
+    if (!container)
+        return innerText->renderBox()->y();
+    ASSERT(innerBlockElement());
+    if (!container->renderBox() || !innerBlockElement()->renderBox())
+        return innerText->renderBox()->y();
+    return container->renderBox()->y() + innerBlockElement()->renderBox()->y();
 }    
 
 }
index b585ac4..700abc2 100644 (file)
@@ -131,6 +131,7 @@ private:
     virtual int textBlockInsetRight() const;
     virtual int textBlockInsetTop() const;
 
+    HTMLElement* containerElement() const;
     virtual HTMLElement* innerTextElement() const;
     HTMLElement* innerBlockElement() const;
     HTMLElement* innerSpinButtonElement() const;