⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 87014 in webkit


Ignore:
Timestamp:
May 21, 2011, 3:47:54 AM (15 years ago)
Author:
tkent@chromium.org
Message:

2011-05-21 Kent Tamura <tkent@chromium.org>

Reviewed by Dimitri Glazkov.

Change text-based <input> types to the new shadow DOM model
https://bugs.webkit.org/show_bug.cgi?id=54179

Update test results because the shadow tree structure of <input> and
<textarea> is changed.

  • editing/deleting/delete-all-text-in-text-field-assertion-expected.txt:
  • editing/deleting/delete-ligature-001-expected.txt:
  • editing/pasteboard/copy-in-password-field-expected.txt:
  • editing/selection/select-all-textarea-expected.txt:
  • fast/events/5056619-expected.txt:
  • fast/forms/focus-selection-input-expected.txt:
  • fast/forms/focus-selection-textarea-expected.txt:
  • platform/chromium-linux/editing/selection/select-across-readonly-input-1-expected.txt:
  • platform/chromium-linux/editing/selection/select-across-readonly-input-4-expected.txt:
  • platform/chromium-linux/editing/selection/select-across-readonly-input-5-expected.txt:
  • platform/chromium-linux/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/chromium-linux/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/chromium-linux/fast/forms/input-text-double-click-expected.txt:
  • platform/chromium-linux/fast/forms/textfield-outline-expected.txt:
  • platform/chromium-linux/fast/forms/validation-message-appearance-expected.txt:
  • platform/chromium-win/editing/inserting/4960120-1-expected.txt:
  • platform/chromium-win/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/chromium-win/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/chromium-win/editing/selection/4895428-3-expected.txt:
  • platform/chromium-win/editing/selection/4975120-expected.txt:
  • platform/chromium-win/editing/selection/select-across-readonly-input-1-expected.txt:
  • platform/chromium-win/editing/selection/select-across-readonly-input-4-expected.txt:
  • platform/chromium-win/editing/selection/select-across-readonly-input-5-expected.txt:
  • platform/chromium-win/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/chromium-win/fast/events/autoscroll-expected.txt:
  • platform/chromium-win/fast/events/context-no-deselect-expected.txt:
  • platform/chromium-win/fast/forms/input-appearance-focus-expected.txt:
  • platform/chromium-win/fast/forms/input-appearance-readonly-expected.txt:
  • platform/chromium-win/fast/forms/input-appearance-selection-expected.txt:
  • platform/chromium-win/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/chromium-win/fast/forms/input-paste-undo-expected.txt:
  • platform/chromium-win/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/chromium-win/fast/forms/input-placeholder-visibility-2-expected.txt:
  • platform/chromium-win/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/chromium-win/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/chromium-win/fast/forms/input-text-click-inside-expected.txt:
  • platform/chromium-win/fast/forms/input-text-double-click-expected.txt:
  • platform/chromium-win/fast/forms/input-text-drag-down-expected.txt:
  • platform/chromium-win/fast/forms/input-text-option-delete-expected.txt:
  • platform/chromium-win/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/chromium-win/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/chromium-win/fast/forms/plaintext-mode-2-expected.txt:
  • platform/chromium-win/fast/forms/search-rtl-expected.txt:
  • platform/chromium-win/fast/forms/search-zoomed-expected.txt:
  • platform/chromium-win/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/chromium-win/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/chromium-win/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/chromium-win/fast/forms/textarea-scrollbar-expected.txt:
  • platform/chromium-win/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/chromium-win/fast/forms/textfield-focus-ring-expected.txt:
  • platform/chromium-win/fast/forms/textfield-outline-expected.txt:
  • platform/chromium-win/fast/forms/textfield-overflow-expected.txt:
  • platform/chromium-win/fast/forms/validation-message-appearance-expected.txt:
  • platform/chromium-win/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/chromium-win/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/chromium-win/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/chromium/test_expectations.txt:
  • platform/gtk/editing/inserting/4960120-1-expected.txt:
  • platform/gtk/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/gtk/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/gtk/editing/selection/4895428-3-expected.txt:
  • platform/gtk/editing/selection/4975120-expected.txt:
  • platform/gtk/editing/selection/select-across-readonly-input-1-expected.txt:
  • platform/gtk/editing/selection/select-across-readonly-input-4-expected.txt:
  • platform/gtk/editing/selection/select-across-readonly-input-5-expected.txt:
  • platform/gtk/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/gtk/fast/events/autoscroll-expected.txt:
  • platform/gtk/fast/events/context-no-deselect-expected.txt:
  • platform/gtk/fast/forms/input-appearance-focus-expected.txt:
  • platform/gtk/fast/forms/input-appearance-readonly-expected.txt:
  • platform/gtk/fast/forms/input-appearance-selection-expected.txt:
  • platform/gtk/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/gtk/fast/forms/input-paste-undo-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-2-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/gtk/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/gtk/fast/forms/input-text-click-inside-expected.txt:
  • platform/gtk/fast/forms/input-text-double-click-expected.txt:
  • platform/gtk/fast/forms/input-text-drag-down-expected.txt:
  • platform/gtk/fast/forms/input-text-option-delete-expected.txt:
  • platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/gtk/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/gtk/fast/forms/plaintext-mode-2-expected.txt:
  • platform/gtk/fast/forms/search-rtl-expected.txt:
  • platform/gtk/fast/forms/search-transformed-expected.txt:
  • platform/gtk/fast/forms/search-zoomed-expected.txt:
  • platform/gtk/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/gtk/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/gtk/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/gtk/fast/forms/textarea-scrollbar-expected.txt:
  • platform/gtk/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/gtk/fast/forms/textfield-focus-ring-expected.txt:
  • platform/gtk/fast/forms/textfield-outline-expected.txt:
  • platform/gtk/fast/forms/textfield-overflow-expected.txt:
  • platform/gtk/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/gtk/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/gtk/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/mac-snowleopard/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac-snowleopard/fast/forms/input-placeholder-visibility-2-expected.txt:
  • platform/mac-snowleopard/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac-wk2/editing/selection/select-across-readonly-input-1-expected.txt:
  • platform/mac-wk2/editing/selection/select-across-readonly-input-4-expected.txt:
  • platform/mac-wk2/editing/selection/select-across-readonly-input-5-expected.txt:
  • platform/mac/editing/inserting/4960120-1-expected.txt:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/mac/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/mac/editing/selection/4895428-3-expected.txt:
  • platform/mac/editing/selection/4975120-expected.txt:
  • platform/mac/editing/selection/select-across-readonly-input-1-expected.txt:
  • platform/mac/editing/selection/select-across-readonly-input-4-expected.txt:
  • platform/mac/editing/selection/select-across-readonly-input-5-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/fast/events/autoscroll-expected.txt:
  • platform/mac/fast/events/context-no-deselect-expected.txt:
  • platform/mac/fast/forms/input-appearance-focus-expected.txt:
  • platform/mac/fast/forms/input-appearance-readonly-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/mac/fast/forms/input-paste-undo-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-2-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/mac/fast/forms/input-text-click-inside-expected.txt:
  • platform/mac/fast/forms/input-text-double-click-expected.txt:
  • platform/mac/fast/forms/input-text-drag-down-expected.txt:
  • platform/mac/fast/forms/input-text-option-delete-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/mac/fast/forms/plaintext-mode-2-expected.txt:
  • platform/mac/fast/forms/search-rtl-expected.txt:
  • platform/mac/fast/forms/search-transformed-expected.txt:
  • platform/mac/fast/forms/search-zoomed-expected.txt:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/mac/fast/forms/textarea-scrollbar-expected.txt:
  • platform/mac/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/mac/fast/forms/textfield-focus-ring-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-expected.txt:
  • platform/mac/fast/forms/validation-message-appearance-expected.txt:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/qt/editing/inserting/4960120-1-expected.txt:
  • platform/qt/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/qt/editing/selection/4895428-3-expected.txt:
  • platform/qt/editing/selection/4975120-expected.txt:
  • platform/qt/fast/forms/input-appearance-focus-expected.txt:
  • platform/qt/fast/forms/input-appearance-readonly-expected.txt:
  • platform/qt/fast/forms/input-appearance-selection-expected.txt:
  • platform/qt/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/qt/fast/forms/input-paste-undo-expected.txt:
  • platform/qt/fast/forms/input-text-click-inside-expected.txt:
  • platform/qt/fast/forms/input-text-option-delete-expected.txt:
  • platform/qt/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/qt/fast/forms/plaintext-mode-2-expected.txt:
  • platform/qt/fast/forms/search-rtl-expected.txt:
  • platform/qt/fast/forms/search-transformed-expected.txt:
  • platform/qt/fast/forms/search-zoomed-expected.txt:
  • platform/qt/fast/forms/textfield-overflow-expected.txt:
  • platform/qt/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/qt/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/win/editing/inserting/4960120-1-expected.txt:
  • platform/win/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/win/fast/forms/input-text-drag-down-expected.txt:
  • platform/win/fast/forms/textarea-scrollbar-expected.txt:
  • platform/win/fast/forms/textarea-scrolled-type-expected.txt:

2011-05-21 Kent Tamura <tkent@chromium.org>

Reviewed by Dimitri Glazkov.

Change text-based <input> types to the new shadow DOM model
https://bugs.webkit.org/show_bug.cgi?id=54179

By this change, text field inputs and textareas have one extra
shadow node at the root of shadow trees.
e.g. Before the change:

<textarea> --(shadow-connection)-- <div> -- ...

After the change:

<textarea> --(shadow-connection)-- {#shadow-root} -- <div> -- ...

The goals of this change are

  • Change to the new shadow DOM model, and
  • Minimize the patch size.

We should use shadowPseudoId() in the new shadow DOM model, but the
shadow elements in this patch don't use it in order to reduce the patch
size.

  • css/html.css: (input::-webkit-inner-spin-button): Add vertical-align in order to avoid the button affect the baseline. (input::-webkit-outer-spin-button): ditto. (input::-webkit-input-speech-button): ditto.
  • dom/Element.cpp: (WebCore::Element::recalcStyle): Calls styleForRenderer() so that a subclass of Element can override it. (WebCore::Element::isSpellCheckingEnabled): Handle ShadowRoot, which is not an Element.
  • dom/Node.cpp: Add utility functions for editing code. (WebCore::Node::nonBoundaryShadowTreeRootNode): (WebCore::Node::nonShadowBoundaryParentNode):
  • dom/Node.h: Declare them.
  • dom/Position.cpp:
    • Add some assertions about ShadowRoot
    • Replace parentNode() with nonShadowBoundaryParentNode()

Because input/textarea shadow structures are changed.
(WebCore::Position::Position):
(WebCore::Position::containerNode):
(WebCore::Position::parentAnchoredEquivalent):
(WebCore::Position::previous):
(WebCore::Position::next):
(WebCore::Position::parentEditingBoundary):
(WebCore::Position::atStartOfTree):
(WebCore::Position::atEndOfTree):

  • dom/Position.h: ditto. (WebCore::positionInParentBeforeNode): (WebCore::positionInParentAfterNode):
  • editing/CompositeEditCommand.cpp: ditto. (WebCore::CompositeEditCommand::insertNodeAfter): (WebCore::CompositeEditCommand::removeNode):
  • editing/Editor.cpp: (WebCore::Editor::findString): ditto.
  • editing/FrameSelection.cpp: (WebCore::FrameSelection::selectAll): Inline shadowTreeRootNode() calls.
  • editing/FrameSelection.h: Remove shadowTreeRootNode(). It is used only by FrameSelection::selectAll().
  • editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): Use nonShadowBoundaryParentNode()
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::removeNode): ditto. (WebCore::ReplacementFragment::insertNodeBefore): ditto.
  • editing/VisibleSelection.cpp: Rename shadowTreeRootNode() to nonBoundaryShadowTreeRootNode(), and it reutrns a child node of ShadowRoot. (WebCore::VisibleSelection::isAll): (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
  • editing/VisibleSelection.h: ditto.
  • editing/htmlediting.cpp: Add assertions. (WebCore::visiblePositionBeforeNode): (WebCore::visiblePositionAfterNode):
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::create): Calls createShadowSubtree(). (WebCore::HTMLInputElement::createShadowSubtree): Calls InputType::createShadowSubTree(). (WebCore::HTMLInputElement::innerTextElement): Accessor of a shadow node. This is used by RenderTextControlSingleLine. (WebCore::HTMLInputElement::innerBlockElement): ditto. (WebCore::HTMLInputElement::innerSpinButtonElement): ditto. (WebCore::HTMLInputElement::outerSpinButtonElement): ditto. (WebCore::HTMLInputElement::resultsButtonElement): ditto. (WebCore::HTMLInputElement::cancelButtonElement): ditto. (WebCore::HTMLInputElement::speechButtonElement): ditto. (WebCore::HTMLInputElement::parseMappedAttribute): Rebuild shadow trees because x-webkit-speech attribute affects it.
  • html/HTMLInputElement.h: Add declarations.
  • html/HTMLIsIndexElement.cpp: (WebCore::HTMLIsIndexElement::create): Calls createShadowSubtree().
  • html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::create): Calls createShadowSubtree(). (WebCore::HTMLTextAreaElement::createShadowSubtree): Added.
  • html/HTMLTextAreaElement.h: Declare createShadowSubtree().
  • html/InputType.h: Add default implementations of accessors. (WebCore::InputType::innerBlockElement): (WebCore::InputType::innerTextElement): (WebCore::InputType::innerSpinButtonElement): (WebCore::InputType::outerSpinButtonElement): (WebCore::InputType::resultsButtonElement): (WebCore::InputType::cancelButtonElement): (WebCore::InputType::speechButtonElement):
  • html/SearchInputType.cpp: (WebCore::SearchInputType::SearchInputType): Initializes new data members. (WebCore::SearchInputType::createShadowSubtree): Moved from RenderTextControlSingleLine. (WebCore::SearchInputType::destroyShadowSubtree): Clear element references.
  • html/SearchInputType.h: Add declarations. (WebCore::SearchInputType::innerBlockElement): (WebCore::SearchInputType::resultsButtonElement): (WebCore::SearchInputType::cancelButtonElement):
  • html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::TextFieldInputType): Initializes new data members. (WebCore::TextFieldInputType::createShadowSubtree): Moved from RenderTextControlSingleLine. (WebCore::TextFieldInputType::destroyShadowSubtree): Clear element references.
  • html/TextFieldInputType.h: Add declarations. (WebCore::TextFieldInputType::innerTextElement): (WebCore::TextFieldInputType::innerSpinButtonElement): (WebCore::TextFieldInputType::outerSpinButtonElement): (WebCore::TextFieldInputType::speechButtonElement): (WebCore::TextFieldInputType::setInnerTextElement): (WebCore::TextFieldInputType::setSpeechButtonElement):
  • html/shadow/TextControlInnerElements.cpp: (WebCore::TextControlInnerElement::TextControlInnerElement): Remove shadowParent parameter. It is unnecessary because we switch to new shadow model. (WebCore::TextControlInnerElement::create): Change the parameter type to Document. (WebCore::TextControlInnerElement::styleForRenderer): Override this in order to set style by RenderTextControlSingleLine::createInnerBlockStyle(). (WebCore::TextControlInnerTextElement::TextControlInnerTextElement): Remove shadowParent parameter. Inherit HTMLDivElement, not TextControlInnerElement. (WebCore::TextControlInnerTextElement::create): Remove shadowParent parameter. (WebCore::TextControlInnerTextElement::styleForRenderer): Override this in order to set style by RenderTextControlSingleLine::createInnerTextStyle(). (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement): Inherit HTMLDivElement, not TextControlInnerElement. (WebCore::SearchFieldResultsButtonElement::styleForRenderer): Override this in order to set style by RenderTextControlSingleLine::createResultButtonStyle(). (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): Inherit HTMLDivElement, not TextControlInnerElement. (WebCore::SearchFieldCancelButtonElement::styleForRenderer): Override this in order to set style by RenderTextControlSingleLine::createCancelButtonStyle(). (WebCore::SearchFieldCancelButtonElement::detach): Update for the parent class change. (WebCore::SpinButtonElement::SpinButtonElement):
    • Change the parameter type: shadowParent -> Document
    • Add the inner flag
    • Inherit HTMLDivElement, not TextControlInnerElement.

(WebCore::SpinButtonElement::createInner): Introduce a new factory

method to hide a bool parameter of the constructor.

(WebCore::SpinButtonElement::createOuter): ditto.
(WebCore::SpinButtonElement::styleForRenderer):

Override this in order to set style by
RenderTextControlSingleLine::createInnerSpinButtonStyle() or
createOuterSpinButtonStyle().

(WebCore::SpinButtonElement::detach): Update for the parent class change.
(WebCore::SpinButtonElement::setHovered): ditto.
(WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):

  • Change the parameter type: shadowParent -> Document
  • Inherit HTMLDivElement, not TextControlInnerElement.
  • Do not register this as a speech input listener here.

(WebCore::InputFieldSpeechButtonElement::create):

Update for the parameter change.

(WebCore::InputFieldSpeechButtonElement::defaultEventHandler):

Do not handle click event if listener registration is not done.

(WebCore::InputFieldSpeechButtonElement::attach):

Register this as a speech input listener.

(WebCore::InputFieldSpeechButtonElement::detach):

Update for the parent class change.

(WebCore::InputFieldSpeechButtonElement::styleForRenderer):

Override this in order to set style by
RenderTextControlSingleLine::createSpeechButtonStyle().

  • html/shadow/TextControlInnerElements.h: (WebCore::TextControlInnerTextElement::isMouseFocusable): Add this because the class is not a subclass of TextControllInnerElement. (WebCore::SearchFieldResultsButtonElement::isMouseFocusable): ditto. (WebCore::SearchFieldCancelButtonElement::isMouseFocusable): ditto. (WebCore::SpinButtonElement::isMouseFocusable): ditto. (WebCore::InputFieldSpeechButtonElement::isMouseFocusable): ditto.
  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::~RenderTextControl): Remove unnecessary code. (WebCore::RenderTextControl::styleDidChange): innerTextElement can have no renderer. Explicitly call setNeedsStyleRecals() for innerTextElement. It is needed for LayoutTests/editing/selection/select-across-readonly-input-*.html. (WebCore::RenderTextControl::textBlockWidth): Member data -> function (WebCore::RenderTextControl::updateFromElement): ditto. (WebCore::RenderTextControl::setInnerTextValue): ditto. (WebCore::RenderTextControl::hasVisibleTextArea): ditto. (WebCore::RenderTextControl::isSelectableElement): ditto. (WebCore::RenderTextControl::selection): ditto. (WebCore::RenderTextControl::visiblePositionForIndex): ditto. (WebCore::RenderTextControl::indexForVisiblePosition): ditto. (WebCore::RenderTextControl::text): ditto. (WebCore::RenderTextControl::textWithHardLineBreaks): ditto. (WebCore::RenderTextControl::computeLogicalHeight): ditto. (WebCore::RenderTextControl::hitInnerTextElement): ditto. (WebCore::RenderTextControl::forwardEvent): ditto. (WebCore::RenderTextControl::computePreferredLogicalWidths): ditto.
  • rendering/RenderTextControl.h:
    • Make m_innerText virtual function.
    • Make createInnerTextStyle() public in order that TextControlInnerElements can call it.
  • rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::innerTextElement): Added. (WebCore::RenderTextControlMultiLine::updateFromElement): Remove unnecessary createSubtreeIfNeeded() call.
  • rendering/RenderTextControlMultiLine.h: Add a declaration.
  • rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine): Remove unnecessary code. (WebCore::RenderTextControlSingleLine::innerTextElement): Added. (WebCore::RenderTextControlSingleLine::innerBlockElement): Added. (WebCore::RenderTextControlSingleLine::innerSpinButtonElement): Added. (WebCore::RenderTextControlSingleLine::outerSpinButtonElement): Added. (WebCore::RenderTextControlSingleLine::resultsButtonElement): Added. (WebCore::RenderTextControlSingleLine::cancelButtonElement): Added. (WebCore::RenderTextControlSingleLine::speechButtonElement): Added. (WebCore::RenderTextControlSingleLine::textBaseStyle): Data member -> function (WebCore::RenderTextControlSingleLine::subtreeHasChanged): ditto. (WebCore::RenderTextControlSingleLine::layout): ditto. (WebCore::RenderTextControlSingleLine::nodeAtPoint): ditto. (WebCore::RenderTextControlSingleLine::forwardEvent): ditto. (WebCore::RenderTextControlSingleLine::styleDidChange): ditto. (WebCore::RenderTextControlSingleLine::hasControlClip): ditto. (WebCore::RenderTextControlSingleLine::controlClipRect): ditto. (WebCore::RenderTextControlSingleLine::textBlockWidth): ditto. (WebCore::RenderTextControlSingleLine::decorationWidthRight): ditto. (WebCore::RenderTextControlSingleLine::preferredContentWidth): ditto. (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight): ditto. (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight): ditto. (WebCore::RenderTextControlSingleLine::updateFromElement): ditto, and remove unnecessary createSubtreeIfNeeded() call. (WebCore::RenderTextControlSingleLine::createInnerTextStyle): Data member -> function (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility): ditto. (WebCore::RenderTextControlSingleLine::clientPaddingLeft): ditto. (WebCore::RenderTextControlSingleLine::clientPaddingRight): ditto. (WebCore::RenderTextControlSingleLine::textBlockInsetTop): ditto.
  • rendering/RenderTextControlSingleLine.h: Add declarations, and remove unnecessary data members.
Location:
trunk
Files:
206 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r87012 r87014  
     12011-05-21  Kent Tamura  <tkent@chromium.org>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Change text-based <input> types to the new shadow DOM model
     6        https://bugs.webkit.org/show_bug.cgi?id=54179
     7
     8        Update test results because the shadow tree structure of <input> and
     9        <textarea> is changed.
     10
     11        * editing/deleting/delete-all-text-in-text-field-assertion-expected.txt:
     12        * editing/deleting/delete-ligature-001-expected.txt:
     13        * editing/pasteboard/copy-in-password-field-expected.txt:
     14        * editing/selection/select-all-textarea-expected.txt:
     15        * fast/events/5056619-expected.txt:
     16        * fast/forms/focus-selection-input-expected.txt:
     17        * fast/forms/focus-selection-textarea-expected.txt:
     18        * platform/chromium-linux/editing/selection/select-across-readonly-input-1-expected.txt:
     19        * platform/chromium-linux/editing/selection/select-across-readonly-input-4-expected.txt:
     20        * platform/chromium-linux/editing/selection/select-across-readonly-input-5-expected.txt:
     21        * platform/chromium-linux/editing/selection/select-from-textfield-outwards-expected.txt:
     22        * platform/chromium-linux/fast/forms/input-readonly-autoscroll-expected.txt:
     23        * platform/chromium-linux/fast/forms/input-text-double-click-expected.txt:
     24        * platform/chromium-linux/fast/forms/textfield-outline-expected.txt:
     25        * platform/chromium-linux/fast/forms/validation-message-appearance-expected.txt:
     26        * platform/chromium-win/editing/inserting/4960120-1-expected.txt:
     27        * platform/chromium-win/editing/pasteboard/drop-text-without-selection-expected.txt:
     28        * platform/chromium-win/editing/pasteboard/pasting-tabs-expected.txt:
     29        * platform/chromium-win/editing/selection/4895428-3-expected.txt:
     30        * platform/chromium-win/editing/selection/4975120-expected.txt:
     31        * platform/chromium-win/editing/selection/select-across-readonly-input-1-expected.txt:
     32        * platform/chromium-win/editing/selection/select-across-readonly-input-4-expected.txt:
     33        * platform/chromium-win/editing/selection/select-across-readonly-input-5-expected.txt:
     34        * platform/chromium-win/editing/selection/select-from-textfield-outwards-expected.txt:
     35        * platform/chromium-win/fast/events/autoscroll-expected.txt:
     36        * platform/chromium-win/fast/events/context-no-deselect-expected.txt:
     37        * platform/chromium-win/fast/forms/input-appearance-focus-expected.txt:
     38        * platform/chromium-win/fast/forms/input-appearance-readonly-expected.txt:
     39        * platform/chromium-win/fast/forms/input-appearance-selection-expected.txt:
     40        * platform/chromium-win/fast/forms/input-double-click-selection-gap-bug-expected.txt:
     41        * platform/chromium-win/fast/forms/input-paste-undo-expected.txt:
     42        * platform/chromium-win/fast/forms/input-placeholder-visibility-1-expected.txt:
     43        * platform/chromium-win/fast/forms/input-placeholder-visibility-2-expected.txt:
     44        * platform/chromium-win/fast/forms/input-placeholder-visibility-3-expected.txt:
     45        * platform/chromium-win/fast/forms/input-readonly-autoscroll-expected.txt:
     46        * platform/chromium-win/fast/forms/input-text-click-inside-expected.txt:
     47        * platform/chromium-win/fast/forms/input-text-double-click-expected.txt:
     48        * platform/chromium-win/fast/forms/input-text-drag-down-expected.txt:
     49        * platform/chromium-win/fast/forms/input-text-option-delete-expected.txt:
     50        * platform/chromium-win/fast/forms/input-text-scroll-left-on-blur-expected.txt:
     51        * platform/chromium-win/fast/forms/input-text-self-emptying-click-expected.txt:
     52        * platform/chromium-win/fast/forms/plaintext-mode-2-expected.txt:
     53        * platform/chromium-win/fast/forms/search-rtl-expected.txt:
     54        * platform/chromium-win/fast/forms/search-zoomed-expected.txt:
     55        * platform/chromium-win/fast/forms/tabbing-input-iframe-expected.txt:
     56        * platform/chromium-win/fast/forms/textarea-placeholder-visibility-1-expected.txt:
     57        * platform/chromium-win/fast/forms/textarea-placeholder-visibility-2-expected.txt:
     58        * platform/chromium-win/fast/forms/textarea-scrollbar-expected.txt:
     59        * platform/chromium-win/fast/forms/textarea-scrolled-type-expected.txt:
     60        * platform/chromium-win/fast/forms/textfield-focus-ring-expected.txt:
     61        * platform/chromium-win/fast/forms/textfield-outline-expected.txt:
     62        * platform/chromium-win/fast/forms/textfield-overflow-expected.txt:
     63        * platform/chromium-win/fast/forms/validation-message-appearance-expected.txt:
     64        * platform/chromium-win/fast/frames/take-focus-from-iframe-expected.txt:
     65        * platform/chromium-win/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
     66        * platform/chromium-win/fast/transforms/transformed-focused-text-input-expected.txt:
     67        * platform/chromium/test_expectations.txt:
     68        * platform/gtk/editing/inserting/4960120-1-expected.txt:
     69        * platform/gtk/editing/pasteboard/drop-text-without-selection-expected.txt:
     70        * platform/gtk/editing/pasteboard/pasting-tabs-expected.txt:
     71        * platform/gtk/editing/selection/4895428-3-expected.txt:
     72        * platform/gtk/editing/selection/4975120-expected.txt:
     73        * platform/gtk/editing/selection/select-across-readonly-input-1-expected.txt:
     74        * platform/gtk/editing/selection/select-across-readonly-input-4-expected.txt:
     75        * platform/gtk/editing/selection/select-across-readonly-input-5-expected.txt:
     76        * platform/gtk/editing/selection/select-from-textfield-outwards-expected.txt:
     77        * platform/gtk/fast/events/autoscroll-expected.txt:
     78        * platform/gtk/fast/events/context-no-deselect-expected.txt:
     79        * platform/gtk/fast/forms/input-appearance-focus-expected.txt:
     80        * platform/gtk/fast/forms/input-appearance-readonly-expected.txt:
     81        * platform/gtk/fast/forms/input-appearance-selection-expected.txt:
     82        * platform/gtk/fast/forms/input-double-click-selection-gap-bug-expected.txt:
     83        * platform/gtk/fast/forms/input-paste-undo-expected.txt:
     84        * platform/gtk/fast/forms/input-placeholder-visibility-1-expected.txt:
     85        * platform/gtk/fast/forms/input-placeholder-visibility-2-expected.txt:
     86        * platform/gtk/fast/forms/input-placeholder-visibility-3-expected.txt:
     87        * platform/gtk/fast/forms/input-readonly-autoscroll-expected.txt:
     88        * platform/gtk/fast/forms/input-text-click-inside-expected.txt:
     89        * platform/gtk/fast/forms/input-text-double-click-expected.txt:
     90        * platform/gtk/fast/forms/input-text-drag-down-expected.txt:
     91        * platform/gtk/fast/forms/input-text-option-delete-expected.txt:
     92        * platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt:
     93        * platform/gtk/fast/forms/input-text-self-emptying-click-expected.txt:
     94        * platform/gtk/fast/forms/plaintext-mode-2-expected.txt:
     95        * platform/gtk/fast/forms/search-rtl-expected.txt:
     96        * platform/gtk/fast/forms/search-transformed-expected.txt:
     97        * platform/gtk/fast/forms/search-zoomed-expected.txt:
     98        * platform/gtk/fast/forms/tabbing-input-iframe-expected.txt:
     99        * platform/gtk/fast/forms/textarea-placeholder-visibility-1-expected.txt:
     100        * platform/gtk/fast/forms/textarea-placeholder-visibility-2-expected.txt:
     101        * platform/gtk/fast/forms/textarea-scrollbar-expected.txt:
     102        * platform/gtk/fast/forms/textarea-scrolled-type-expected.txt:
     103        * platform/gtk/fast/forms/textfield-focus-ring-expected.txt:
     104        * platform/gtk/fast/forms/textfield-outline-expected.txt:
     105        * platform/gtk/fast/forms/textfield-overflow-expected.txt:
     106        * platform/gtk/fast/frames/take-focus-from-iframe-expected.txt:
     107        * platform/gtk/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
     108        * platform/gtk/fast/transforms/transformed-focused-text-input-expected.txt:
     109        * platform/mac-snowleopard/fast/forms/input-placeholder-visibility-1-expected.txt:
     110        * platform/mac-snowleopard/fast/forms/input-placeholder-visibility-2-expected.txt:
     111        * platform/mac-snowleopard/fast/forms/input-placeholder-visibility-3-expected.txt:
     112        * platform/mac-wk2/editing/selection/select-across-readonly-input-1-expected.txt:
     113        * platform/mac-wk2/editing/selection/select-across-readonly-input-4-expected.txt:
     114        * platform/mac-wk2/editing/selection/select-across-readonly-input-5-expected.txt:
     115        * platform/mac/editing/inserting/4960120-1-expected.txt:
     116        * platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
     117        * platform/mac/editing/pasteboard/pasting-tabs-expected.txt:
     118        * platform/mac/editing/selection/4895428-3-expected.txt:
     119        * platform/mac/editing/selection/4975120-expected.txt:
     120        * platform/mac/editing/selection/select-across-readonly-input-1-expected.txt:
     121        * platform/mac/editing/selection/select-across-readonly-input-4-expected.txt:
     122        * platform/mac/editing/selection/select-across-readonly-input-5-expected.txt:
     123        * platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
     124        * platform/mac/fast/events/autoscroll-expected.txt:
     125        * platform/mac/fast/events/context-no-deselect-expected.txt:
     126        * platform/mac/fast/forms/input-appearance-focus-expected.txt:
     127        * platform/mac/fast/forms/input-appearance-readonly-expected.txt:
     128        * platform/mac/fast/forms/input-appearance-selection-expected.txt:
     129        * platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
     130        * platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
     131        * platform/mac/fast/forms/input-paste-undo-expected.txt:
     132        * platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
     133        * platform/mac/fast/forms/input-placeholder-visibility-2-expected.txt:
     134        * platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
     135        * platform/mac/fast/forms/input-readonly-autoscroll-expected.txt:
     136        * platform/mac/fast/forms/input-text-click-inside-expected.txt:
     137        * platform/mac/fast/forms/input-text-double-click-expected.txt:
     138        * platform/mac/fast/forms/input-text-drag-down-expected.txt:
     139        * platform/mac/fast/forms/input-text-option-delete-expected.txt:
     140        * platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
     141        * platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
     142        * platform/mac/fast/forms/plaintext-mode-2-expected.txt:
     143        * platform/mac/fast/forms/search-rtl-expected.txt:
     144        * platform/mac/fast/forms/search-transformed-expected.txt:
     145        * platform/mac/fast/forms/search-zoomed-expected.txt:
     146        * platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
     147        * platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt:
     148        * platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt:
     149        * platform/mac/fast/forms/textarea-scrollbar-expected.txt:
     150        * platform/mac/fast/forms/textarea-scrolled-type-expected.txt:
     151        * platform/mac/fast/forms/textfield-focus-ring-expected.txt:
     152        * platform/mac/fast/forms/textfield-outline-expected.txt:
     153        * platform/mac/fast/forms/textfield-overflow-expected.txt:
     154        * platform/mac/fast/forms/validation-message-appearance-expected.txt:
     155        * platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
     156        * platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
     157        * platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
     158        * platform/qt/editing/inserting/4960120-1-expected.txt:
     159        * platform/qt/editing/pasteboard/pasting-tabs-expected.txt:
     160        * platform/qt/editing/selection/4895428-3-expected.txt:
     161        * platform/qt/editing/selection/4975120-expected.txt:
     162        * platform/qt/fast/forms/input-appearance-focus-expected.txt:
     163        * platform/qt/fast/forms/input-appearance-readonly-expected.txt:
     164        * platform/qt/fast/forms/input-appearance-selection-expected.txt:
     165        * platform/qt/fast/forms/input-double-click-selection-gap-bug-expected.txt:
     166        * platform/qt/fast/forms/input-paste-undo-expected.txt:
     167        * platform/qt/fast/forms/input-text-click-inside-expected.txt:
     168        * platform/qt/fast/forms/input-text-option-delete-expected.txt:
     169        * platform/qt/fast/forms/input-text-self-emptying-click-expected.txt:
     170        * platform/qt/fast/forms/plaintext-mode-2-expected.txt:
     171        * platform/qt/fast/forms/search-rtl-expected.txt:
     172        * platform/qt/fast/forms/search-transformed-expected.txt:
     173        * platform/qt/fast/forms/search-zoomed-expected.txt:
     174        * platform/qt/fast/forms/textfield-overflow-expected.txt:
     175        * platform/qt/fast/frames/take-focus-from-iframe-expected.txt:
     176        * platform/qt/fast/transforms/transformed-focused-text-input-expected.txt:
     177        * platform/win/editing/inserting/4960120-1-expected.txt:
     178        * platform/win/editing/selection/select-from-textfield-outwards-expected.txt:
     179        * platform/win/fast/forms/input-text-drag-down-expected.txt:
     180        * platform/win/fast/forms/textarea-scrollbar-expected.txt:
     181        * platform/win/fast/forms/textarea-scrolled-type-expected.txt:
     182
    11832011-05-21  Kent Tamura  <tkent@chromium.org>
    2184
  • trunk/LayoutTests/editing/deleting/delete-all-text-in-text-field-assertion-expected.txt

    r80121 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    2 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 1 of #text > DIV toDOMRange:range from 0 of #text > DIV to 1 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    3 EDITING DELEGATE: shouldDeleteDOMRange:range from 0 of #text > DIV to 1 of #text > DIV
     2EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 1 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 1 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldDeleteDOMRange:range from 0 of #text > DIV > #shadow-root to 1 of #text > DIV > #shadow-root
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    6 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV to 0 of DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     6EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    77EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    88EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
  • trunk/LayoutTests/editing/deleting/delete-ligature-001-expected.txt

    r80121 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV to 0 of DIV toDOMRange:range from 1 of #text > DIV to 1 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 1 of #text > DIV > #shadow-root to 1 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    55EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV to 2 of #text > DIV toDOMRange:range from 2 of #text > DIV to 2 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #shadow-root to 2 of #text > DIV > #shadow-root toDOMRange:range from 2 of #text > DIV > #shadow-root to 2 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    99EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
    10 EDITING DELEGATE: shouldDeleteDOMRange:range from 1 of #text > DIV to 2 of #text > DIV
     10EDITING DELEGATE: shouldDeleteDOMRange:range from 1 of #text > DIV > #shadow-root to 2 of #text > DIV > #shadow-root
    1111EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    1212EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
  • trunk/LayoutTests/editing/pasteboard/copy-in-password-field-expected.txt

    r80121 r87014  
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    6 EDITING DELEGATE: shouldInsertText:[not modified] replacingDOMRange:range from 0 of #text > DIV to 14 of #text > DIV givenAction:WebViewInsertActionPasted
     6EDITING DELEGATE: shouldInsertText:[not modified] replacingDOMRange:range from 0 of #text > DIV > #shadow-root to 14 of #text > DIV > #shadow-root givenAction:WebViewInsertActionPasted
    77EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    9 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 14 of #text > DIV toDOMRange:range from 14 of #text > DIV to 14 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     9EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 14 of #text > DIV > #shadow-root toDOMRange:range from 14 of #text > DIV > #shadow-root to 14 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1010EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    1111EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
  • trunk/LayoutTests/editing/selection/select-all-textarea-expected.txt

    r34900 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    2 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 0 of #text > DIV toDOMRange:range from 0 of #text > DIV to 28 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     2EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 28 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    33EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    44This tests that select all works in a readonly textarea, without selecting the surrounding text.
  • trunk/LayoutTests/fast/events/5056619-expected.txt

    r67678 r87014  
    33EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 3 of #text > SPAN > BODY > HTML > #document to 3 of #text > SPAN > BODY > HTML > #document toDOMRange:range from 0 of #text > SPAN > BODY > HTML > #document to 6 of #text > SPAN > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    5 EDITING DELEGATE: shouldInsertText:Dragme replacingDOMRange:range from 0 of DIV to 0 of DIV givenAction:WebViewInsertActionDropped
     5EDITING DELEGATE: shouldInsertText:Dragme replacingDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root givenAction:WebViewInsertActionDropped
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    77EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
  • trunk/LayoutTests/fast/forms/focus-selection-input-expected.txt

    r34259 r87014  
    55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of #text > DIV to 0 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    99EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
  • trunk/LayoutTests/fast/forms/focus-selection-textarea-expected.txt

    r34259 r87014  
    55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of #text > DIV to 0 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    99EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
  • trunk/LayoutTests/platform/chromium-linux/editing/selection/select-across-readonly-input-1-expected.txt

    r85678 r87014  
    2323    RenderText {#text} at (1,0) size 32x18
    2424      text run at (1,0) width 32: "hello"
    25 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     25caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/chromium-linux/editing/selection/select-across-readonly-input-4-expected.txt

    r85678 r87014  
    3030    RenderText {#text} at (1,0) size 52x18
    3131      text run at (1,0) width 52: "WebKit"
    32 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     32caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/chromium-linux/editing/selection/select-across-readonly-input-5-expected.txt

    r85678 r87014  
    3030    RenderText {#text} at (1,0) size 52x18
    3131      text run at (1,0) width 52: "WebKit"
    32 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
    33 selection end:   position 2 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
     32selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
     33selection end:   position 2 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/chromium-linux/editing/selection/select-from-textfield-outwards-expected.txt

    r81110 r87014  
    1 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 11 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     1EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 11 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 11 of #text > DIV toDOMRange:range from 11 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    5 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 12 of #text > DIV toDOMRange:range from 0 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     5EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 12 of #text > DIV toDOMRange:range from 11 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    9 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 17 of #text > DIV toDOMRange:range from 0 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     9EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1010EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    11 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 12 of #text > DIV toDOMRange:range from 11 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     11EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1212EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    1313layer at (0,0) size 800x600
     
    4747    RenderText {#text} at (1,0) size 200x27
    4848      text run at (1,0) width 200: "Lorem ipsum dolor"
    49 selection start: position 11 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    50 selection end:   position 17 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     49selection start: position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     50selection end:   position 17 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-linux/fast/forms/input-readonly-autoscroll-expected.txt

    r85678 r87014  
    2626    RenderText {#text} at (1,0) size 164x16
    2727      text run at (1,0) width 164: "abcdefghijklmnopqrstuvwxyz"
    28 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
    29 selection end:   position 26 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
     28selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
     29selection end:   position 26 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-linux/fast/forms/input-text-double-click-expected.txt

    r63295 r87014  
    1414    RenderText {#text} at (1,0) size 74x16
    1515      text run at (1,0) width 74: "word another"
    16 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 4 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-linux/fast/forms/textfield-outline-expected.txt

    r63432 r87014  
    1313    RenderText {#text} at (1,0) size 32x23
    1414      text run at (1,0) width 32: "abc"
    15 caret: position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-linux/fast/forms/validation-message-appearance-expected.txt

    r86399 r87014  
    3333layer at (42,32) size 18x18 backgroundClip at (10,32) size 220x16 clip at (10,32) size 220x16 outlineClip at (10,32) size 220x16
    3434  RenderBlock (relative positioned) zI: 2147483645 {DIV} at (0,0) size 18x18 [bgcolor=#F8ECEC] [border: (2px solid #440000) none (2px solid #440000)]
    35 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 0 {FORM} of body
     35caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 0 {FORM} of body
  • trunk/LayoutTests/platform/chromium-win/editing/inserting/4960120-1-expected.txt

    r63295 r87014  
    1717      RenderText {#text} at (0,16) size 0x16
    1818        text run at (0,16) width 0: " "
    19 caret: position 0 of child 1 {#text} of child 0 {DIV} of child 2 {TEXTAREA} of body
     19caret: position 0 of child 1 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {TEXTAREA} of body
  • trunk/LayoutTests/platform/chromium-win/editing/pasteboard/drop-text-without-selection-expected.txt

    r69281 r87014  
    1 EDITING DELEGATE: shouldInsertText:http://www.ibm.com/ replacingDOMRange:range from 0 of DIV to 0 of DIV givenAction:WebViewInsertActionDropped
     1EDITING DELEGATE: shouldInsertText:http://www.ibm.com/ replacingDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root givenAction:WebViewInsertActionDropped
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV to 0 of DIV toDOMRange:range from 0 of #text > DIV to 19 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 19 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    55EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
     
    4040    RenderText {#text} at (1,0) size 119x16
    4141      text run at (1,0) width 119: "http://www.ibm.com/"
    42 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    43 selection end:   position 19 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     42selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     43selection end:   position 19 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/editing/pasteboard/pasting-tabs-expected.txt

    r63295 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    2 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 0 of #text > DIV toDOMRange:range from 0 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     2EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    33EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    44EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document
  • trunk/LayoutTests/platform/chromium-win/editing/selection/4895428-3-expected.txt

    r63295 r87014  
    2424layer at (12,109) size 151x16
    2525  RenderBlock {DIV} at (2,3) size 151x16
    26 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 2 {DIV} of body
     26caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 2 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/editing/selection/4975120-expected.txt

    r63295 r87014  
    2424    RenderText {#text} at (1,0) size 17x16
    2525      text run at (1,0) width 17: "foo"
    26 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
    27 selection end:   position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     26selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
     27selection end:   position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/editing/selection/select-across-readonly-input-1-expected.txt

    r85682 r87014  
    2323    RenderText {#text} at (1,0) size 32x18
    2424      text run at (1,0) width 32: "hello"
    25 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     25caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/editing/selection/select-across-readonly-input-4-expected.txt

    r85682 r87014  
    3030    RenderText {#text} at (1,0) size 52x18
    3131      text run at (1,0) width 52: "WebKit"
    32 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     32caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/editing/selection/select-across-readonly-input-5-expected.txt

    r85682 r87014  
    3030    RenderText {#text} at (1,0) size 52x18
    3131      text run at (1,0) width 52: "WebKit"
    32 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
    33 selection end:   position 2 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
     32selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
     33selection end:   position 2 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/editing/selection/select-from-textfield-outwards-expected.txt

    r81110 r87014  
    1 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 11 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     1EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 11 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 11 of #text > DIV toDOMRange:range from 11 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    5 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 12 of #text > DIV toDOMRange:range from 0 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     5EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 12 of #text > DIV toDOMRange:range from 11 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    9 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 17 of #text > DIV toDOMRange:range from 0 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     9EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1010EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    11 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 12 of #text > DIV toDOMRange:range from 11 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     11EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1212EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    1313layer at (0,0) size 800x600
     
    4747    RenderText {#text} at (1,0) size 200x27
    4848      text run at (1,0) width 200: "Lorem ipsum dolor"
    49 selection start: position 11 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    50 selection end:   position 17 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     49selection start: position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     50selection end:   position 17 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/events/autoscroll-expected.txt

    r63295 r87014  
    2727    RenderText {#text} at (1,0) size 136x16
    2828      text run at (1,0) width 136: "select some of this text"
    29 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    30 selection end:   position 14 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     29selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     30selection end:   position 14 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
    3131scrolled to 0,2578
  • trunk/LayoutTests/platform/chromium-win/fast/events/context-no-deselect-expected.txt

    r69281 r87014  
    1111    RenderText {#text} at (1,0) size 104x16
    1212      text run at (1,0) width 104: "some sample text"
    13 selection start: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of body
    14 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of body
     13selection start: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
     14selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-appearance-focus-expected.txt

    r63295 r87014  
    3232    RenderText {#text} at (1,0) size 90x16
    3333      text run at (1,0) width 90: "My Text Field 2"
    34 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
    35 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
     34selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
     35selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-appearance-readonly-expected.txt

    r69281 r87014  
    1313    RenderText {#text} at (1,0) size 73x16
    1414      text run at (1,0) width 73: "Test Passed"
    15 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
    16 selection end:   position 11 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
     15selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
     16selection end:   position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-appearance-selection-expected.txt

    r63295 r87014  
    7979    RenderText {#text} at (1,0) size 148x16
    8080      text run at (1,0) width 148: "123456789 ABCDEFGHIJ"
    81 selection start: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
    82 selection end:   position 12 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
     81selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
     82selection end:   position 12 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-double-click-selection-gap-bug-expected.txt

    r63295 r87014  
    2828    RenderText {#text} at (1,0) size 39x16
    2929      text run at (1,0) width 39: "foo bar"
    30 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
    31 selection end:   position 7 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     30selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     31selection end:   position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-paste-undo-expected.txt

    r63295 r87014  
    1818layer at (12,73) size 151x16
    1919  RenderBlock {DIV} at (2,3) size 151x16
    20 caret: position 0 of child 0 {DIV} of child 4 {INPUT} of body
     20caret: position 0 of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-placeholder-visibility-1-expected.txt

    r77646 r87014  
    1313layer at (12,49) size 151x16
    1414  RenderBlock {DIV} at (2,3) size 151x16
    15 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-placeholder-visibility-2-expected.txt

    r77646 r87014  
    1515    RenderText {#text} at (1,0) size 25x16
    1616      text run at (1,0) width 25: "Text"
    17 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     17caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-placeholder-visibility-3-expected.txt

    r77646 r87014  
    1414  RenderBlock {DIV} at (2,3) size 151x16
    1515    RenderBR {BR} at (1,0) size 0x16
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-readonly-autoscroll-expected.txt

    r85682 r87014  
    2626    RenderText {#text} at (1,0) size 164x16
    2727      text run at (1,0) width 164: "abcdefghijklmnopqrstuvwxyz"
    28 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
    29 selection end:   position 26 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
     28selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
     29selection end:   position 26 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-text-click-inside-expected.txt

    r63295 r87014  
    1212layer at (37,38) size 151x16
    1313  RenderBlock {DIV} at (2,3) size 151x16
    14 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of child 0 {DIV} of body
     14caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of child 0 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-text-double-click-expected.txt

    r63295 r87014  
    1414    RenderText {#text} at (1,0) size 74x16
    1515      text run at (1,0) width 74: "word another"
    16 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 5 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-text-drag-down-expected.txt

    r63295 r87014  
    1414    RenderText {#text} at (1,0) size 132x16
    1515      text run at (1,0) width 132: "This is a bunch of text."
    16 selection start: position 7 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 24 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 24 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-text-option-delete-expected.txt

    r63295 r87014  
    1414    RenderText {#text} at (1,0) size 31x16
    1515      text run at (1,0) width 31: "word "
    16 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-text-scroll-left-on-blur-expected.txt

    r63295 r87014  
    2929    RenderText {#text} at (1,0) size 337x16
    3030      text run at (1,0) width 337: "this text field has a lot of text in it so that it needs to scroll"
    31 caret: position 66 of child 0 {#text} of child 0 {DIV} of child 4 {INPUT} of body
     31caret: position 66 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/input-text-self-emptying-click-expected.txt

    r63295 r87014  
    1313layer at (12,13) size 151x16
    1414  RenderBlock {DIV} at (2,3) size 151x16
    15 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/plaintext-mode-2-expected.txt

    r63295 r87014  
    3939    RenderText {#text} at (1,0) size 511x16
    4040      text run at (1,0) width 511: "This styled text, and link will be pasted into the textfield. All richness should be stripped."
    41 caret: position 94 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     41caret: position 94 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/search-rtl-expected.txt

    r63295 r87014  
    5757layer at (36,101) size 116x16
    5858  RenderBlock {DIV} at (23,0) size 116x16
    59 caret: position 0 of child 1 {DIV} of child 0 {DIV} of child 9 {INPUT} of child 3 {P} of body
     59caret: position 0 of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 9 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/search-zoomed-expected.txt

    r63295 r87014  
    2828    RenderText {#text} at (1,0) size 109x18
    2929      text run at (1,0) width 109: "Some other text"
    30 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     30caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/tabbing-input-iframe-expected.txt

    r69281 r87014  
    2626    RenderText {#text} at (1,0) size 131x16
    2727      text run at (1,0) width 131: "This should have focus"
    28 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    29 selection end:   position 22 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     28selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     29selection end:   position 22 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textarea-placeholder-visibility-1-expected.txt

    r77646 r87014  
    1414    RenderBlock {DIV} at (3,3) size 175x16
    1515      RenderBR {BR} at (0,0) size 0x16
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {TEXTAREA} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {TEXTAREA} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textarea-placeholder-visibility-2-expected.txt

    r77646 r87014  
    1313  RenderTextControl {TEXTAREA} at (2,2) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    1414    RenderBlock {DIV} at (3,3) size 175x16
    15 caret: position 0 of child 0 {DIV} of child 1 {TEXTAREA} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {TEXTAREA} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textarea-scrollbar-expected.txt

    r69281 r87014  
    3838      RenderText {#text} at (0,128) size 0x16
    3939        text run at (0,128) width 0: " "
    40 caret: position 0 of child 9 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     40caret: position 0 of child 9 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textarea-scrolled-type-expected.txt

    r63295 r87014  
    5757        text run at (16,304) width 0: " "
    5858      RenderBR {BR} at (0,320) size 0x16
    59 caret: position 49 of child 0 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     59caret: position 49 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textfield-focus-ring-expected.txt

    r69778 r87014  
    1313layer at (12,69) size 151x16
    1414  RenderBlock {DIV} at (2,3) size 151x16
    15 caret: position 0 of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textfield-outline-expected.txt

    r69281 r87014  
    1313    RenderText {#text} at (1,0) size 32x23
    1414      text run at (1,0) width 32: "abc"
    15 caret: position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/textfield-overflow-expected.txt

    r73401 r87014  
    99layer at (12,11) size 151x4 scrollHeight 16
    1010  RenderBlock {DIV} at (2,3) size 151x4
    11 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of body
     11caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/chromium-win/fast/forms/validation-message-appearance-expected.txt

    r82391 r87014  
    3333layer at (44,29) size 18x18 backgroundClip at (12,29) size 220x16 clip at (12,29) size 220x16 outlineClip at (12,29) size 220x16
    3434  RenderBlock (relative positioned) zI: 2147483645 {DIV} at (0,0) size 18x18 [bgcolor=#F8ECEC] [border: (2px solid #440000) none (2px solid #440000)]
    35 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 0 {FORM} of body
     35caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 0 {FORM} of body
  • trunk/LayoutTests/platform/chromium-win/fast/frames/take-focus-from-iframe-expected.txt

    r63295 r87014  
    2323    RenderText {#text} at (1,0) size 36x16
    2424      text run at (1,0) width 36: "PASS"
    25 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     25caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/chromium-win/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt

    r75116 r87014  
    1414layer at (12,13) size 151x16
    1515  RenderBlock {DIV} at (2,3) size 151x16
    16 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     16caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/chromium-win/fast/transforms/transformed-focused-text-input-expected.txt

    r63295 r87014  
    1010layer at (12,13) size 151x16
    1111  RenderBlock {DIV} at (2,3) size 151x16
    12 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     12caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/chromium/test_expectations.txt

    r87002 r87014  
    35283528// Slow test, flaky on linux debug.
    35293529BUGCR79859 LINUX DEBUG : fast/css/create_element_align.xhtml = PASS TIMEOUT
    3530 
    35313530
    35323531// line height may be incorrect
     
    40894088// Flaky on Linux
    40904089BUGCR82891 LINUX : fast/speech/input-appearance-numberandspeech.html = IMAGE+TEXT PASS
    4091 BUGCR82891 LINUX : fast/speech/input-appearance-searchandspeech.html = IMAGE+TEXT PASS
     4090BUGCR82891 LINUX : fast/speech/input-appearance-searchandspeech.html = FAIL PASS
    40924091BUGCR82891 LINUX : fast/speech/input-appearance-speechbutton.html = IMAGE+TEXT PASS
     4092BUGWK59208 WIN MAC : fast/speech/input-appearance-searchandspeech.html = FAIL
    40934093
    40944094// Fails on windows - added in r86693
  • trunk/LayoutTests/platform/gtk/editing/inserting/4960120-1-expected.txt

    r77440 r87014  
    1717      RenderText {#text} at (0,19) size 0x19
    1818        text run at (0,19) width 0: " "
    19 caret: position 0 of child 1 {#text} of child 0 {DIV} of child 2 {TEXTAREA} of body
     19caret: position 0 of child 1 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {TEXTAREA} of body
  • trunk/LayoutTests/platform/gtk/editing/pasteboard/drop-text-without-selection-expected.txt

    r73128 r87014  
    1 EDITING DELEGATE: shouldInsertText:http://www.ibm.com/ replacingDOMRange:range from 0 of DIV to 0 of DIV givenAction:WebViewInsertActionDropped
     1EDITING DELEGATE: shouldInsertText:http://www.ibm.com/ replacingDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root givenAction:WebViewInsertActionDropped
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV to 0 of DIV toDOMRange:range from 0 of #text > DIV to 19 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 19 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    55EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
     
    4040    RenderText {#text} at (1,0) size 142x19
    4141      text run at (1,0) width 142: "http://www.ibm.com/"
    42 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    43 selection end:   position 19 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     42selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     43selection end:   position 19 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/editing/pasteboard/pasting-tabs-expected.txt

    r77450 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    2 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 0 of #text > DIV toDOMRange:range from 0 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     2EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    33EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    44EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document
  • trunk/LayoutTests/platform/gtk/editing/selection/4895428-3-expected.txt

    r77450 r87014  
    2323layer at (13,105) size 188x19
    2424  RenderBlock {DIV} at (3,3) size 188x19
    25 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 2 {DIV} of body
     25caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 2 {DIV} of body
  • trunk/LayoutTests/platform/gtk/editing/selection/4975120-expected.txt

    r77450 r87014  
    2323    RenderText {#text} at (1,0) size 22x19
    2424      text run at (1,0) width 22: "foo"
    25 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
    26 selection end:   position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     25selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
     26selection end:   position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/editing/selection/select-across-readonly-input-1-expected.txt

    r85848 r87014  
    2424    RenderText {#text} at (1,0) size 35x19
    2525      text run at (1,0) width 35: "hello"
    26 selection start: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
    27 selection end:   position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     26selection start: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
     27selection end:   position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/gtk/editing/selection/select-across-readonly-input-4-expected.txt

    r85848 r87014  
    3131    RenderText {#text} at (1,0) size 52x19
    3232      text run at (1,0) width 52: "WebKit"
    33 selection start: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
    34 selection end:   position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     33selection start: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
     34selection end:   position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/gtk/editing/selection/select-across-readonly-input-5-expected.txt

    r85848 r87014  
    3131    RenderText {#text} at (1,0) size 52x19
    3232      text run at (1,0) width 52: "WebKit"
    33 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
    34 selection end:   position 2 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
     33selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
     34selection end:   position 2 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/gtk/editing/selection/select-from-textfield-outwards-expected.txt

    r81109 r87014  
    1 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 11 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     1EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 11 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 11 of #text > DIV toDOMRange:range from 11 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    5 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 12 of #text > DIV toDOMRange:range from 0 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     5EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 12 of #text > DIV toDOMRange:range from 11 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    9 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV to 17 of #text > DIV toDOMRange:range from 0 of #text > DIV to 12 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     9EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1010EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    11 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 12 of #text > DIV toDOMRange:range from 11 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     11EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 12 of #text > DIV > #shadow-root toDOMRange:range from 11 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1212EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    1313layer at (0,0) size 800x600
     
    4747    RenderText {#text} at (1,0) size 196x28
    4848      text run at (1,0) width 196: "Lorem ipsum dolor"
    49 selection start: position 11 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    50 selection end:   position 17 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     49selection start: position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     50selection end:   position 17 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/events/autoscroll-expected.txt

    r82349 r87014  
    2727    RenderText {#text} at (1,0) size 160x19
    2828      text run at (1,0) width 160: "select some of this text"
    29 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    30 selection end:   position 11 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     29selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     30selection end:   position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/events/context-no-deselect-expected.txt

    r78122 r87014  
    1111    RenderText {#text} at (1,0) size 124x19
    1212      text run at (1,0) width 124: "some sample text"
    13 selection start: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of body
    14 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of body
     13selection start: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
     14selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-appearance-focus-expected.txt

    r73128 r87014  
    3232    RenderText {#text} at (1,0) size 109x19
    3333      text run at (1,0) width 109: "My Text Field 2"
    34 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
    35 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
     34selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
     35selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-appearance-readonly-expected.txt

    r73128 r87014  
    1313    RenderText {#text} at (1,0) size 89x19
    1414      text run at (1,0) width 89: "Test Passed"
    15 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
    16 selection end:   position 11 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
     15selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
     16selection end:   position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-appearance-selection-expected.txt

    r82349 r87014  
    7979    RenderText {#text} at (1,0) size 188x19
    8080      text run at (1,0) width 188: "123456789 ABCDEFGHIJ"
    81 selection start: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
    82 selection end:   position 12 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
     81selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
     82selection end:   position 12 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-double-click-selection-gap-bug-expected.txt

    r73128 r87014  
    2828    RenderText {#text} at (1,0) size 49x19
    2929      text run at (1,0) width 49: "foo bar"
    30 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
    31 selection end:   position 7 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     30selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     31selection end:   position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-paste-undo-expected.txt

    r73128 r87014  
    1818layer at (13,70) size 188x19
    1919  RenderBlock {DIV} at (3,3) size 188x19
    20 caret: position 0 of child 0 {DIV} of child 4 {INPUT} of body
     20caret: position 0 of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-placeholder-visibility-1-expected.txt

    r77723 r87014  
    1313layer at (13,48) size 188x19
    1414  RenderBlock {DIV} at (3,3) size 188x19
    15 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-placeholder-visibility-2-expected.txt

    r77723 r87014  
    1515    RenderText {#text} at (1,0) size 31x19
    1616      text run at (1,0) width 31: "Text"
    17 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     17caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-placeholder-visibility-3-expected.txt

    r77723 r87014  
    1414  RenderBlock {DIV} at (3,3) size 188x19
    1515    RenderBR {BR} at (1,0) size 0x19
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-readonly-autoscroll-expected.txt

    r85733 r87014  
    2626    RenderText {#text} at (1,0) size 205x19
    2727      text run at (1,0) width 205: "abcdefghijklmnopqrstuvwxyz"
    28 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
    29 selection end:   position 26 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
     28selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
     29selection end:   position 26 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-text-click-inside-expected.txt

    r73128 r87014  
    1212layer at (38,38) size 188x19
    1313  RenderBlock {DIV} at (3,3) size 188x19
    14 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of child 0 {DIV} of body
     14caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of child 0 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-text-double-click-expected.txt

    r73128 r87014  
    1414    RenderText {#text} at (1,0) size 93x19
    1515      text run at (1,0) width 93: "word another"
    16 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 4 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-text-drag-down-expected.txt

    r73128 r87014  
    1414    RenderText {#text} at (1,0) size 158x19
    1515      text run at (1,0) width 158: "This is a bunch of text."
    16 selection start: position 5 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 24 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 24 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-text-option-delete-expected.txt

    r73128 r87014  
    1414    RenderText {#text} at (1,0) size 39x19
    1515      text run at (1,0) width 39: "word "
    16 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt

    r76168 r87014  
    2929    RenderText {#text} at (1,0) size 397x19
    3030      text run at (1,0) width 397: "this text field has a lot of text in it so that it needs to scroll"
    31 caret: position 66 of child 0 {#text} of child 0 {DIV} of child 4 {INPUT} of body
     31caret: position 66 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/input-text-self-emptying-click-expected.txt

    r73128 r87014  
    1313layer at (13,13) size 188x19
    1414  RenderBlock {DIV} at (3,3) size 188x19
    15 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/plaintext-mode-2-expected.txt

    r76168 r87014  
    3939    RenderText {#text} at (1,0) size 617x19
    4040      text run at (1,0) width 617: "This styled text, and link will be pasted into the textfield. All richness should be stripped."
    41 caret: position 94 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     41caret: position 94 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/search-rtl-expected.txt

    r73598 r87014  
    5757layer at (29,106) size 156x19
    5858  RenderBlock {DIV} at (16,1) size 156x19
    59 caret: position 0 of child 1 {DIV} of child 0 {DIV} of child 9 {INPUT} of child 3 {P} of body
     59caret: position 0 of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 9 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/search-transformed-expected.txt

    r82349 r87014  
    2929    RenderText {#text} at (1,0) size 111x19
    3030      text run at (1,0) width 111: "Some other text"
    31 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     31caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/search-zoomed-expected.txt

    r77726 r87014  
    2828    RenderText {#text} at (1,0) size 136x23
    2929      text run at (1,0) width 136: "Some other text"
    30 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     30caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/tabbing-input-iframe-expected.txt

    r73128 r87014  
    2626    RenderText {#text} at (1,0) size 164x19
    2727      text run at (1,0) width 164: "This should have focus"
    28 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    29 selection end:   position 22 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     28selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     29selection end:   position 22 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textarea-placeholder-visibility-1-expected.txt

    r77723 r87014  
    1414    RenderBlock {DIV} at (3,3) size 196x19
    1515      RenderBR {BR} at (0,0) size 0x19
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {TEXTAREA} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {TEXTAREA} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textarea-placeholder-visibility-2-expected.txt

    r77723 r87014  
    1313  RenderTextControl {TEXTAREA} at (2,2) size 202x44 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    1414    RenderBlock {DIV} at (3,3) size 196x19
    15 caret: position 0 of child 0 {DIV} of child 1 {TEXTAREA} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {TEXTAREA} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textarea-scrollbar-expected.txt

    r75016 r87014  
    3838      RenderText {#text} at (0,152) size 0x19
    3939        text run at (0,152) width 0: " "
    40 caret: position 0 of child 9 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     40caret: position 0 of child 9 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textarea-scrolled-type-expected.txt

    r75016 r87014  
    5757        text run at (18,361) width 0: " "
    5858      RenderBR {BR} at (0,380) size 0x19
    59 caret: position 49 of child 0 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     59caret: position 49 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textfield-focus-ring-expected.txt

    r73128 r87014  
    1313layer at (13,67) size 188x19
    1414  RenderBlock {DIV} at (3,3) size 188x19
    15 caret: position 0 of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textfield-outline-expected.txt

    r71405 r87014  
    1313    RenderText {#text} at (1,0) size 32x24
    1414      text run at (1,0) width 32: "abc"
    15 caret: position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/forms/textfield-overflow-expected.txt

    r73128 r87014  
    99layer at (13,11) size 188x19
    1010  RenderBlock {DIV} at (3,3) size 188x19
    11 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of body
     11caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/gtk/fast/frames/take-focus-from-iframe-expected.txt

    r73435 r87014  
    2323    RenderText {#text} at (1,0) size 44x19
    2424      text run at (1,0) width 44: "PASS"
    25 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     25caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/gtk/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt

    r78128 r87014  
    1414layer at (13,13) size 188x19
    1515  RenderBlock {DIV} at (3,3) size 188x19
    16 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     16caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/gtk/fast/transforms/transformed-focused-text-input-expected.txt

    r78146 r87014  
    1010layer at (13,13) size 188x19
    1111  RenderBlock {DIV} at (3,3) size 188x19
    12 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     12caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/mac-snowleopard/fast/forms/input-placeholder-visibility-1-expected.txt

    r77639 r87014  
    1313layer at (13,47) size 119x13
    1414  RenderBlock {DIV} at (3,3) size 119x13
    15 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac-snowleopard/fast/forms/input-placeholder-visibility-2-expected.txt

    r77639 r87014  
    1515    RenderText {#text} at (1,0) size 24x13
    1616      text run at (1,0) width 24: "Text"
    17 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     17caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac-snowleopard/fast/forms/input-placeholder-visibility-3-expected.txt

    r77639 r87014  
    1414  RenderBlock {DIV} at (3,3) size 119x13
    1515    RenderBR {BR} at (1,0) size 0x13
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac-wk2/editing/selection/select-across-readonly-input-1-expected.txt

    r86011 r87014  
    2424    RenderText {#text} at (1,0) size 38x18
    2525      text run at (1,0) width 38: "hello"
    26 caret: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     26caret: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/mac-wk2/editing/selection/select-across-readonly-input-4-expected.txt

    r86011 r87014  
    3131    RenderText {#text} at (1,0) size 54x18
    3232      text run at (1,0) width 54: "WebKit"
    33 caret: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     33caret: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/mac-wk2/editing/selection/select-across-readonly-input-5-expected.txt

    r86011 r87014  
    3131    RenderText {#text} at (1,0) size 54x18
    3232      text run at (1,0) width 54: "WebKit"
    33 caret: position 2 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
     33caret: position 2 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/mac/editing/inserting/4960120-1-expected.txt

    r63291 r87014  
    1717      RenderText {#text} at (0,13) size 0x13
    1818        text run at (0,13) width 0: " "
    19 caret: position 0 of child 1 {#text} of child 0 {DIV} of child 2 {TEXTAREA} of body
     19caret: position 0 of child 1 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {TEXTAREA} of body
  • trunk/LayoutTests/platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt

    r63403 r87014  
    1 EDITING DELEGATE: shouldInsertText:http://www.ibm.com/ replacingDOMRange:range from 0 of DIV to 0 of DIV givenAction:WebViewInsertActionDropped
     1EDITING DELEGATE: shouldInsertText:http://www.ibm.com/ replacingDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root givenAction:WebViewInsertActionDropped
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV to 0 of DIV toDOMRange:range from 0 of #text > DIV to 19 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 19 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    55EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
     
    4040    RenderText {#text} at (1,0) size 119x13
    4141      text run at (1,0) width 119: "http://www.ibm.com/"
    42 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    43 selection end:   position 19 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     42selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     43selection end:   position 19 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/mac/editing/pasteboard/pasting-tabs-expected.txt

    r78910 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    2 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 0 of #text > DIV toDOMRange:range from 0 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     2EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    33EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    44EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document
  • trunk/LayoutTests/platform/mac/editing/selection/4895428-3-expected.txt

    r63291 r87014  
    2323layer at (13,101) size 119x13
    2424  RenderBlock {DIV} at (3,3) size 119x13
    25 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 2 {DIV} of body
     25caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 2 {DIV} of body
  • trunk/LayoutTests/platform/mac/editing/selection/4975120-expected.txt

    r63291 r87014  
    2323    RenderText {#text} at (1,0) size 18x13
    2424      text run at (1,0) width 18: "foo"
    25 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
    26 selection end:   position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     25selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
     26selection end:   position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/mac/editing/selection/select-across-readonly-input-1-expected.txt

    r85669 r87014  
    2424    RenderText {#text} at (1,0) size 38x18
    2525      text run at (1,0) width 38: "hello"
    26 selection start: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
    27 selection end:   position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     26selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
     27selection end:   position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/mac/editing/selection/select-across-readonly-input-4-expected.txt

    r85669 r87014  
    3131    RenderText {#text} at (1,0) size 54x18
    3232      text run at (1,0) width 54: "WebKit"
    33 selection start: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
    34 selection end:   position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 5 {DIV} of body
     33selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
     34selection end:   position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/mac/editing/selection/select-across-readonly-input-5-expected.txt

    r85669 r87014  
    3131    RenderText {#text} at (1,0) size 54x18
    3232      text run at (1,0) width 54: "WebKit"
    33 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
    34 selection end:   position 2 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of child 5 {DIV} of body
     33selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
     34selection end:   position 2 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of child 5 {DIV} of body
  • trunk/LayoutTests/platform/mac/editing/selection/select-from-textfield-outwards-expected.txt

    r81095 r87014  
    1 EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 10 of #text > DIV to 10 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     1EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 10 of #text > DIV > #shadow-root to 10 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    22EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    3 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 10 of #text > DIV to 10 of #text > DIV toDOMRange:range from 6 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     3EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 10 of #text > DIV > #shadow-root to 10 of #text > DIV > #shadow-root toDOMRange:range from 6 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    5 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 6 of #text > DIV to 11 of #text > DIV toDOMRange:range from 0 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     5EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 6 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    66EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    7 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 11 of #text > DIV toDOMRange:range from 6 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     7EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root toDOMRange:range from 6 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    9 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 6 of #text > DIV to 17 of #text > DIV toDOMRange:range from 0 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     9EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 6 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1010EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    11 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 11 of #text > DIV toDOMRange:range from 6 of #text > DIV to 17 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     11EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root toDOMRange:range from 6 of #text > DIV > #shadow-root to 17 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    1212EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    1313layer at (0,0) size 800x600
     
    4747    RenderText {#text} at (1,0) size 222x28
    4848      text run at (1,0) width 222: "Lorem ipsum dolor"
    49 selection start: position 6 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    50 selection end:   position 17 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     49selection start: position 6 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     50selection end:   position 17 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/events/autoscroll-expected.txt

    r78899 r87014  
    2727    RenderText {#text} at (1,0) size 126x13
    2828      text run at (1,0) width 126: "select some of this text"
    29 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    30 selection end:   position 16 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     29selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     30selection end:   position 16 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
    3131scrolled to 0,2567
  • trunk/LayoutTests/platform/mac/fast/events/context-no-deselect-expected.txt

    r63403 r87014  
    1111    RenderText {#text} at (1,0) size 96x13
    1212      text run at (1,0) width 96: "some sample text"
    13 selection start: position 5 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of body
    14 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of body
     13selection start: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
     14selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-appearance-focus-expected.txt

    r63291 r87014  
    3232    RenderText {#text} at (1,0) size 82x13
    3333      text run at (1,0) width 82: "My Text Field 2"
    34 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
    35 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
     34selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
     35selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-appearance-readonly-expected.txt

    r63403 r87014  
    1313    RenderText {#text} at (1,0) size 63x13
    1414      text run at (1,0) width 63: "Test Passed"
    15 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
    16 selection end:   position 11 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
     15selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
     16selection end:   position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-appearance-selection-expected.txt

    r63291 r87014  
    7979    RenderText {#text} at (1,0) size 131x13
    8080      text run at (1,0) width 131: "123456789 ABCDEFGHIJ"
    81 selection start: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
    82 selection end:   position 12 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
     81selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
     82selection end:   position 12 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt

    r83145 r87014  
    2020layer at (183,44) size 19x27
    2121  RenderBlock (relative positioned) {DIV} at (173,0) size 19x27
    22 caret: position 1 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
     22caret: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt

    r63291 r87014  
    2828    RenderText {#text} at (1,0) size 39x13
    2929      text run at (1,0) width 39: "foo bar"
    30 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
    31 selection end:   position 7 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     30selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     31selection end:   position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-paste-undo-expected.txt

    r63291 r87014  
    1818layer at (13,67) size 119x13
    1919  RenderBlock {DIV} at (3,3) size 119x13
    20 caret: position 0 of child 0 {DIV} of child 4 {INPUT} of body
     20caret: position 0 of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt

    r77639 r87014  
    1313layer at (13,47) size 119x13
    1414  RenderBlock {DIV} at (3,3) size 119x13
    15 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-placeholder-visibility-2-expected.txt

    r77639 r87014  
    1515    RenderText {#text} at (1,0) size 24x13
    1616      text run at (1,0) width 24: "Text"
    17 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     17caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt

    r77639 r87014  
    1414  RenderBlock {DIV} at (3,3) size 119x13
    1515    RenderBR {BR} at (1,0) size 0x13
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {INPUT} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-readonly-autoscroll-expected.txt

    r85669 r87014  
    2626    RenderText {#text} at (1,0) size 158x13
    2727      text run at (1,0) width 158: "abcdefghijklmnopqrstuvwxyz"
    28 selection start: position 1 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
    29 selection end:   position 26 of child 0 {#text} of child 0 {DIV} of child 5 {INPUT} of body
     28selection start: position 1 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
     29selection end:   position 26 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 5 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-text-click-inside-expected.txt

    r63291 r87014  
    1212layer at (38,38) size 119x13
    1313  RenderBlock {DIV} at (3,3) size 119x13
    14 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of child 0 {DIV} of body
     14caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of child 0 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-text-double-click-expected.txt

    r63291 r87014  
    1414    RenderText {#text} at (1,0) size 72x13
    1515      text run at (1,0) width 72: "word another"
    16 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 4 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-text-drag-down-expected.txt

    r63291 r87014  
    1414    RenderText {#text} at (1,0) size 124x13
    1515      text run at (1,0) width 124: "This is a bunch of text."
    16 selection start: position 7 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 24 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 24 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-text-option-delete-expected.txt

    r78883 r87014  
    1414    RenderText {#text} at (1,0) size 31x13
    1515      text run at (1,0) width 31: "word "
    16 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt

    r78883 r87014  
    2929    RenderText {#text} at (1,0) size 317x13
    3030      text run at (1,0) width 317: "this text field has a lot of text in it so that it needs to scroll"
    31 caret: position 66 of child 0 {#text} of child 0 {DIV} of child 4 {INPUT} of body
     31caret: position 66 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/input-text-self-emptying-click-expected.txt

    r63291 r87014  
    1313layer at (13,13) size 119x13
    1414  RenderBlock {DIV} at (3,3) size 119x13
    15 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/plaintext-mode-2-expected.txt

    r78884 r87014  
    3939    RenderText {#text} at (1,0) size 479x13
    4040      text run at (1,0) width 479: "This styled text, and link will be pasted into the textfield. All richness should be stripped."
    41 caret: position 94 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     41caret: position 94 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/search-rtl-expected.txt

    r78884 r87014  
    5757layer at (35,93) size 84x13
    5858  RenderBlock {DIV} at (22,0) size 84x13
    59 caret: position 0 of child 1 {DIV} of child 0 {DIV} of child 9 {INPUT} of child 3 {P} of body
     59caret: position 0 of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 9 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/mac/fast/forms/search-transformed-expected.txt

    r78884 r87014  
    2929    RenderText {#text} at (1,0) size 86x13
    3030      text run at (1,0) width 86: "Some other text"
    31 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     31caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/mac/fast/forms/search-zoomed-expected.txt

    r63291 r87014  
    2828    RenderText {#text} at (1,0) size 102x16
    2929      text run at (1,0) width 102: "Some other text"
    30 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     30caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/mac/fast/forms/tabbing-input-iframe-expected.txt

    r63403 r87014  
    2626    RenderText {#text} at (1,0) size 123x13
    2727      text run at (1,0) width 123: "This should have focus"
    28 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    29 selection end:   position 22 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     28selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     29selection end:   position 22 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt

    r85301 r87014  
    1414    RenderBlock {DIV} at (3,3) size 155x13
    1515      RenderBR {BR} at (0,0) size 0x13
    16 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 1 {TEXTAREA} of child 3 {DIV} of body
     16caret: position 0 of child 0 {BR} of child 0 {DIV} of {#shadow-root} of child 1 {TEXTAREA} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt

    r85301 r87014  
    1313  RenderTextControl {TEXTAREA} at (2,2) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    1414    RenderBlock {DIV} at (3,3) size 155x13
    15 caret: position 0 of child 0 {DIV} of child 1 {TEXTAREA} of child 3 {DIV} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {TEXTAREA} of child 3 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textarea-scrollbar-expected.txt

    r78884 r87014  
    3838      RenderText {#text} at (0,104) size 0x13
    3939        text run at (0,104) width 0: " "
    40 caret: position 0 of child 9 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     40caret: position 0 of child 9 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textarea-scrolled-type-expected.txt

    r78884 r87014  
    5757        text run at (13,247) width 1: " "
    5858      RenderBR {BR} at (0,260) size 0x13
    59 caret: position 49 of child 0 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     59caret: position 49 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textfield-focus-ring-expected.txt

    r69766 r87014  
    1313layer at (13,65) size 119x13
    1414  RenderBlock {DIV} at (3,3) size 119x13
    15 caret: position 0 of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textfield-outline-expected.txt

    r63403 r87014  
    1313    RenderText {#text} at (1,0) size 34x23
    1414      text run at (1,0) width 34: "abc"
    15 caret: position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     15caret: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/textfield-overflow-expected.txt

    r73385 r87014  
    99layer at (13,11) size 119x4 scrollHeight 13
    1010  RenderBlock {DIV} at (3,3) size 119x4
    11 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of body
     11caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/mac/fast/forms/validation-message-appearance-expected.txt

    r86224 r87014  
    3333layer at (42,29) size 18x18 backgroundClip at (10,29) size 220x16 clip at (10,29) size 220x16 outlineClip at (10,29) size 220x16
    3434  RenderBlock (relative positioned) zI: 2147483645 {DIV} at (0,0) size 18x18 [bgcolor=#F8ECEC] [border: (2px solid #440000) none (2px solid #440000)]
    35 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 0 {FORM} of body
     35caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 0 {FORM} of body
  • trunk/LayoutTests/platform/mac/fast/frames/take-focus-from-iframe-expected.txt

    r63291 r87014  
    2323    RenderText {#text} at (1,0) size 26x13
    2424      text run at (1,0) width 26: "PASS"
    25 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     25caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt

    r74995 r87014  
    1414layer at (13,13) size 119x13
    1515  RenderBlock {DIV} at (3,3) size 119x13
    16 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     16caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/mac/fast/transforms/transformed-focused-text-input-expected.txt

    r63291 r87014  
    1010layer at (13,13) size 119x13
    1111  RenderBlock {DIV} at (3,3) size 119x13
    12 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     12caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/qt/editing/inserting/4960120-1-expected.txt

    r63292 r87014  
    1717    RenderText {#text} at (3,19) size 0x19
    1818      text run at (3,19) width 0: " "
    19 caret: position 0 of child 1 {#text} of child 0 {DIV} of child 2 {TEXTAREA} of body
     19caret: position 0 of child 1 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {TEXTAREA} of body
  • trunk/LayoutTests/platform/qt/editing/pasteboard/pasting-tabs-expected.txt

    r63292 r87014  
    11EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    2 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of #text > DIV to 0 of #text > DIV toDOMRange:range from 0 of #text > DIV to 11 of #text > DIV affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
     2EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #shadow-root to 0 of DIV > #shadow-root toDOMRange:range from 0 of #text > DIV > #shadow-root to 11 of #text > DIV > #shadow-root affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
    33EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
    44EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document
  • trunk/LayoutTests/platform/qt/editing/selection/4895428-3-expected.txt

    r83871 r87014  
    2424layer at (12,116) size 162x22
    2525  RenderBlock {DIV} at (2,2) size 162x22
    26 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 2 {DIV} of body
     26caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 2 {DIV} of body
  • trunk/LayoutTests/platform/qt/editing/selection/4975120-expected.txt

    r83871 r87014  
    2525    RenderText {#text} at (1,0) size 21x22
    2626      text run at (1,0) width 21: "foo"
    27 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
    28 selection end:   position 3 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of body
     27selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
     28selection end:   position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-appearance-focus-expected.txt

    r84735 r87014  
    3333    RenderText {#text} at (1,0) size 108x22
    3434      text run at (1,0) width 108: "My Text Field 2"
    35 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
    36 selection end:   position 15 of child 0 {#text} of child 0 {DIV} of child 3 {INPUT} of child 1 {P} of body
     35selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
     36selection end:   position 15 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-appearance-readonly-expected.txt

    r84735 r87014  
    1313    RenderText {#text} at (1,0) size 79x22
    1414      text run at (1,0) width 79: "Test Passed"
    15 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
    16 selection end:   position 11 of child 0 {#text} of child 0 {DIV} of child 2 {INPUT} of body
     15selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
     16selection end:   position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-appearance-selection-expected.txt

    r84735 r87014  
    7979    RenderText {#text} at (1,0) size 182x22
    8080      text run at (1,0) width 182: "123456789 ABCDEFGHIJ"
    81 selection start: position 3 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
    82 selection end:   position 12 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {P} of body
     81selection start: position 3 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
     82selection end:   position 12 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {P} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-double-click-selection-gap-bug-expected.txt

    r84735 r87014  
    2828    RenderText {#text} at (1,0) size 49x22
    2929      text run at (1,0) width 49: "foo bar"
    30 selection start: position 0 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
    31 selection end:   position 7 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     30selection start: position 0 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
     31selection end:   position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {TD} of child 0 {TR} of child 1 {TBODY} of child 3 {TABLE} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-paste-undo-expected.txt

    r84735 r87014  
    1818layer at (12,78) size 162x22
    1919  RenderBlock {DIV} at (2,2) size 162x22
    20 caret: position 0 of child 0 {DIV} of child 4 {INPUT} of body
     20caret: position 0 of child 0 {DIV} of {#shadow-root} of child 4 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-text-click-inside-expected.txt

    r84735 r87014  
    1212layer at (37,37) size 162x22
    1313  RenderBlock {DIV} at (2,2) size 162x22
    14 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of child 0 {DIV} of body
     14caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of child 0 {DIV} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-text-option-delete-expected.txt

    r84735 r87014  
    1414    RenderText {#text} at (1,0) size 40x22
    1515      text run at (1,0) width 40: "word "
    16 caret: position 5 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16caret: position 5 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/forms/input-text-self-emptying-click-expected.txt

    r84735 r87014  
    1313layer at (12,12) size 162x22
    1414  RenderBlock {DIV} at (2,2) size 162x22
    15 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of body
     15caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/forms/plaintext-mode-2-expected.txt

    r63292 r87014  
    3333layer at (11,13) size 594x19
    3434  RenderBlock {DIV} at (3,3) size 594x19
    35 caret: position 0 of child 0 {DIV} of child 0 {INPUT} of body
     35caret: position 0 of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/forms/search-rtl-expected.txt

    r83871 r87014  
    5757layer at (12,110) size 151x22
    5858  RenderBlock {DIV} at (0,0) size 151x22
    59 caret: position 0 of child 1 {DIV} of child 0 {DIV} of child 9 {INPUT} of child 3 {P} of body
     59caret: position 0 of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 9 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/qt/fast/forms/search-transformed-expected.txt

    r83871 r87014  
    2929    RenderText {#text} at (1,0) size 106x22
    3030      text run at (1,0) width 106: "Some other text"
    31 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     31caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/qt/fast/forms/search-zoomed-expected.txt

    r83871 r87014  
    2828    RenderText {#text} at (1,0) size 128x26
    2929      text run at (1,0) width 128: "Some other text"
    30 caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     30caret: position 15 of child 0 {#text} of child 1 {DIV} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/qt/fast/forms/textfield-overflow-expected.txt

    r84735 r87014  
    99layer at (12,10) size 162x6 scrollHeight 22
    1010  RenderBlock {DIV} at (2,2) size 162x6
    11 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of body
     11caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of body
  • trunk/LayoutTests/platform/qt/fast/frames/take-focus-from-iframe-expected.txt

    r83871 r87014  
    2323    RenderText {#text} at (1,0) size 40x22
    2424      text run at (1,0) width 40: "PASS"
    25 caret: position 4 of child 0 {#text} of child 0 {DIV} of child 1 {INPUT} of child 3 {P} of body
     25caret: position 4 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 3 {P} of body
  • trunk/LayoutTests/platform/qt/fast/transforms/transformed-focused-text-input-expected.txt

    r83871 r87014  
    1010layer at (12,12) size 162x22
    1111  RenderBlock {DIV} at (2,2) size 162x22
    12 caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 1 {DIV} of body
     12caret: position 0 of child 0 {DIV} of {#shadow-root} of child 1 {INPUT} of child 1 {DIV} of body
  • trunk/LayoutTests/platform/win/editing/inserting/4960120-1-expected.txt

    r63295 r87014  
    1717      RenderText {#text} at (0,13) size 0x13
    1818        text run at (0,13) width 0: " "
    19 caret: position 0 of child 1 {#text} of child 0 {DIV} of child 2 {TEXTAREA} of body
     19caret: position 0 of child 1 {#text} of child 0 {DIV} of {#shadow-root} of child 2 {TEXTAREA} of body
  • trunk/LayoutTests/platform/win/editing/selection/select-from-textfield-outwards-expected.txt

    r83976 r87014  
    3535    RenderText {#text} at (1,0) size 222x28
    3636      text run at (1,0) width 222: "Lorem ipsum dolor"
    37 selection start: position 6 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
    38 selection end:   position 11 of child 0 {#text} of child 0 {DIV} of child 7 {INPUT} of body
     37selection start: position 6 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
     38selection end:   position 11 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 7 {INPUT} of body
  • trunk/LayoutTests/platform/win/fast/forms/input-text-drag-down-expected.txt

    r83976 r87014  
    1414    RenderText {#text} at (1,0) size 124x13
    1515      text run at (1,0) width 124: "This is a bunch of text."
    16 selection start: position 7 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
    17 selection end:   position 8 of child 0 {#text} of child 0 {DIV} of child 0 {INPUT} of body
     16selection start: position 7 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
     17selection end:   position 8 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 0 {INPUT} of body
  • trunk/LayoutTests/platform/win/fast/forms/textarea-scrollbar-expected.txt

    r79004 r87014  
    3838      RenderText {#text} at (0,104) size 0x13
    3939        text run at (0,104) width 0: " "
    40 caret: position 0 of child 9 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     40caret: position 0 of child 9 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/LayoutTests/platform/win/fast/forms/textarea-scrolled-type-expected.txt

    r79004 r87014  
    5757        text run at (13,247) width 1: " "
    5858      RenderBR {BR} at (0,260) size 0x13
    59 caret: position 49 of child 0 {#text} of child 0 {DIV} of child 3 {TEXTAREA} of body
     59caret: position 49 of child 0 {#text} of child 0 {DIV} of {#shadow-root} of child 3 {TEXTAREA} of body
  • trunk/Source/WebCore/ChangeLog

    r87013 r87014  
     12011-05-21  Kent Tamura  <tkent@chromium.org>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Change text-based <input> types to the new shadow DOM model
     6        https://bugs.webkit.org/show_bug.cgi?id=54179
     7
     8        By this change, text field inputs and textareas have one extra
     9        shadow node at the root of shadow trees.
     10        e.g. Before the change:
     11          <textarea> --(shadow-connection)-- <div> -- ...
     12        After the change:
     13          <textarea> --(shadow-connection)-- {#shadow-root} -- <div> -- ...
     14
     15        The goals of this change are
     16        - Change to the new shadow DOM model, and
     17        - Minimize the patch size.
     18
     19        We should use shadowPseudoId() in the new shadow DOM model, but the
     20        shadow elements in this patch don't use it in order to reduce the patch
     21        size.
     22
     23        * css/html.css:
     24        (input::-webkit-inner-spin-button):
     25         Add vertical-align in order to avoid the button affect the baseline.
     26        (input::-webkit-outer-spin-button): ditto.
     27        (input::-webkit-input-speech-button): ditto.
     28        * dom/Element.cpp:
     29        (WebCore::Element::recalcStyle): Calls styleForRenderer() so that a
     30         subclass of Element can override it.
     31        (WebCore::Element::isSpellCheckingEnabled):
     32        Handle ShadowRoot, which is not an Element.
     33        * dom/Node.cpp:
     34          Add utility functions for editing code.
     35        (WebCore::Node::nonBoundaryShadowTreeRootNode):
     36        (WebCore::Node::nonShadowBoundaryParentNode):
     37        * dom/Node.h: Declare them.
     38        * dom/Position.cpp:
     39         - Add some assertions about ShadowRoot
     40         - Replace parentNode() with nonShadowBoundaryParentNode()
     41        Because input/textarea shadow structures are changed.
     42        (WebCore::Position::Position):
     43        (WebCore::Position::containerNode):
     44        (WebCore::Position::parentAnchoredEquivalent):
     45        (WebCore::Position::previous):
     46        (WebCore::Position::next):
     47        (WebCore::Position::parentEditingBoundary):
     48        (WebCore::Position::atStartOfTree):
     49        (WebCore::Position::atEndOfTree):
     50        * dom/Position.h: ditto.
     51        (WebCore::positionInParentBeforeNode):
     52        (WebCore::positionInParentAfterNode):
     53        * editing/CompositeEditCommand.cpp: ditto.
     54        (WebCore::CompositeEditCommand::insertNodeAfter):
     55        (WebCore::CompositeEditCommand::removeNode):
     56        * editing/Editor.cpp:
     57        (WebCore::Editor::findString): ditto.
     58        * editing/FrameSelection.cpp:
     59        (WebCore::FrameSelection::selectAll): Inline shadowTreeRootNode() calls.
     60        * editing/FrameSelection.h:
     61          Remove shadowTreeRootNode(). It is used only by FrameSelection::selectAll().
     62        * editing/InsertParagraphSeparatorCommand.cpp:
     63        (WebCore::InsertParagraphSeparatorCommand::doApply): Use nonShadowBoundaryParentNode()
     64        * editing/ReplaceSelectionCommand.cpp:
     65        (WebCore::ReplacementFragment::removeNode): ditto.
     66        (WebCore::ReplacementFragment::insertNodeBefore): ditto.
     67        * editing/VisibleSelection.cpp:
     68          Rename shadowTreeRootNode() to nonBoundaryShadowTreeRootNode(), and it reutrns
     69          a child node of ShadowRoot.
     70        (WebCore::VisibleSelection::isAll):
     71        (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
     72        (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
     73        * editing/VisibleSelection.h: ditto.
     74        * editing/htmlediting.cpp: Add assertions.
     75        (WebCore::visiblePositionBeforeNode):
     76        (WebCore::visiblePositionAfterNode):
     77        * html/HTMLInputElement.cpp:
     78        (WebCore::HTMLInputElement::create): Calls createShadowSubtree().
     79        (WebCore::HTMLInputElement::createShadowSubtree):
     80          Calls InputType::createShadowSubTree().
     81        (WebCore::HTMLInputElement::innerTextElement):
     82          Accessor of a shadow node. This is used by RenderTextControlSingleLine.
     83        (WebCore::HTMLInputElement::innerBlockElement): ditto.
     84        (WebCore::HTMLInputElement::innerSpinButtonElement): ditto.
     85        (WebCore::HTMLInputElement::outerSpinButtonElement): ditto.
     86        (WebCore::HTMLInputElement::resultsButtonElement): ditto.
     87        (WebCore::HTMLInputElement::cancelButtonElement): ditto.
     88        (WebCore::HTMLInputElement::speechButtonElement): ditto.
     89        (WebCore::HTMLInputElement::parseMappedAttribute):
     90          Rebuild shadow trees because x-webkit-speech attribute affects it.
     91        * html/HTMLInputElement.h: Add declarations.
     92        * html/HTMLIsIndexElement.cpp:
     93        (WebCore::HTMLIsIndexElement::create): Calls createShadowSubtree().
     94        * html/HTMLTextAreaElement.cpp:
     95        (WebCore::HTMLTextAreaElement::create): Calls createShadowSubtree().
     96        (WebCore::HTMLTextAreaElement::createShadowSubtree): Added.
     97        * html/HTMLTextAreaElement.h: Declare createShadowSubtree().
     98        * html/InputType.h: Add default implementations of accessors.
     99        (WebCore::InputType::innerBlockElement):
     100        (WebCore::InputType::innerTextElement):
     101        (WebCore::InputType::innerSpinButtonElement):
     102        (WebCore::InputType::outerSpinButtonElement):
     103        (WebCore::InputType::resultsButtonElement):
     104        (WebCore::InputType::cancelButtonElement):
     105        (WebCore::InputType::speechButtonElement):
     106        * html/SearchInputType.cpp:
     107        (WebCore::SearchInputType::SearchInputType): Initializes new data members.
     108        (WebCore::SearchInputType::createShadowSubtree):
     109          Moved from RenderTextControlSingleLine.
     110        (WebCore::SearchInputType::destroyShadowSubtree): Clear element references.
     111        * html/SearchInputType.h: Add declarations.
     112        (WebCore::SearchInputType::innerBlockElement):
     113        (WebCore::SearchInputType::resultsButtonElement):
     114        (WebCore::SearchInputType::cancelButtonElement):
     115        * html/TextFieldInputType.cpp:
     116        (WebCore::TextFieldInputType::TextFieldInputType):
     117          Initializes new data members.
     118        (WebCore::TextFieldInputType::createShadowSubtree):
     119          Moved from RenderTextControlSingleLine.
     120        (WebCore::TextFieldInputType::destroyShadowSubtree): Clear element references.
     121        * html/TextFieldInputType.h: Add declarations.
     122        (WebCore::TextFieldInputType::innerTextElement):
     123        (WebCore::TextFieldInputType::innerSpinButtonElement):
     124        (WebCore::TextFieldInputType::outerSpinButtonElement):
     125        (WebCore::TextFieldInputType::speechButtonElement):
     126        (WebCore::TextFieldInputType::setInnerTextElement):
     127        (WebCore::TextFieldInputType::setSpeechButtonElement):
     128        * html/shadow/TextControlInnerElements.cpp:
     129        (WebCore::TextControlInnerElement::TextControlInnerElement):
     130          Remove shadowParent parameter. It is unnecessary because we switch to
     131          new shadow model.
     132        (WebCore::TextControlInnerElement::create):
     133          Change the parameter type to Document.
     134        (WebCore::TextControlInnerElement::styleForRenderer):
     135          Override this in order to set style by
     136          RenderTextControlSingleLine::createInnerBlockStyle().
     137        (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
     138          Remove shadowParent parameter.
     139          Inherit HTMLDivElement, not TextControlInnerElement.
     140        (WebCore::TextControlInnerTextElement::create): Remove shadowParent parameter.
     141        (WebCore::TextControlInnerTextElement::styleForRenderer):
     142          Override this in order to set style by
     143          RenderTextControlSingleLine::createInnerTextStyle().
     144        (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
     145          Inherit HTMLDivElement, not TextControlInnerElement.
     146        (WebCore::SearchFieldResultsButtonElement::styleForRenderer):
     147          Override this in order to set style by
     148          RenderTextControlSingleLine::createResultButtonStyle().
     149        (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
     150          Inherit HTMLDivElement, not TextControlInnerElement.
     151        (WebCore::SearchFieldCancelButtonElement::styleForRenderer):
     152          Override this in order to set style by
     153          RenderTextControlSingleLine::createCancelButtonStyle().
     154        (WebCore::SearchFieldCancelButtonElement::detach):
     155          Update for the parent class change.
     156        (WebCore::SpinButtonElement::SpinButtonElement):
     157          - Change the parameter type: shadowParent -> Document
     158          - Add the inner flag
     159          - Inherit HTMLDivElement, not TextControlInnerElement.
     160        (WebCore::SpinButtonElement::createInner): Introduce a new factory
     161          method to hide a bool parameter of the constructor.
     162        (WebCore::SpinButtonElement::createOuter): ditto.
     163        (WebCore::SpinButtonElement::styleForRenderer):
     164          Override this in order to set style by
     165          RenderTextControlSingleLine::createInnerSpinButtonStyle() or
     166          createOuterSpinButtonStyle().
     167        (WebCore::SpinButtonElement::detach): Update for the parent class change.
     168        (WebCore::SpinButtonElement::setHovered): ditto.
     169        (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
     170          - Change the parameter type: shadowParent -> Document
     171          - Inherit HTMLDivElement, not TextControlInnerElement.
     172          - Do not register this as a speech input listener here.
     173        (WebCore::InputFieldSpeechButtonElement::create):
     174          Update for the parameter change.
     175        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
     176          Do not handle click event if listener registration is not done.
     177        (WebCore::InputFieldSpeechButtonElement::attach):
     178          Register this as a speech input listener.
     179        (WebCore::InputFieldSpeechButtonElement::detach):
     180          Update for the parent class change.
     181        (WebCore::InputFieldSpeechButtonElement::styleForRenderer):
     182          Override this in order to set style by
     183          RenderTextControlSingleLine::createSpeechButtonStyle().
     184        * html/shadow/TextControlInnerElements.h:
     185        (WebCore::TextControlInnerTextElement::isMouseFocusable):
     186          Add this because the class is not a subclass of TextControllInnerElement.
     187        (WebCore::SearchFieldResultsButtonElement::isMouseFocusable): ditto.
     188        (WebCore::SearchFieldCancelButtonElement::isMouseFocusable): ditto.
     189        (WebCore::SpinButtonElement::isMouseFocusable): ditto.
     190        (WebCore::InputFieldSpeechButtonElement::isMouseFocusable): ditto.
     191        * rendering/RenderTextControl.cpp:
     192        (WebCore::RenderTextControl::~RenderTextControl): Remove unnecessary code.
     193        (WebCore::RenderTextControl::styleDidChange):
     194          innerTextElement can have no renderer.
     195          Explicitly call setNeedsStyleRecals() for innerTextElement. It is
     196          needed for LayoutTests/editing/selection/select-across-readonly-input-*.html.
     197        (WebCore::RenderTextControl::textBlockWidth): Member data -> function
     198        (WebCore::RenderTextControl::updateFromElement): ditto.
     199        (WebCore::RenderTextControl::setInnerTextValue): ditto.
     200        (WebCore::RenderTextControl::hasVisibleTextArea): ditto.
     201        (WebCore::RenderTextControl::isSelectableElement): ditto.
     202        (WebCore::RenderTextControl::selection): ditto.
     203        (WebCore::RenderTextControl::visiblePositionForIndex): ditto.
     204        (WebCore::RenderTextControl::indexForVisiblePosition): ditto.
     205        (WebCore::RenderTextControl::text): ditto.
     206        (WebCore::RenderTextControl::textWithHardLineBreaks): ditto.
     207        (WebCore::RenderTextControl::computeLogicalHeight): ditto.
     208        (WebCore::RenderTextControl::hitInnerTextElement): ditto.
     209        (WebCore::RenderTextControl::forwardEvent): ditto.
     210        (WebCore::RenderTextControl::computePreferredLogicalWidths): ditto.
     211        * rendering/RenderTextControl.h:
     212          - Make m_innerText virtual function.
     213          - Make createInnerTextStyle() public in order that
     214            TextControlInnerElements can call it.
     215        * rendering/RenderTextControlMultiLine.cpp:
     216        (WebCore::RenderTextControlMultiLine::innerTextElement): Added.
     217        (WebCore::RenderTextControlMultiLine::updateFromElement):
     218          Remove unnecessary createSubtreeIfNeeded() call.
     219        * rendering/RenderTextControlMultiLine.h: Add a declaration.
     220        * rendering/RenderTextControlSingleLine.cpp:
     221        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
     222          Remove unnecessary code.
     223        (WebCore::RenderTextControlSingleLine::innerTextElement): Added.
     224        (WebCore::RenderTextControlSingleLine::innerBlockElement): Added.
     225        (WebCore::RenderTextControlSingleLine::innerSpinButtonElement): Added.
     226        (WebCore::RenderTextControlSingleLine::outerSpinButtonElement): Added.
     227        (WebCore::RenderTextControlSingleLine::resultsButtonElement): Added.
     228        (WebCore::RenderTextControlSingleLine::cancelButtonElement): Added.
     229        (WebCore::RenderTextControlSingleLine::speechButtonElement): Added.
     230        (WebCore::RenderTextControlSingleLine::textBaseStyle): Data member -> function
     231        (WebCore::RenderTextControlSingleLine::subtreeHasChanged): ditto.
     232        (WebCore::RenderTextControlSingleLine::layout): ditto.
     233        (WebCore::RenderTextControlSingleLine::nodeAtPoint): ditto.
     234        (WebCore::RenderTextControlSingleLine::forwardEvent): ditto.
     235        (WebCore::RenderTextControlSingleLine::styleDidChange): ditto.
     236        (WebCore::RenderTextControlSingleLine::hasControlClip): ditto.
     237        (WebCore::RenderTextControlSingleLine::controlClipRect): ditto.
     238        (WebCore::RenderTextControlSingleLine::textBlockWidth): ditto.
     239        (WebCore::RenderTextControlSingleLine::decorationWidthRight): ditto.
     240        (WebCore::RenderTextControlSingleLine::preferredContentWidth): ditto.
     241        (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight): ditto.
     242        (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight): ditto.
     243        (WebCore::RenderTextControlSingleLine::updateFromElement):
     244          ditto, and remove unnecessary createSubtreeIfNeeded() call.
     245        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
     246          Data member -> function
     247        (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility): ditto.
     248        (WebCore::RenderTextControlSingleLine::clientPaddingLeft): ditto.
     249        (WebCore::RenderTextControlSingleLine::clientPaddingRight): ditto.
     250        (WebCore::RenderTextControlSingleLine::textBlockInsetTop): ditto.
     251        * rendering/RenderTextControlSingleLine.h:
     252          Add declarations, and remove unnecessary data members.
     253
    12542011-05-21  Chris Rogers  <crogers@google.com>
    2255
  • trunk/Source/WebCore/css/html.css

    r86941 r87014  
    451451    position: relative;
    452452    cursor: default;
     453    vertical-align: top;
    453454    -webkit-user-select: none;
    454455}
     
    460461    cursor: default;
    461462    margin-left: 2px;
     463    vertical-align: top;
    462464    -webkit-user-select: none;
    463465}
     
    467469    -webkit-appearance: -webkit-input-speech-button;
    468470    display: inline-block;
     471    vertical-align: top;
    469472}
    470473#endif
  • trunk/Source/WebCore/dom/Element.cpp

    r86521 r87014  
    10841084    }
    10851085    if (hasParentStyle && (change >= Inherit || needsStyleRecalc())) {
    1086         RefPtr<RenderStyle> newStyle = document()->styleSelector()->styleForElement(this);
     1086        RefPtr<RenderStyle> newStyle = styleForRenderer();
    10871087        StyleChange ch = diff(currentStyle.get(), newStyle.get());
    10881088        if (ch == Detach || !currentStyle) {
     
    19171917
    19181918        ContainerNode* parent = const_cast<Element*>(element)->parentOrHostNode();
    1919         element = (parent && parent->isElementNode()) ? toElement(parent) : 0;
     1919        if (parent && parent->isElementNode())
     1920            element = toElement(parent);
     1921        else if (parent && parent->isShadowBoundary())
     1922            element = toElement(parent->parentOrHostNode());
     1923        else
     1924            element = 0;
    19201925    }
    19211926
  • trunk/Source/WebCore/dom/Node.cpp

    r86988 r87014  
    17411741}
    17421742
     1743Node* Node::nonBoundaryShadowTreeRootNode()
     1744{
     1745    ASSERT(!isShadowBoundary());
     1746    Node* root = this;
     1747    while (root) {
     1748        if (root->isShadowRoot() || root->isSVGShadowRoot())
     1749            return root;
     1750        Node* parent = root->parentNodeGuaranteedHostFree();
     1751        if (parent && parent->isShadowBoundary())
     1752            return root;
     1753        root = parent;
     1754    }
     1755    return 0;
     1756}
     1757
     1758ContainerNode* Node::nonShadowBoundaryParentNode() const
     1759{
     1760    ContainerNode* parent = parentNode();
     1761    return parent && !parent->isShadowBoundary() ? parent : 0;
     1762}
     1763
    17431764bool Node::isInShadowTree()
    17441765{
  • trunk/Source/WebCore/dom/Node.h

    r86726 r87014  
    215215
    216216    Node* shadowAncestorNode();
     217    // Returns 0, a ShadowRoot, or a legacy shadow root.
    217218    Node* shadowTreeRootNode();
     219    // Returns 0, a child of ShadowRoot, or a legacy shadow root.
     220    Node* nonBoundaryShadowTreeRootNode();
    218221    bool isInShadowTree();
    219222    // Node's parent, shadow tree host, or SVG use.
     
    221224    // Use when it's guaranteed to that shadowHost is 0 and svgShadowHost is 0.
    222225    ContainerNode* parentNodeGuaranteedHostFree() const;
     226    // Returns the parent node, but 0 if the parent node is a ShadowRoot.
     227    ContainerNode* nonShadowBoundaryParentNode() const;
    223228
    224229    Element* shadowHost() const;
     
    451456    virtual void willRemove();
    452457    void createRendererIfNeeded();
    453     PassRefPtr<RenderStyle> styleForRenderer();
     458    virtual PassRefPtr<RenderStyle> styleForRenderer();
    454459    virtual bool rendererIsNeeded(RenderStyle*);
    455460    virtual bool childShouldCreateRenderer(Node*) const { return true; }
  • trunk/Source/WebCore/dom/Position.cpp

    r86325 r87014  
    8181    , m_isLegacyEditingPosition(true)
    8282{
     83    ASSERT(!m_anchorNode || !m_anchorNode->isShadowBoundary());
    8384}
    8485
     
    8990    , m_isLegacyEditingPosition(false)
    9091{
     92    ASSERT(!m_anchorNode || !m_anchorNode->isShadowBoundary());
    9193    ASSERT(anchorType != PositionIsOffsetInAnchor);
    9294}
     
    98100    , m_isLegacyEditingPosition(false)
    99101{
    100     ASSERT(!m_anchorNode || !editingIgnoresContent(m_anchorNode.get()));
     102    ASSERT(!m_anchorNode || !editingIgnoresContent(m_anchorNode.get()) || !m_anchorNode->isShadowBoundary());
    101103    ASSERT(anchorType == PositionIsOffsetInAnchor);
    102104}
     
    129131    case PositionIsBeforeAnchor:
    130132    case PositionIsAfterAnchor:
    131         return m_anchorNode->parentNode();
     133        return m_anchorNode->nonShadowBoundaryParentNode();
    132134    }
    133135    ASSERT_NOT_REACHED();
     
    168170    // FIXME: This should only be necessary for legacy positions, but is also needed for positions before and after Tables
    169171    if (m_offset <= 0 && m_anchorType != PositionIsAfterAnchor) {
    170         if (m_anchorNode->parentNode() && (editingIgnoresContent(m_anchorNode.get()) || isTableElement(m_anchorNode.get())))
     172        if (m_anchorNode->nonShadowBoundaryParentNode() && (editingIgnoresContent(m_anchorNode.get()) || isTableElement(m_anchorNode.get())))
    171173            return positionInParentBeforeNode(m_anchorNode.get());
    172174        return firstPositionInOrBeforeNode(m_anchorNode.get());
     
    271273    }
    272274
    273     ContainerNode* parent = n->parentNode();
     275    ContainerNode* parent = n->nonShadowBoundaryParentNode();
    274276    if (!parent)
    275277        return *this;
     
    303305    }
    304306
    305     ContainerNode* parent = n->parentNode();
     307    ContainerNode* parent = n->nonShadowBoundaryParentNode();
    306308    if (!parent)
    307309        return *this;
     
    370372
    371373    Node* boundary = m_anchorNode.get();
    372     while (boundary != documentElement && boundary->parentNode() && m_anchorNode->rendererIsEditable() == boundary->parentNode()->rendererIsEditable())
    373         boundary = boundary->parentNode();
     374    while (boundary != documentElement && boundary->nonShadowBoundaryParentNode() && m_anchorNode->rendererIsEditable() == boundary->parentNode()->rendererIsEditable())
     375        boundary = boundary->nonShadowBoundaryParentNode();
    374376   
    375377    return boundary;
     
    381383    if (isNull())
    382384        return true;
    383     return !deprecatedNode()->parentNode() && m_offset <= 0;
     385    return !deprecatedNode()->nonShadowBoundaryParentNode() && m_offset <= 0;
    384386}
    385387
     
    388390    if (isNull())
    389391        return true;
    390     return !deprecatedNode()->parentNode() && m_offset >= lastOffsetForEditing(deprecatedNode());
     392    return !deprecatedNode()->nonShadowBoundaryParentNode() && m_offset >= lastOffsetForEditing(deprecatedNode());
    391393}
    392394
  • trunk/Source/WebCore/dom/Position.h

    r81165 r87014  
    216216    // that the caller is trying to make a position relative to a disconnected node (which is likely an error)
    217217    // Specifically, editing/deleting/delete-ligature-001.html crashes with ASSERT(node->parentNode())
    218     return Position(node->parentNode(), node->nodeIndex(), Position::PositionIsOffsetInAnchor);
     218    return Position(node->nonShadowBoundaryParentNode(), node->nodeIndex(), Position::PositionIsOffsetInAnchor);
    219219}
    220220
    221221inline Position positionInParentAfterNode(const Node* node)
    222222{
    223     ASSERT(node->parentNode());
    224     return Position(node->parentNode(), node->nodeIndex() + 1, Position::PositionIsOffsetInAnchor);
     223    ASSERT(node->nonShadowBoundaryParentNode());
     224    return Position(node->nonShadowBoundaryParentNode(), node->nodeIndex() + 1, Position::PositionIsOffsetInAnchor);
    225225}
    226226
  • trunk/Source/WebCore/editing/CompositeEditCommand.cpp

    r87008 r87014  
    147147    ContainerNode* parent = refChild->parentNode();
    148148    ASSERT(parent);
     149    ASSERT(!parent->isShadowBoundary());
    149150    if (parent->lastChild() == refChild)
    150151        appendNode(insertChild, parent);
     
    205206void CompositeEditCommand::removeNode(PassRefPtr<Node> node)
    206207{
    207     if (!node || !node->parentNode())
     208    if (!node || !node->nonShadowBoundaryParentNode())
    208209        return;
    209210    applyCommandToComposite(RemoveNodeCommand::create(node));
  • trunk/Source/WebCore/editing/Editor.cpp

    r86813 r87014  
    29682968        setEnd(searchRange.get(), startInSelection ? selection.visibleEnd() : selection.visibleStart());
    29692969
    2970     RefPtr<Node> shadowTreeRoot = selection.shadowTreeRootNode();
     2970    RefPtr<Node> shadowTreeRoot = selection.nonBoundaryShadowTreeRootNode();
    29712971    if (shadowTreeRoot) {
    29722972        ExceptionCode ec = 0;
     
    30053005        searchRange = rangeOfContents(m_frame->document());
    30063006        if (forward)
    3007             searchRange->setStartAfter(shadowTreeRoot->shadowHost(), exception);
     3007            searchRange->setStartAfter(shadowTreeRoot->shadowAncestorNode(), exception);
    30083008        else
    3009             searchRange->setEndBefore(shadowTreeRoot->shadowHost(), exception);
     3009            searchRange->setEndBefore(shadowTreeRoot->shadowAncestorNode(), exception);
    30103010
    30113011        resultRange = findPlainText(searchRange.get(), target, options);
  • trunk/Source/WebCore/editing/FrameSelection.cpp

    r86325 r87014  
    14601460    if (isContentEditable()) {
    14611461        root = highestEditableRoot(m_selection.start());
    1462         if (Node* shadowRoot = shadowTreeRootNode())
    1463             selectStartTarget = shadowRoot->shadowHost();
     1462        if (Node* shadowRoot = m_selection.nonBoundaryShadowTreeRootNode())
     1463            selectStartTarget = shadowRoot->shadowAncestorNode();
    14641464        else
    14651465            selectStartTarget = root;
    14661466    } else {
    1467         root = shadowTreeRootNode();
     1467        root = m_selection.nonBoundaryShadowTreeRootNode();
    14681468        if (root)
    1469             selectStartTarget = root->shadowHost();
     1469            selectStartTarget = root->shadowAncestorNode();
    14701470        else {
    14711471            root = document->documentElement();
  • trunk/Source/WebCore/editing/FrameSelection.h

    r86193 r87014  
    123123    bool isContentEditable() const { return m_selection.isContentEditable(); }
    124124    bool isContentRichlyEditable() const { return m_selection.isContentRichlyEditable(); }
    125     Node* shadowTreeRootNode() const { return m_selection.shadowTreeRootNode(); }
    126125     
    127126    void moveTo(const Range*, EAffinity, bool userTriggered = false);
  • trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp

    r86295 r87014  
    168168    if (!startBlockNode
    169169            || !startBlockNode->isElementNode()
    170             || !startBlock->parentNode()
     170            || !startBlock->nonShadowBoundaryParentNode()
    171171            || isTableCell(startBlock)
    172172            || startBlock->hasTagName(formTag)
  • trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp

    r86983 r87014  
    214214        return;
    215215   
    216     ContainerNode* parent = node->parentNode();
     216    ContainerNode* parent = node->nonShadowBoundaryParentNode();
    217217    if (!parent)
    218218        return;
     
    228228        return;
    229229       
    230     ContainerNode* parent = refNode->parentNode();
     230    ContainerNode* parent = refNode->nonShadowBoundaryParentNode();
    231231    if (!parent)
    232232        return;
  • trunk/Source/WebCore/editing/VisibleSelection.cpp

    r85669 r87014  
    221221bool VisibleSelection::isAll(EditingBoundaryCrossingRule rule) const
    222222{
    223     return !shadowTreeRootNode() && visibleStart().previous(rule).isNull() && visibleEnd().next(rule).isNull();
     223    return !nonBoundaryShadowTreeRootNode() && visibleStart().previous(rule).isNull() && visibleEnd().next(rule).isNull();
    224224}
    225225
     
    458458        return;
    459459
    460     Node* startRootNode = m_start.anchorNode()->shadowTreeRootNode();
    461     Node* endRootNode = m_end.anchorNode()->shadowTreeRootNode();
     460    Node* startRootNode = m_start.anchorNode()->nonBoundaryShadowTreeRootNode();
     461    Node* endRootNode = m_end.anchorNode()->nonBoundaryShadowTreeRootNode();
    462462
    463463    if (!startRootNode && !endRootNode)
     
    468468
    469469    if (m_baseIsFirst) {
    470         m_extent = startRootNode ? lastPositionInNode(startRootNode) : positionBeforeNode(endRootNode->shadowHost());
     470        m_extent = startRootNode ? lastPositionInNode(startRootNode) : positionBeforeNode(endRootNode->shadowAncestorNode());
    471471        m_end = m_extent;
    472472    } else {
    473         m_extent = endRootNode ? firstPositionInNode(endRootNode) : positionAfterNode(startRootNode->shadowHost());
     473        m_extent = endRootNode ? firstPositionInNode(endRootNode) : positionAfterNode(startRootNode->shadowAncestorNode());
    474474        m_start = m_extent;
    475475    }
     
    598598}
    599599
    600 Node* VisibleSelection::shadowTreeRootNode() const
    601 {
    602     return start().deprecatedNode() ? start().deprecatedNode()->shadowTreeRootNode() : 0;
     600Node* VisibleSelection::nonBoundaryShadowTreeRootNode() const
     601{
     602    return start().deprecatedNode() ? start().deprecatedNode()->nonBoundaryShadowTreeRootNode() : 0;
    603603}
    604604
  • trunk/Source/WebCore/editing/VisibleSelection.h

    r85669 r87014  
    9797    bool isContentEditable() const;
    9898    bool isContentRichlyEditable() const;
    99     Node* shadowTreeRootNode() const;
     99    // Returns a shadow tree node for legacy shadow trees, a child of the
     100    // ShadowRoot node for new shadow trees, or 0 for non-shadow trees.
     101    Node* nonBoundaryShadowTreeRootNode() const;
    100102
    101103#ifndef NDEBUG
  • trunk/Source/WebCore/editing/htmlediting.cpp

    r86491 r87014  
    503503        return VisiblePosition(firstPositionInOrBeforeNode(node), DOWNSTREAM);
    504504    ASSERT(node->parentNode());
     505    ASSERT(!node->parentNode()->isShadowBoundary());
    505506    return positionInParentBeforeNode(node);
    506507}
     
    513514        return VisiblePosition(lastPositionInOrAfterNode(node), DOWNSTREAM);
    514515    ASSERT(node->parentNode());
     516    ASSERT(!node->parentNode()->isShadowBoundary());
    515517    return positionInParentAfterNode(node);
    516518}
  • trunk/Source/WebCore/html/HTMLInputElement.cpp

    r86976 r87014  
    102102PassRefPtr<HTMLInputElement> HTMLInputElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form, bool createdByParser)
    103103{
    104     return adoptRef(new HTMLInputElement(tagName, document, form, createdByParser));
     104    RefPtr<HTMLInputElement> inputElement = adoptRef(new HTMLInputElement(tagName, document, form, createdByParser));
     105    inputElement->createShadowSubtree();
     106    return inputElement.release();
     107}
     108
     109void HTMLInputElement::createShadowSubtree()
     110{
     111    m_inputType->createShadowSubtree();
    105112}
    106113
     
    121128    return m_name.isNull() ? emptyAtom : m_name;
    122129}
     130
     131HTMLElement* HTMLInputElement::innerTextElement() const
     132{
     133    return m_inputType->innerTextElement();
     134}
     135
     136HTMLElement* HTMLInputElement::innerBlockElement() const
     137{
     138    return m_inputType->innerBlockElement();
     139}
     140
     141HTMLElement* HTMLInputElement::innerSpinButtonElement() const
     142{
     143    return m_inputType->innerSpinButtonElement();
     144}
     145
     146HTMLElement* HTMLInputElement::outerSpinButtonElement() const
     147{
     148    return m_inputType->outerSpinButtonElement();
     149}
     150
     151HTMLElement* HTMLInputElement::resultsButtonElement() const
     152{
     153    return m_inputType->resultsButtonElement();
     154}
     155
     156HTMLElement* HTMLInputElement::cancelButtonElement() const
     157{
     158    return m_inputType->cancelButtonElement();
     159}
     160
     161#if ENABLE(INPUT_SPEECH)
     162HTMLElement* HTMLInputElement::speechButtonElement() const
     163{
     164    return m_inputType->speechButtonElement();
     165}
     166#endif
    123167
    124168bool HTMLInputElement::autoComplete() const
     
    702746            // to get the right styles and layout.
    703747            detach();
     748            m_inputType->destroyShadowSubtree();
     749            m_inputType->createShadowSubtree();
    704750            attach();
     751        } else {
     752            m_inputType->destroyShadowSubtree();
     753            m_inputType->createShadowSubtree();
    705754        }
    706755        setNeedsStyleRecalc();
  • trunk/Source/WebCore/html/HTMLInputElement.h

    r86832 r87014  
    109109#endif
    110110
     111    virtual HTMLElement* innerTextElement() const;
     112    HTMLElement* innerBlockElement() const;
     113    HTMLElement* innerSpinButtonElement() const;
     114    HTMLElement* outerSpinButtonElement() const;
     115    HTMLElement* resultsButtonElement() const;
     116    HTMLElement* cancelButtonElement() const;
     117#if ENABLE(INPUT_SPEECH)
     118    HTMLElement* speechButtonElement() const;
     119#endif
     120
    111121    bool checked() const { return m_isChecked; }
    112122    void setChecked(bool, bool sendChangeEvent = false);
     
    222232protected:
    223233    HTMLInputElement(const QualifiedName&, Document*, HTMLFormElement*, bool createdByParser);
    224 
     234    void createShadowSubtree();
    225235    virtual void defaultEventHandler(Event*);
    226236
  • trunk/Source/WebCore/html/HTMLIsIndexElement.cpp

    r76664 r87014  
    4242PassRefPtr<HTMLIsIndexElement> HTMLIsIndexElement::create(Document* document, HTMLFormElement* form)
    4343{
    44     return adoptRef(new HTMLIsIndexElement(isindexTag, document, form));
     44    RefPtr<HTMLIsIndexElement> element = adoptRef(new HTMLIsIndexElement(isindexTag, document, form));
     45    element->createShadowSubtree();
     46    return element.release();
    4547}
    4648
    4749PassRefPtr<HTMLIsIndexElement> HTMLIsIndexElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
    4850{
    49     return adoptRef(new HTMLIsIndexElement(tagName, document, form));
     51    RefPtr<HTMLIsIndexElement> element = adoptRef(new HTMLIsIndexElement(tagName, document, form));
     52    element->createShadowSubtree();
     53    return element.release();
    5054}
    5155
  • trunk/Source/WebCore/html/HTMLTextAreaElement.cpp

    r86832 r87014  
    4444#include "RenderTextControlMultiLine.h"
    4545#include "ScriptEventListener.h"
     46#include "ShadowRoot.h"
    4647#include "Text.h"
     48#include "TextControlInnerElements.h"
    4749#include "TextIterator.h"
    4850#include "VisibleSelection.h"
     
    8082PassRefPtr<HTMLTextAreaElement> HTMLTextAreaElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
    8183{
    82     return adoptRef(new HTMLTextAreaElement(tagName, document, form));
     84    RefPtr<HTMLTextAreaElement> textArea = adoptRef(new HTMLTextAreaElement(tagName, document, form));
     85    textArea->createShadowSubtree();
     86    return textArea.release();
     87}
     88
     89void HTMLTextAreaElement::createShadowSubtree()
     90{
     91    ExceptionCode ec = 0;
     92    ensureShadowRoot()->appendChild(TextControlInnerTextElement::create(document()), ec);
    8393}
    8494
  • trunk/Source/WebCore/html/HTMLTextAreaElement.h

    r86832 r87014  
    6666    enum WrapMethod { NoWrap, SoftWrap, HardWrap };
    6767
     68    void createShadowSubtree();
     69
    6870    void handleBeforeTextInsertedEvent(BeforeTextInsertedEvent*) const;
    6971    static String sanitizeUserInputValue(const String&, unsigned maxLength);
  • trunk/Source/WebCore/html/InputType.h

    r84695 r87014  
    4646class FileList;
    4747class FormDataList;
     48class HTMLElement;
    4849class HTMLFormElement;
    4950class HTMLInputElement;
    5051class KeyboardEvent;
    5152class MouseEvent;
     53class Node;
    5254class RenderArena;
    5355class RenderObject;
     
    182184
    183185    virtual void createShadowSubtree();
    184     void destroyShadowSubtree();
     186    virtual void destroyShadowSubtree();
     187
     188    virtual HTMLElement* innerBlockElement() const { return 0; }
     189    virtual HTMLElement* innerTextElement() const { return 0; }
     190    virtual HTMLElement* innerSpinButtonElement() const { return 0; }
     191    virtual HTMLElement* outerSpinButtonElement() const { return 0; }
     192    virtual HTMLElement* resultsButtonElement() const { return 0; }
     193    virtual HTMLElement* cancelButtonElement() const { return 0; }
     194#if ENABLE(INPUT_SPEECH)
     195    virtual HTMLElement* speechButtonElement() const { return 0; }
     196#endif
    185197
    186198    // Miscellaneous functions
  • trunk/Source/WebCore/html/SearchInputType.cpp

    r74895 r87014  
    3232#include "SearchInputType.h"
    3333
     34#include "HTMLInputElement.h"
     35#include "ShadowRoot.h"
     36#include "TextControlInnerElements.h"
    3437#include <wtf/PassOwnPtr.h>
    3538
    3639namespace WebCore {
     40
     41inline SearchInputType::SearchInputType(HTMLInputElement* element)
     42    : BaseTextInputType(element)
     43    , m_innerBlock(0)
     44    , m_resultsButton(0)
     45    , m_cancelButton(0)
     46{
     47}
    3748
    3849PassOwnPtr<InputType> SearchInputType::create(HTMLInputElement* element)
     
    5667}
    5768
     69void SearchInputType::createShadowSubtree()
     70{
     71    ASSERT(!m_innerBlock);
     72    ASSERT(!innerTextElement());
     73    ASSERT(!m_resultsButton);
     74    ASSERT(!m_cancelButton);
     75
     76    ExceptionCode ec = 0;
     77    Document* document = element()->document();
     78    RefPtr<HTMLElement> inner = TextControlInnerElement::create(document);
     79    m_innerBlock = inner.get();
     80    element()->ensureShadowRoot()->appendChild(inner.release(), ec);
     81
     82#if ENABLE(INPUT_SPEECH)
     83    if (element()->isSpeechEnabled()) {
     84        RefPtr<HTMLElement> speech = InputFieldSpeechButtonElement::create(document);
     85        setSpeechButtonElement(speech.get());
     86        element()->ensureShadowRoot()->appendChild(speech.release(), ec);
     87    }
     88#endif
     89
     90    RefPtr<HTMLElement> results = SearchFieldResultsButtonElement::create(document);
     91    m_resultsButton = results.get();
     92    m_innerBlock->appendChild(results.release(), ec);
     93
     94    RefPtr<HTMLElement> innerText = TextControlInnerTextElement::create(document);
     95    setInnerTextElement(innerText.get());
     96    m_innerBlock->appendChild(innerText.release(), ec);
     97
     98    RefPtr<HTMLElement> cancel = SearchFieldCancelButtonElement::create(element()->document());
     99    m_cancelButton = cancel.get();
     100    m_innerBlock->appendChild(cancel.release(), ec);
     101}
     102
     103void SearchInputType::destroyShadowSubtree()
     104{
     105    TextFieldInputType::destroyShadowSubtree();
     106    m_innerBlock = 0;
     107    m_resultsButton = 0;
     108    m_cancelButton = 0;
     109}
     110
     111
    58112} // namespace WebCore
  • trunk/Source/WebCore/html/SearchInputType.h

    r74895 r87014  
    3636namespace WebCore {
    3737
     38class SearchFieldCancelButtonElement;
     39class SearchFieldResultsButtonElement;
     40
    3841class SearchInputType : public BaseTextInputType {
    3942public:
    4043    static PassOwnPtr<InputType> create(HTMLInputElement*);
    4144
     45protected:
     46    virtual void createShadowSubtree();
     47    virtual void destroyShadowSubtree();
     48
    4249private:
    43     SearchInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
     50    SearchInputType(HTMLInputElement*);
    4451    virtual const AtomicString& formControlType() const;
    4552    virtual bool shouldRespectSpeechAttribute();
    4653    virtual bool isSearchField() const;
     54    virtual HTMLElement* innerBlockElement() const { return m_innerBlock; }
     55    virtual HTMLElement* resultsButtonElement() const { return m_resultsButton; }
     56    virtual HTMLElement* cancelButtonElement() const { return m_cancelButton; }
     57
     58    HTMLElement* m_innerBlock;
     59    HTMLElement* m_resultsButton;
     60    HTMLElement* m_cancelButton;
    4761};
    4862
  • trunk/Source/WebCore/html/TextFieldInputType.cpp

    r85998 r87014  
    3838#include "KeyboardEvent.h"
    3939#include "RenderTextControlSingleLine.h"
     40#include "RenderTheme.h"
     41#include "ShadowRoot.h"
     42#include "TextControlInnerElements.h"
    4043#include "TextEvent.h"
    4144#include "TextIterator.h"
     
    4447
    4548namespace WebCore {
     49
     50TextFieldInputType::TextFieldInputType(HTMLInputElement* element)
     51    : InputType(element)
     52    , m_innerText(0)
     53    , m_innerSpinButton(0)
     54    , m_outerSpinButton(0)
     55#if ENABLE(INPUT_SPEECH)
     56    , m_speechButton(0)
     57#endif
     58{
     59}
    4660
    4761bool TextFieldInputType::isTextField() const
     
    115129{
    116130    return new (arena) RenderTextControlSingleLine(element(), element()->placeholderShouldBeVisible());
     131}
     132
     133void TextFieldInputType::createShadowSubtree()
     134{
     135    ASSERT(!m_innerText);
     136    ASSERT(!m_innerSpinButton);
     137    ASSERT(!m_outerSpinButton);
     138
     139    bool shouldHaveSpinButton = RenderTheme::themeForPage(element()->document()->page())->shouldHaveSpinButton(element());
     140    bool hasDecorations = shouldHaveSpinButton;
     141#if ENABLE(INPUT_SPEECH)
     142    if (element()->isSpeechEnabled())
     143        hasDecorations = true;
     144#endif
     145
     146    ExceptionCode ec = 0;
     147    Document* document = element()->document();
     148    RefPtr<HTMLElement> innerText = TextControlInnerTextElement::create(document);
     149    m_innerText = innerText.get();
     150    element()->ensureShadowRoot()->appendChild(innerText.release(), ec);
     151    if (!hasDecorations)
     152        return;
     153
     154#if ENABLE(INPUT_SPEECH)
     155    ASSERT(!m_speechButton);
     156    if (element()->isSpeechEnabled()) {
     157        RefPtr<HTMLElement> speech = InputFieldSpeechButtonElement::create(document);
     158        m_speechButton = speech.get();
     159        element()->ensureShadowRoot()->appendChild(speech.release(), ec);
     160    }
     161#endif
     162
     163    if (shouldHaveSpinButton) {
     164        RefPtr<HTMLElement> inner = SpinButtonElement::createInner(document);
     165        RefPtr<HTMLElement> outer = SpinButtonElement::createOuter(document);
     166        m_innerSpinButton = inner.get();
     167        m_outerSpinButton = outer.get();
     168        element()->ensureShadowRoot()->appendChild(inner.release(), ec);
     169        element()->ensureShadowRoot()->appendChild(outer.release(), ec);
     170    }
     171}
     172
     173void TextFieldInputType::destroyShadowSubtree()
     174{
     175    InputType::destroyShadowSubtree();
     176    m_innerText = 0;
     177#if ENABLE(INPUT_SPEECH)
     178    m_speechButton = 0;
     179#endif
     180    m_innerSpinButton = 0;
     181    m_outerSpinButton = 0;
    117182}
    118183
  • trunk/Source/WebCore/html/TextFieldInputType.h

    r85998 r87014  
    4040class TextFieldInputType : public InputType {
    4141protected:
    42     TextFieldInputType(HTMLInputElement* element) : InputType(element) { }
     42    TextFieldInputType(HTMLInputElement*);
    4343    virtual bool canSetSuggestedValue();
    4444    virtual void handleKeydownEvent(KeyboardEvent*);
    4545    void handleKeydownEventForSpinButton(KeyboardEvent*);
    4646    void handleWheelEventForSpinButton(WheelEvent*);
     47
     48    virtual HTMLElement* innerTextElement() const { return m_innerText; }
     49    virtual HTMLElement* innerSpinButtonElement() const { return m_innerSpinButton; }
     50    virtual HTMLElement* outerSpinButtonElement() const { return m_outerSpinButton; }
     51#if ENABLE(INPUT_SPEECH)
     52    virtual HTMLElement* speechButtonElement() const { return m_speechButton; }
     53#endif
     54
     55protected:
     56    virtual void createShadowSubtree();
     57    virtual void destroyShadowSubtree();
     58    void setInnerTextElement(HTMLElement* element) { m_innerText = element; }
     59#if ENABLE(INPUT_SPEECH)
     60    void setSpeechButtonElement(HTMLElement* element) { m_speechButton = element; }
     61#endif
    4762
    4863private:
     
    5671    virtual String sanitizeValue(const String&);
    5772    virtual bool shouldRespectListAttribute();
     73
     74    HTMLElement* m_innerText;
     75    HTMLElement* m_innerSpinButton;
     76    HTMLElement* m_outerSpinButton;
     77#if ENABLE(INPUT_SPEECH)
     78    HTMLElement* m_speechButton;
     79#endif
    5880};
    5981
  • trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp

    r83862 r87014  
    4848using namespace HTMLNames;
    4949
    50 TextControlInnerElement::TextControlInnerElement(Document* document, HTMLElement* shadowParent)
     50TextControlInnerElement::TextControlInnerElement(Document* document)
    5151    : HTMLDivElement(divTag, document)
    5252{
    53     setShadowHost(shadowParent);
    54 }
    55 
    56 PassRefPtr<TextControlInnerElement> TextControlInnerElement::create(HTMLElement* shadowParent)
    57 {
    58     return adoptRef(new TextControlInnerElement(shadowParent->document(), shadowParent));
    59 }
    60 
    61 void TextControlInnerElement::attachInnerElement(Node* parent, PassRefPtr<RenderStyle> style, RenderArena* arena)
    62 {
    63     // When adding these elements, create the renderer & style first before adding to the DOM.
    64     // Otherwise, the render tree will create some anonymous blocks that will mess up our layout.
    65 
    66     // Create the renderer with the specified style
    67     RenderObject* renderer = createRenderer(arena, style.get());
    68     if (renderer) {
    69         setRenderer(renderer);
    70         renderer->setStyle(style);
    71     }
    72 
    73     // Set these explicitly since this normally happens during an attach()
    74     setAttached();
    75     setInDocument();
    76 
    77     // For elements not yet in shadow DOM, add the node to the DOM normally.
    78     if (!isShadowRoot()) {
    79         // FIXME: This code seems very wrong.  Why are we magically adding |this| to the DOM here?
    80         //        We shouldn't be calling parser API methods outside of the parser!
    81         parent->deprecatedParserAddChild(this);
    82     }
    83 
    84     // Add the renderer to the render tree
    85     if (renderer)
    86         parent->renderer()->addChild(renderer);
    87 }
    88 
    89 void TextControlInnerElement::detach()
    90 {
    91     HTMLDivElement::detach();
    92     // FIXME: Remove once shadow DOM uses Element::setShadowRoot().
    93     if (shadowHost())
    94         setShadowHost(0);
     53}
     54
     55PassRefPtr<TextControlInnerElement> TextControlInnerElement::create(Document* document)
     56{
     57    return adoptRef(new TextControlInnerElement(document));
     58}
     59
     60PassRefPtr<RenderStyle> TextControlInnerElement::styleForRenderer()
     61{
     62    RenderTextControlSingleLine* parentRenderer = toRenderTextControlSingleLine(shadowAncestorNode()->renderer());
     63    return parentRenderer->createInnerBlockStyle(parentRenderer->style());
    9564}
    9665
    9766// ----------------------------
    9867
    99 inline TextControlInnerTextElement::TextControlInnerTextElement(Document* document, HTMLElement* shadowParent)
    100     : TextControlInnerElement(document, shadowParent)
    101 {
    102 }
    103 
    104 PassRefPtr<TextControlInnerTextElement> TextControlInnerTextElement::create(Document* document, HTMLElement* shadowParent)
    105 {
    106     return adoptRef(new TextControlInnerTextElement(document, shadowParent));
     68inline TextControlInnerTextElement::TextControlInnerTextElement(Document* document)
     69    : HTMLDivElement(divTag, document)
     70{
     71}
     72
     73PassRefPtr<TextControlInnerTextElement> TextControlInnerTextElement::create(Document* document)
     74{
     75    return adoptRef(new TextControlInnerTextElement(document));
    10776}
    10877
     
    135104}
    136105
     106PassRefPtr<RenderStyle> TextControlInnerTextElement::styleForRenderer()
     107{
     108    RenderTextControl* parentRenderer = toRenderTextControl(shadowAncestorNode()->renderer());
     109    return parentRenderer->createInnerTextStyle(parentRenderer->style());
     110}
     111
    137112// ----------------------------
    138113
    139114inline SearchFieldResultsButtonElement::SearchFieldResultsButtonElement(Document* document)
    140     : TextControlInnerElement(document)
     115    : HTMLDivElement(divTag, document)
    141116{
    142117}
     
    145120{
    146121    return adoptRef(new SearchFieldResultsButtonElement(document));
     122}
     123
     124PassRefPtr<RenderStyle> SearchFieldResultsButtonElement::styleForRenderer()
     125{
     126    RenderTextControlSingleLine* parentRenderer = toRenderTextControlSingleLine(shadowAncestorNode()->renderer());
     127    return parentRenderer->createResultsButtonStyle(parentRenderer->style());
    147128}
    148129
     
    169150
    170151inline SearchFieldCancelButtonElement::SearchFieldCancelButtonElement(Document* document)
    171     : TextControlInnerElement(document)
     152    : HTMLDivElement(divTag, document)
    172153    , m_capturing(false)
    173154{
     
    177158{
    178159    return adoptRef(new SearchFieldCancelButtonElement(document));
     160}
     161
     162PassRefPtr<RenderStyle> SearchFieldCancelButtonElement::styleForRenderer()
     163{
     164    RenderTextControlSingleLine* parentRenderer = toRenderTextControlSingleLine(shadowAncestorNode()->renderer());
     165    return parentRenderer->createCancelButtonStyle(parentRenderer->style());
    179166}
    180167
     
    185172            frame->eventHandler()->setCapturingMouseEventsNode(0);
    186173    }
    187     TextControlInnerElement::detach();
     174    HTMLDivElement::detach();
    188175}
    189176
     
    225212// ----------------------------
    226213
    227 inline SpinButtonElement::SpinButtonElement(HTMLElement* shadowParent)
    228     : TextControlInnerElement(shadowParent->document(), shadowParent)
     214inline SpinButtonElement::SpinButtonElement(Document* document, bool isInner)
     215    : HTMLDivElement(divTag, document)
     216    , m_isInner(isInner)
    229217    , m_capturing(false)
    230218    , m_upDownState(Indeterminate)
     
    234222}
    235223
    236 PassRefPtr<SpinButtonElement> SpinButtonElement::create(HTMLElement* shadowParent)
    237 {
    238     return adoptRef(new SpinButtonElement(shadowParent));
     224PassRefPtr<SpinButtonElement> SpinButtonElement::createInner(Document* document)
     225{
     226    return adoptRef(new SpinButtonElement(document, true));
     227}
     228
     229PassRefPtr<SpinButtonElement> SpinButtonElement::createOuter(Document* document)
     230{
     231    return adoptRef(new SpinButtonElement(document, false));
     232}
     233
     234PassRefPtr<RenderStyle> SpinButtonElement::styleForRenderer()
     235{
     236    RenderTextControlSingleLine* parentRenderer = toRenderTextControlSingleLine(shadowAncestorNode()->renderer());
     237    return m_isInner ? parentRenderer->createInnerSpinButtonStyle() : parentRenderer->createOuterSpinButtonStyle();
    239238}
    240239
     
    248247        }
    249248    }
    250     TextControlInnerElement::detach();
     249    HTMLDivElement::detach();
    251250}
    252251
     
    350349    if (!hovered() && flag)
    351350        m_upDownState = Indeterminate;
    352     TextControlInnerElement::setHovered(flag);
     351    HTMLDivElement::setHovered(flag);
    353352}
    354353
     
    358357#if ENABLE(INPUT_SPEECH)
    359358
    360 inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(HTMLElement* shadowParent)
    361     : TextControlInnerElement(shadowParent->document(), shadowParent)
     359inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Document* document)
     360    : HTMLDivElement(divTag, document)
    362361    , m_capturing(false)
    363362    , m_state(Idle)
    364     , m_listenerId(document()->page()->speechInput()->registerListener(this))
     363    , m_listenerId(0)
    365364{
    366365}
     
    376375}
    377376
    378 PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create(HTMLElement* shadowParent)
    379 {
    380     return adoptRef(new InputFieldSpeechButtonElement(shadowParent));
     377PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create(Document* document)
     378{
     379    return adoptRef(new InputFieldSpeechButtonElement(document));
    381380}
    382381
     
    423422    }
    424423
    425     if (event->type() == eventNames().clickEvent) {
     424    if (event->type() == eventNames().clickEvent && m_listenerId) {
    426425        switch (m_state) {
    427426        case Idle: {
     
    491490}
    492491
     492void InputFieldSpeechButtonElement::attach()
     493{
     494    ASSERT(!m_listenerId);
     495    m_listenerId = document()->page()->speechInput()->registerListener(this);
     496    HTMLDivElement::attach();
     497}
     498
    493499void InputFieldSpeechButtonElement::detach()
    494500{
     
    505511    }
    506512
    507     TextControlInnerElement::detach();
     513    HTMLDivElement::detach();
     514}
     515
     516PassRefPtr<RenderStyle> InputFieldSpeechButtonElement::styleForRenderer()
     517{
     518    RenderTextControlSingleLine* parentRenderer = toRenderTextControlSingleLine(shadowAncestorNode()->renderer());
     519    return parentRenderer->createSpeechButtonStyle();
    508520}
    509521
  • trunk/Source/WebCore/html/shadow/TextControlInnerElements.h

    r82595 r87014  
    3939class TextControlInnerElement : public HTMLDivElement {
    4040public:
    41     static PassRefPtr<TextControlInnerElement> create(HTMLElement* shadowParent);
    42     virtual void detach();
    43 
    44     void attachInnerElement(Node*, PassRefPtr<RenderStyle>, RenderArena*);
     41    static PassRefPtr<TextControlInnerElement> create(Document*);
    4542
    4643protected:
    47     TextControlInnerElement(Document*, HTMLElement* shadowParent = 0);
     44    TextControlInnerElement(Document*);
     45    virtual PassRefPtr<RenderStyle> styleForRenderer();
    4846
    4947private:
     
    5149};
    5250
    53 class TextControlInnerTextElement : public TextControlInnerElement {
     51class TextControlInnerTextElement : public HTMLDivElement {
    5452public:
    55     static PassRefPtr<TextControlInnerTextElement> create(Document*, HTMLElement* shadowParent);
     53    static PassRefPtr<TextControlInnerTextElement> create(Document*);
    5654
    5755    virtual void defaultEventHandler(Event*);
    5856
    5957private:
    60     TextControlInnerTextElement(Document*, HTMLElement* shadowParent);
    61     virtual RenderObject* createRenderer(RenderArena*, RenderStyle*); 
     58    TextControlInnerTextElement(Document*);
     59    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
     60    virtual PassRefPtr<RenderStyle> styleForRenderer();
     61    virtual bool isMouseFocusable() const { return false; }
    6262};
    6363
    64 class SearchFieldResultsButtonElement : public TextControlInnerElement {
     64class SearchFieldResultsButtonElement : public HTMLDivElement {
    6565public:
    6666    static PassRefPtr<SearchFieldResultsButtonElement> create(Document*);
     
    7070private:
    7171    SearchFieldResultsButtonElement(Document*);
     72    virtual PassRefPtr<RenderStyle> styleForRenderer();
     73    virtual bool isMouseFocusable() const { return false; }
    7274};
    7375
    74 class SearchFieldCancelButtonElement : public TextControlInnerElement {
     76class SearchFieldCancelButtonElement : public HTMLDivElement {
    7577public:
    7678    static PassRefPtr<SearchFieldCancelButtonElement> create(Document*);
     
    8082private:
    8183    SearchFieldCancelButtonElement(Document*);
    82 
     84    virtual PassRefPtr<RenderStyle> styleForRenderer();
    8385    virtual void detach();
     86    virtual bool isMouseFocusable() const { return false; }
    8487
    8588    bool m_capturing;
    8689};
    8790
    88 class SpinButtonElement : public TextControlInnerElement {
     91class SpinButtonElement : public HTMLDivElement {
    8992public:
    9093    enum UpDownState {
     
    9497    };
    9598
    96     static PassRefPtr<SpinButtonElement> create(HTMLElement*);
     99    static PassRefPtr<SpinButtonElement> createInner(Document*);
     100    static PassRefPtr<SpinButtonElement> createOuter(Document*);
    97101    UpDownState upDownState() const { return m_upDownState; }
    98102
    99103private:
    100     SpinButtonElement(HTMLElement*);
     104    SpinButtonElement(Document*, bool isInner);
    101105
     106    virtual PassRefPtr<RenderStyle> styleForRenderer();
    102107    virtual void detach();
    103108    virtual bool isSpinButtonElement() const { return true; }
     
    110115    void repeatingTimerFired(Timer<SpinButtonElement>*);
    111116    virtual void setHovered(bool = true);
     117    virtual bool isMouseFocusable() const { return false; }
    112118
     119    bool m_isInner;
    113120    bool m_capturing;
    114121    UpDownState m_upDownState;
     
    120127
    121128class InputFieldSpeechButtonElement
    122     : public TextControlInnerElement,
     129    : public HTMLDivElement,
    123130      public SpeechInputListener {
    124131public:
     
    129136    };
    130137
    131     static PassRefPtr<InputFieldSpeechButtonElement> create(HTMLElement*);
     138    static PassRefPtr<InputFieldSpeechButtonElement> create(Document*);
    132139    virtual ~InputFieldSpeechButtonElement();
    133140
     
    143150
    144151private:
    145     InputFieldSpeechButtonElement(HTMLElement*);
     152    InputFieldSpeechButtonElement(Document*);
    146153    SpeechInput* speechInput();
    147154    void setState(SpeechInputState state);
     155    virtual PassRefPtr<RenderStyle> styleForRenderer();
     156    virtual bool isMouseFocusable() const { return false; }
     157    virtual void attach();
    148158
    149159    bool m_capturing;
  • trunk/Source/WebCore/rendering/RenderTextControl.cpp

    r86807 r87014  
    8181RenderTextControl::~RenderTextControl()
    8282{
    83     // The children renderers have already been destroyed by destroyLeftoverChildren
    84     if (m_innerText)
    85         m_innerText->detach();
    8683}
    8784
     
    8986{
    9087    RenderBlock::styleDidChange(diff, oldStyle);
    91 
    92     if (m_innerText) {
    93         RenderBlock* textBlockRenderer = toRenderBlock(m_innerText->renderer());
    94         RefPtr<RenderStyle> textBlockStyle = createInnerTextStyle(style());
     88    Element* innerText = innerTextElement();
     89    if (!innerText)
     90        return;
     91    RenderBlock* innerTextRenderer = toRenderBlock(innerText->renderer());
     92    if (innerTextRenderer) {
    9593        // We may have set the width and the height in the old style in layout().
    9694        // Reset them now to avoid getting a spurious layout hint.
    97         textBlockRenderer->style()->setHeight(Length());
    98         textBlockRenderer->style()->setWidth(Length());
    99         setInnerTextStyle(textBlockStyle);
    100     }
    101 }
    102 
    103 void RenderTextControl::setInnerTextStyle(PassRefPtr<RenderStyle> style)
    104 {
    105     if (m_innerText) {
    106         RefPtr<RenderStyle> textStyle = style;
    107         m_innerText->renderer()->setStyle(textStyle);
    108         for (Node* n = m_innerText->firstChild(); n; n = n->traverseNextNode(m_innerText.get())) {
    109             if (n->renderer())
    110                 n->renderer()->setStyle(textStyle);
    111         }
     95        innerTextRenderer->style()->setHeight(Length());
     96        innerTextRenderer->style()->setWidth(Length());
     97        innerTextRenderer->setStyle(createInnerTextStyle(style()));
     98        innerText->setNeedsStyleRecalc();
    11299    }
    113100}
     
    139126}
    140127
    141 void RenderTextControl::createSubtreeIfNeeded(TextControlInnerElement* innerBlock)
    142 {
    143     if (!m_innerText) {
    144         // Create the text block element
    145         // For non-search fields, there is no intermediate innerBlock as the shadow node.
    146         // m_innerText will be the shadow node in that case.       
    147         RenderStyle* parentStyle = innerBlock ? innerBlock->renderer()->style() : style();
    148         m_innerText = TextControlInnerTextElement::create(document(), innerBlock ? 0 : toHTMLElement(node()));
    149         m_innerText->attachInnerElement(innerBlock ? innerBlock : node(), createInnerTextStyle(parentStyle), renderArena());
    150     }
    151 }
    152 
    153128int RenderTextControl::textBlockHeight() const
    154129{
     
    158133int RenderTextControl::textBlockWidth() const
    159134{
    160     return width() - borderAndPaddingWidth() - m_innerText->renderBox()->paddingLeft() - m_innerText->renderBox()->paddingRight();
     135    Element* innerText = innerTextElement();
     136    ASSERT(innerText);
     137    return width() - borderAndPaddingWidth() - innerText->renderBox()->paddingLeft() - innerText->renderBox()->paddingRight();
    161138}
    162139
    163140void RenderTextControl::updateFromElement()
    164141{
    165     updateUserModifyProperty(node(), m_innerText->renderer()->style());
     142    Element* innerText = innerTextElement();
     143    if (innerText)
     144        updateUserModifyProperty(node(), innerText->renderer()->style());
    166145}
    167146
     
    169148{
    170149    String value = innerTextValue;
    171     if (value != text() || !m_innerText->hasChildNodes()) {
     150    if (value != text() || !innerTextElement()->hasChildNodes()) {
    172151        if (value != text()) {
    173152            if (Frame* frame = this->frame()) {
     
    180159
    181160        ExceptionCode ec = 0;
    182         m_innerText->setInnerText(value, ec);
     161        innerTextElement()->setInnerText(value, ec);
    183162        ASSERT(!ec);
    184163
    185164        if (value.endsWith("\n") || value.endsWith("\r")) {
    186             m_innerText->appendChild(HTMLBRElement::create(document()), ec);
     165            innerTextElement()->appendChild(HTMLBRElement::create(document()), ec);
    187166            ASSERT(!ec);
    188167        }
     
    219198bool RenderTextControl::hasVisibleTextArea() const
    220199{
    221     return style()->visibility() == HIDDEN || !m_innerText || !m_innerText->renderer() || !m_innerText->renderBox()->height();
     200    HTMLElement* innerText = innerTextElement();
     201    return style()->visibility() == HIDDEN || !innerText || !innerText->renderer() || !innerText->renderBox()->height();
    222202}
    223203
     
    259239bool RenderTextControl::isSelectableElement(Node* node) const
    260240{
    261     if (!node || !m_innerText)
     241    if (!node)
    262242        return false;
    263    
    264     if (node->rootEditableElement() == m_innerText)
     243
     244    HTMLElement* innerText = innerTextElement();
     245    if (!innerText)
     246        return false;
     247   
     248    if (node->rootEditableElement() == innerText)
    265249        return true;
    266250   
    267     if (!m_innerText->contains(node))
     251    if (!innerText->contains(node))
    268252        return false;
    269253   
     
    287271{
    288272    ASSERT(start <= end);
    289     if (!m_innerText)
     273    HTMLElement* innerText = innerTextElement();
     274    if (!innerText)
    290275        return 0;
    291276
    292     if (!m_innerText->firstChild())
    293         return Range::create(document(), m_innerText, 0, m_innerText, 0);
     277    if (!innerText->firstChild())
     278        return Range::create(document(), innerText, 0, innerText, 0);
    294279
    295280    int offset = 0;
    296281    Node* startNode = 0;
    297282    Node* endNode = 0;
    298     for (Node* node = m_innerText->firstChild(); node; node = node->traverseNextNode(m_innerText.get())) {
     283    for (Node* node = innerText->firstChild(); node; node = node->traverseNextNode(innerText)) {
    299284        ASSERT(!node->firstChild());
    300285        ASSERT(node->isTextNode() || node->hasTagName(brTag));
     
    321306{
    322307    if (index <= 0)
    323         return VisiblePosition(Position(m_innerText.get(), 0, Position::PositionIsOffsetInAnchor), DOWNSTREAM);
     308        return VisiblePosition(Position(innerTextElement(), 0, Position::PositionIsOffsetInAnchor), DOWNSTREAM);
    324309    ExceptionCode ec = 0;
    325310    RefPtr<Range> range = Range::create(document());
    326     range->selectNodeContents(m_innerText.get(), ec);
     311    range->selectNodeContents(innerTextElement(), ec);
    327312    ASSERT(!ec);
    328313    CharacterIterator it(range.get());
     
    342327    ExceptionCode ec = 0;
    343328    RefPtr<Range> range = Range::create(document());
    344     range->setStart(m_innerText.get(), 0, ec);
     329    range->setStart(innerTextElement(), 0, ec);
    345330    ASSERT(!ec);
    346331    range->setEnd(indexPosition.deprecatedNode(), indexPosition.deprecatedEditingOffset(), ec);
     
    366351String RenderTextControl::text()
    367352{
    368     if (!m_innerText)
     353    HTMLElement* innerText = innerTextElement();
     354    if (!innerText)
    369355        return "";
    370356 
    371357    Vector<UChar> result;
    372358
    373     for (Node* n = m_innerText.get(); n; n = n->traverseNextNode(m_innerText.get())) {
     359    for (Node* n = innerText; n; n = n->traverseNextNode(innerText)) {
    374360        if (n->hasTagName(brTag))
    375361            result.append(&newlineCharacter, 1);
     
    402388String RenderTextControl::textWithHardLineBreaks()
    403389{
    404     if (!m_innerText)
     390    HTMLElement* innerText = innerTextElement();
     391    if (!innerText)
    405392        return "";
    406393
    407     RenderBlock* renderer = toRenderBlock(m_innerText->renderer());
     394    RenderBlock* renderer = toRenderBlock(innerText->renderer());
    408395    if (!renderer)
    409396        return "";
     
    419406    Vector<UChar> result;
    420407
    421     for (Node* n = m_innerText->firstChild(); n; n = n->traverseNextNode(m_innerText.get())) {
     408    for (Node* n = innerText->firstChild(); n; n = n->traverseNextNode(innerText)) {
    422409        if (n->hasTagName(brTag))
    423410            result.append(&newlineCharacter, 1);
     
    452439void RenderTextControl::computeLogicalHeight()
    453440{
    454     setHeight(m_innerText->renderBox()->borderTop() + m_innerText->renderBox()->borderBottom() +
    455               m_innerText->renderBox()->paddingTop() + m_innerText->renderBox()->paddingBottom() +
    456               m_innerText->renderBox()->marginTop() + m_innerText->renderBox()->marginBottom());
    457 
    458     adjustControlHeightBasedOnLineHeight(m_innerText->renderBox()->lineHeight(true, HorizontalLine, PositionOfInteriorLineBoxes));
     441    HTMLElement* innerText = innerTextElement();
     442    ASSERT(innerText);
     443    RenderBox* innerTextRenderBox = innerText->renderBox();
     444
     445    setHeight(innerTextRenderBox->borderTop() + innerTextRenderBox->borderBottom() +
     446              innerTextRenderBox->paddingTop() + innerTextRenderBox->paddingBottom() +
     447              innerTextRenderBox->marginTop() + innerTextRenderBox->marginBottom());
     448
     449    adjustControlHeightBasedOnLineHeight(innerText->renderBox()->lineHeight(true, HorizontalLine, PositionOfInteriorLineBoxes));
    459450    setHeight(height() + borderAndPaddingHeight());
    460451
    461452    // We are able to have a horizontal scrollbar if the overflow style is scroll, or if its auto and there's no word wrap.
    462     if (style()->overflowX() == OSCROLL ||  (style()->overflowX() == OAUTO && m_innerText->renderer()->style()->wordWrap() == NormalWordWrap))
     453    if (style()->overflowX() == OSCROLL ||  (style()->overflowX() == OAUTO && innerText->renderer()->style()->wordWrap() == NormalWordWrap))
    463454        setHeight(height() + scrollbarThickness());
    464455
     
    468459void RenderTextControl::hitInnerTextElement(HitTestResult& result, const IntPoint& pointInContainer, int tx, int ty)
    469460{
    470     result.setInnerNode(m_innerText.get());
    471     result.setInnerNonSharedNode(m_innerText.get());
     461    HTMLElement* innerText = innerTextElement();
     462    result.setInnerNode(innerText);
     463    result.setInnerNonSharedNode(innerText);
    472464    result.setLocalPoint(pointInContainer -
    473         IntSize(tx + x() + m_innerText->renderBox()->x(), ty + y() + m_innerText->renderBox()->y()));
     465        IntSize(tx + x() + innerText->renderBox()->x(), ty + y() + innerText->renderBox()->y()));
    474466}
    475467
     
    478470    if (event->type() == eventNames().blurEvent || event->type() == eventNames().focusEvent)
    479471        return;
    480     m_innerText->defaultEventHandler(event);
     472    innerTextElement()->defaultEventHandler(event);
    481473}
    482474
     
    565557        // Use average character width. Matches IE.
    566558        AtomicString family = style()->font().family().family();
    567         m_maxPreferredLogicalWidth = preferredContentWidth(getAvgCharWidth(family)) + m_innerText->renderBox()->paddingLeft() + m_innerText->renderBox()->paddingRight();
     559        RenderBox* innerTextRenderBox = innerTextElement()->renderBox();
     560        m_maxPreferredLogicalWidth = preferredContentWidth(getAvgCharWidth(family)) + innerTextRenderBox->paddingLeft() + innerTextRenderBox->paddingRight();
    568561    }
    569562
     
    603596    if (width() && height())
    604597        rects.append(IntRect(tx, ty, width(), height()));
    605 }
    606 
    607 HTMLElement* RenderTextControl::innerTextElement() const
    608 {
    609     return m_innerText.get();
    610598}
    611599
  • trunk/Source/WebCore/rendering/RenderTextControl.h

    r86807 r87014  
    3535    virtual ~RenderTextControl();
    3636
    37     HTMLElement* innerTextElement() const;
     37    virtual HTMLElement* innerTextElement() const = 0;
     38    virtual PassRefPtr<RenderStyle> createInnerTextStyle(const RenderStyle* startStyle) const = 0;
    3839
    3940    bool lastChangeWasUserEdit() const { return m_lastChangeWasUserEdit; }
     
    6364    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
    6465
    65     void createSubtreeIfNeeded(TextControlInnerElement* innerBlock);
    6666    void hitInnerTextElement(HitTestResult&, const IntPoint& pointInContainer, int tx, int ty);
    6767    void forwardEvent(Event*);
     
    7777    virtual void adjustControlHeightBasedOnLineHeight(int lineHeight) = 0;
    7878    virtual void cacheSelection(int start, int end) = 0;
    79     virtual PassRefPtr<RenderStyle> createInnerTextStyle(const RenderStyle* startStyle) const = 0;
    8079    virtual RenderStyle* textBaseStyle() const = 0;
    8180
     
    9291    virtual bool canHaveChildren() const { return false; }
    9392    virtual bool avoidsFloats() const { return true; }
    94     void setInnerTextStyle(PassRefPtr<RenderStyle>);
    9593    virtual void paintObject(PaintInfo&, int tx, int ty);
    9694   
     
    114112
    115113    bool m_lastChangeWasUserEdit;
    116     RefPtr<TextControlInnerTextElement> m_innerText;
    117114};
    118115
  • trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp

    r86807 r87014  
    2929#include "HTMLTextAreaElement.h"
    3030#include "HitTestResult.h"
     31#include "ShadowRoot.h"
     32#include "TextControlInnerElements.h"
    3133
    3234namespace WebCore {
     
    4143    if (node() && node()->inDocument())
    4244        static_cast<HTMLTextAreaElement*>(node())->rendererWillBeDestroyed();
     45}
     46
     47HTMLElement* RenderTextControlMultiLine::innerTextElement() const
     48{
     49    return toHTMLElement(toElement(node())->shadowRoot()->firstChild());
    4350}
    4451
     
    103110void RenderTextControlMultiLine::updateFromElement()
    104111{
    105     createSubtreeIfNeeded(0);
    106112    RenderTextControl::updateFromElement();
    107113
  • trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h

    r86705 r87014  
    3131    RenderTextControlMultiLine(Node*, bool);
    3232    virtual ~RenderTextControlMultiLine();
     33
     34    virtual HTMLElement* innerTextElement() const;
    3335
    3436    void forwardEvent(Event*);
  • trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp

    r86807 r87014  
    8787        m_searchPopup = 0;
    8888    }
    89  
    90     if (m_innerBlock) {
    91         m_innerBlock->detach();
    92         m_innerBlock = 0;
    93     }
    94 
    95     if (m_innerSpinButton)
    96         m_innerSpinButton->detach();
    97     if (m_outerSpinButton)
    98         m_outerSpinButton->detach();
     89}
     90
     91HTMLElement* RenderTextControlSingleLine::innerTextElement() const
     92{
     93    return inputElement()->innerTextElement();
     94}
     95
     96inline HTMLElement* RenderTextControlSingleLine::innerBlockElement() const
     97{
     98    return inputElement()->innerBlockElement();
     99}
     100
     101inline HTMLElement* RenderTextControlSingleLine::innerSpinButtonElement() const
     102{
     103    return inputElement()->innerSpinButtonElement();
     104}
     105
     106inline HTMLElement* RenderTextControlSingleLine::outerSpinButtonElement() const
     107{
     108    return inputElement()->outerSpinButtonElement();
     109}
     110
     111inline HTMLElement* RenderTextControlSingleLine::resultsButtonElement() const
     112{
     113    return inputElement()->resultsButtonElement();
     114}
     115
     116inline HTMLElement* RenderTextControlSingleLine::cancelButtonElement() const
     117{
     118    return inputElement()->cancelButtonElement();
     119}
     120
    99121#if ENABLE(INPUT_SPEECH)
    100     if (m_speechButton)
    101         m_speechButton->detach();
     122inline HTMLElement* RenderTextControlSingleLine::speechButtonElement() const
     123{
     124    return inputElement()->speechButtonElement();
     125}
    102126#endif
    103 }
    104127
    105128RenderStyle* RenderTextControlSingleLine::textBaseStyle() const
    106129{
    107     return m_innerBlock ? m_innerBlock->renderer()->style() : style();
     130    HTMLElement* innerBlock = innerBlockElement();
     131    return innerBlock ? innerBlock->renderer()->style() : style();
    108132}
    109133
     
    199223    input->setNeedsStyleRecalc();
    200224
    201     if (m_cancelButton)
     225    if (cancelButtonElement())
    202226        updateCancelButtonVisibility();
    203227
     
    256280
    257281    RenderBox* innerTextRenderer = innerTextElement()->renderBox();
    258     RenderBox* innerBlockRenderer = m_innerBlock ? m_innerBlock->renderBox() : 0;
     282    HTMLElement* innerBlock = innerBlockElement();
     283    RenderBox* innerBlockRenderer = innerBlock ? innerBlock->renderBox() : 0;
    259284
    260285    // Set the text block height
     
    266291            relayoutChildren = true;
    267292        innerTextRenderer->style()->setHeight(Length(desiredHeight, Fixed));
    268         if (m_innerBlock)
     293        if (innerBlock)
    269294            innerBlockRenderer->style()->setHeight(Length(desiredHeight, Fixed));
    270295    }
     
    276301    innerTextRenderer->style()->setWidth(Length(desiredWidth, Fixed));
    277302
    278     if (m_innerBlock) {
     303    if (innerBlock) {
    279304        int innerBlockWidth = width() - borderAndPaddingWidth();
    280305        if (innerBlockWidth != innerBlockRenderer->width())
     
    292317
    293318    // Ignores the paddings for the inner spin button.
    294     if (RenderBox* spinBox = m_innerSpinButton ? m_innerSpinButton->renderBox() : 0) {
     319    HTMLElement* innerSpinButton = innerSpinButtonElement();
     320    if (RenderBox* spinBox = innerSpinButton ? innerSpinButton->renderBox() : 0) {
    295321        spinBox->setLocation(IntPoint(spinBox->x() + paddingRight(), borderTop()));
    296322        spinBox->setHeight(height() - borderTop() - borderBottom());
     
    298324
    299325#if ENABLE(INPUT_SPEECH)
    300     if (RenderBox* button = m_speechButton ? m_speechButton->renderBox() : 0) {
    301         if (m_innerBlock) {
     326    if (RenderBox* button = speechButtonElement() ? speechButtonElement()->renderBox() : 0) {
     327        if (innerBlock) {
    302328            // This is mostly the case where this is a search field. The speech button is a sibling
    303329            // of the inner block and laid out at the far right.
     
    307333        } else {
    308334            int x = width() - borderRight() - paddingRight() - button->width();
    309             if (m_outerSpinButton && m_outerSpinButton->renderBox())
    310                 x -= m_outerSpinButton->renderBox()->width();
    311 
    312             RenderBox* spinBox = m_innerSpinButton ? m_innerSpinButton->renderBox() : 0;
     335            if (outerSpinButtonElement() && outerSpinButtonElement()->renderBox())
     336                x -= outerSpinButtonElement()->renderBox()->width();
     337
     338            RenderBox* spinBox = innerSpinButtonElement() ? innerSpinButtonElement()->renderBox() : 0;
    313339            if (style()->isLeftToRightDirection())
    314340                x -= spinBox ? spinBox->width() : 0;
     
    323349    // Center the spin button vertically, and move it to the right by
    324350    // padding + border of the text fields.
    325     if (RenderBox* spinBox = m_outerSpinButton ? m_outerSpinButton->renderBox() : 0) {
     351    HTMLElement* outerSpinButton = outerSpinButtonElement();
     352    if (RenderBox* spinBox = outerSpinButton ? outerSpinButton->renderBox() : 0) {
    326353        int diff = height() - spinBox->height();
    327354        // If the diff is odd, the top area over the spin button takes the
     
    352379
    353380    // If we found a spin button, we're done.
    354     if (m_innerSpinButton && result.innerNode() == m_innerSpinButton)
     381    HTMLElement* innerSpinButton = innerSpinButtonElement();
     382    if (innerSpinButton && result.innerNode() == innerSpinButton)
    355383        return true;
    356     if (m_outerSpinButton && result.innerNode() == m_outerSpinButton)
     384    HTMLElement* outerSpinButton = outerSpinButtonElement();
     385    if (outerSpinButton && result.innerNode() == outerSpinButton)
    357386        return true;
    358387#if ENABLE(INPUT_SPEECH)
    359     if (m_speechButton && result.innerNode() == m_speechButton)
     388    HTMLElement* speechButton = speechButtonElement();
     389    if (speechButton && result.innerNode() == speechButton)
    360390        return true;
    361391#endif
    362392    // If we're not a search field, or we already found the speech, results or cancel buttons, we're done.
    363     if (!m_innerBlock || result.innerNode() == m_resultsButton || result.innerNode() == m_cancelButton)
     393    HTMLElement* innerBlock = innerBlockElement();
     394    HTMLElement* resultsButton = resultsButtonElement();
     395    HTMLElement* cancelButton = cancelButtonElement();
     396    if (!innerBlock || result.innerNode() == resultsButton || result.innerNode() == cancelButton)
    364397        return true;
    365398
    366399    Node* innerNode = 0;
    367     RenderBox* innerBlockRenderer = m_innerBlock->renderBox();
     400    RenderBox* innerBlockRenderer = innerBlock->renderBox();
    368401    RenderBox* innerTextRenderer = innerTextElement()->renderBox();
    369402
     
    372405
    373406    int textLeft = tx + x() + innerBlockRenderer->x() + innerTextRenderer->x();
    374     if (m_resultsButton && m_resultsButton->renderer() && pointInContainer.x() < textLeft)
    375         innerNode = m_resultsButton.get();
     407    if (resultsButton && resultsButton->renderer() && pointInContainer.x() < textLeft)
     408        innerNode = resultsButton;
    376409
    377410#if ENABLE(INPUT_SPEECH)
    378     if (!innerNode && m_speechButton && m_speechButton->renderer()) {
    379         int buttonLeft = tx + x() + innerBlockRenderer->x() + innerBlockRenderer->width() - m_speechButton->renderBox()->width();
     411    if (!innerNode && speechButtonElement() && speechButtonElement()->renderer()) {
     412        int buttonLeft = tx + x() + innerBlockRenderer->x() + innerBlockRenderer->width() - speechButtonElement()->renderBox()->width();
    380413        if (pointInContainer.x() >= buttonLeft)
    381             innerNode = m_speechButton.get();
     414            innerNode = speechButtonElement();
    382415    }
    383416#endif
     
    385418    if (!innerNode) {
    386419        int textRight = textLeft + innerTextRenderer->width();
    387         if (m_cancelButton && m_cancelButton->renderer() && pointInContainer.x() > textRight)
    388             innerNode = m_cancelButton.get();
     420        if (cancelButton && cancelButton->renderer() && pointInContainer.x() > textRight)
     421            innerNode = cancelButton;
    389422    }
    390423
     
    418451
    419452#if ENABLE(INPUT_SPEECH)
    420     if (RenderBox* speechBox = m_speechButton ? m_speechButton->renderBox() : 0) {
     453    if (RenderBox* speechBox = speechButtonElement() ? speechButtonElement()->renderBox() : 0) {
    421454        RenderBox* parent = innerTextRenderer ? innerTextRenderer : this;
    422455        FloatPoint pointInTextControlCoords = parent->absoluteToLocal(static_cast<MouseEvent*>(event)->absoluteLocation(), false, true);
    423456        if (speechBox->frameRect().contains(roundedIntPoint(pointInTextControlCoords))) {
    424             m_speechButton->defaultEventHandler(event);
     457            speechButtonElement()->defaultEventHandler(event);
    425458            return;
    426459        }
     
    431464    int textRight = innerTextRenderer->borderBoxRect().maxX();
    432465
    433     if (m_resultsButton && localPoint.x() < innerTextRenderer->borderBoxRect().x())
    434         m_resultsButton->defaultEventHandler(event);
    435     else if (m_cancelButton && localPoint.x() > textRight)
    436         m_cancelButton->defaultEventHandler(event);
     466    HTMLElement* resultsButton = resultsButtonElement();
     467    HTMLElement* cancelButton = cancelButtonElement();
     468    if (resultsButton && localPoint.x() < innerTextRenderer->borderBoxRect().x())
     469        resultsButton->defaultEventHandler(event);
     470    else if (cancelButton && localPoint.x() > textRight)
     471        cancelButton->defaultEventHandler(event);
    437472    else
    438473        RenderTextControl::forwardEvent(event);
     
    443478    RenderTextControl::styleDidChange(diff, oldStyle);
    444479
    445     if (RenderObject* innerBlockRenderer = m_innerBlock ? m_innerBlock->renderer() : 0) {
     480    HTMLElement* innerBlock = innerBlockElement();
     481    if (RenderObject* innerBlockRenderer = innerBlock ? innerBlock->renderer() : 0) {
    446482        // We may have set the width and the height in the old style in layout().
    447483        // Reset them now to avoid getting a spurious layout hint.
     
    450486        innerBlockRenderer->setStyle(createInnerBlockStyle(style()));
    451487    }
    452 
    453     if (RenderObject* resultsRenderer = m_resultsButton ? m_resultsButton->renderer() : 0)
    454         resultsRenderer->setStyle(createResultsButtonStyle(style()));
    455 
    456     if (RenderObject* cancelRenderer = m_cancelButton ? m_cancelButton->renderer() : 0)
    457         cancelRenderer->setStyle(createCancelButtonStyle(style()));
    458 
    459     if (RenderObject* spinRenderer = m_outerSpinButton ? m_outerSpinButton->renderer() : 0)
    460         spinRenderer->setStyle(createOuterSpinButtonStyle());
    461 
    462     if (RenderObject* spinRenderer = m_innerSpinButton ? m_innerSpinButton->renderer() : 0)
    463         spinRenderer->setStyle(createInnerSpinButtonStyle());
    464 
    465 #if ENABLE(INPUT_SPEECH)
    466     if (RenderObject* speechRenderer = m_speechButton ? m_speechButton->renderer() : 0)
    467         speechRenderer->setStyle(createSpeechButtonStyle());
    468 #endif
    469 
    470488    setHasOverflowClip(false);
    471489}
     
    497515bool RenderTextControlSingleLine::hasControlClip() const
    498516{
    499     bool clip = m_cancelButton;
     517    bool clip = cancelButtonElement();
    500518    return clip;
    501519}
     
    506524    ASSERT(hasControlClip());
    507525
    508     IntRect clipRect = IntRect(m_innerBlock->renderBox()->frameRect());
     526    IntRect clipRect = IntRect(innerBlockElement()->renderBox()->frameRect());
    509527    clipRect.move(tx, ty);
    510528    return clipRect;
     
    515533    int width = RenderTextControl::textBlockWidth();
    516534
    517     if (RenderBox* resultsRenderer = m_resultsButton ? m_resultsButton->renderBox() : 0) {
     535    HTMLElement* resultsButton = resultsButtonElement();
     536    if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0) {
    518537        resultsRenderer->computeLogicalWidth();
    519538        width -= resultsRenderer->width() + resultsRenderer->marginLeft() + resultsRenderer->marginRight();
    520539    }
    521540
    522     if (RenderBox* cancelRenderer = m_cancelButton ? m_cancelButton->renderBox() : 0) {
     541    HTMLElement* cancelButton = cancelButtonElement();
     542    if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0) {
    523543        cancelRenderer->computeLogicalWidth();
    524544        width -= cancelRenderer->width() + cancelRenderer->marginLeft() + cancelRenderer->marginRight();
    525545    }
    526546
    527     if (RenderBox* spinRenderer = m_innerSpinButton ? m_innerSpinButton->renderBox() : 0) {
     547    HTMLElement* innerSpinButton = innerSpinButtonElement();
     548    if (RenderBox* spinRenderer = innerSpinButton ? innerSpinButton->renderBox() : 0) {
    528549        spinRenderer->computeLogicalWidth();
    529550        width -= spinRenderer->width() + spinRenderer->marginLeft() + spinRenderer->marginRight();
     
    531552
    532553#if ENABLE(INPUT_SPEECH)
    533     if (RenderBox* speechRenderer = m_speechButton ? m_speechButton->renderBox() : 0) {
     554    HTMLElement* speechButton = speechButtonElement();
     555    if (RenderBox* speechRenderer = speechButton ? speechButton->renderBox() : 0) {
    534556        speechRenderer->computeLogicalWidth();
    535557        width -= speechRenderer->width() + speechRenderer->marginLeft() + speechRenderer->marginRight();
     
    543565{
    544566    int width = 0;
    545     if (RenderBox* spinRenderer = m_outerSpinButton ? m_outerSpinButton->renderBox() : 0) {
     567    HTMLElement* outerSpinButton = outerSpinButtonElement();
     568    if (RenderBox* spinRenderer = outerSpinButton ? outerSpinButton->renderBox() : 0) {
    546569        spinRenderer->computeLogicalWidth();
    547570        width += spinRenderer->width() + spinRenderer->marginLeft() + spinRenderer->marginRight();
     
    587610        result += maxCharWidth - charWidth;
    588611
    589     if (RenderBox* resultsRenderer = m_resultsButton ? m_resultsButton->renderBox() : 0)
     612    HTMLElement* resultsButton = resultsButtonElement();
     613    if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0)
    590614        result += resultsRenderer->borderLeft() + resultsRenderer->borderRight() +
    591615                  resultsRenderer->paddingLeft() + resultsRenderer->paddingRight();
    592616
    593     if (RenderBox* cancelRenderer = m_cancelButton ? m_cancelButton->renderBox() : 0)
     617    HTMLElement* cancelButton = cancelButtonElement();
     618    if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0)
    594619        result += cancelRenderer->borderLeft() + cancelRenderer->borderRight() +
    595620                  cancelRenderer->paddingLeft() + cancelRenderer->paddingRight();
    596621
    597622#if ENABLE(INPUT_SPEECH)
    598     if (RenderBox* speechRenderer = m_speechButton ? m_speechButton->renderBox() : 0) {
     623    HTMLElement* speechButton = speechButtonElement();
     624    if (RenderBox* speechRenderer = speechButton ? speechButton->renderBox() : 0) {
    599625        result += speechRenderer->borderLeft() + speechRenderer->borderRight() +
    600626                  speechRenderer->paddingLeft() + speechRenderer->paddingRight();
     
    607633{
    608634    int width = 0;
    609     if (RenderBox* spinRenderer = m_outerSpinButton ? m_outerSpinButton->renderBox() : 0) {
     635    HTMLElement* outerSpinButton = outerSpinButtonElement();
     636    if (RenderBox* spinRenderer = outerSpinButton ? outerSpinButton->renderBox() : 0) {
    610637        spinRenderer->computeLogicalWidth();
    611638        width += spinRenderer->minPreferredLogicalWidth() + spinRenderer->marginLeft() + spinRenderer->marginRight();
     
    618645void RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight(int lineHeight)
    619646{
    620     if (RenderBox* resultsRenderer = m_resultsButton ? m_resultsButton->renderBox() : 0) {
     647    HTMLElement* resultsButton = resultsButtonElement();
     648    if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0) {
    621649        resultsRenderer->computeLogicalHeight();
    622650        setHeight(max(height(),
     
    626654        lineHeight = max(lineHeight, resultsRenderer->height());
    627655    }
    628     if (RenderBox* cancelRenderer = m_cancelButton ? m_cancelButton->renderBox() : 0) {
     656    HTMLElement* cancelButton = cancelButtonElement();
     657    if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0) {
    629658        cancelRenderer->computeLogicalHeight();
    630659        setHeight(max(height(),
     
    638667}
    639668
    640 void RenderTextControlSingleLine::createSubtreeIfNeeded()
    641 {
    642     if (inputElement()->isSearchField()) {
    643         if (!m_innerBlock) {
    644             // Create the inner block element
    645             m_innerBlock = TextControlInnerElement::create(toHTMLElement(node()));
    646             m_innerBlock->attachInnerElement(node(), createInnerBlockStyle(style()), renderArena());
    647         }
    648 
    649 #if ENABLE(INPUT_SPEECH)
    650         if (inputElement()->isSpeechEnabled() && !m_speechButton) {
    651             // Create the speech button element.
    652             m_speechButton = InputFieldSpeechButtonElement::create(toHTMLElement(node()));
    653             m_speechButton->attachInnerElement(node(), createSpeechButtonStyle(), renderArena());
    654         }
    655 #endif
    656 
    657         if (!m_resultsButton) {
    658             // Create the search results button element.
    659             m_resultsButton = SearchFieldResultsButtonElement::create(document());
    660             m_resultsButton->attachInnerElement(m_innerBlock.get(), createResultsButtonStyle(m_innerBlock->renderer()->style()), renderArena());
    661         }
    662 
    663         // Create innerText element before adding the other buttons.
    664         RenderTextControl::createSubtreeIfNeeded(m_innerBlock.get());
    665 
    666         if (!m_cancelButton) {
    667             // Create the cancel button element.
    668             m_cancelButton = SearchFieldCancelButtonElement::create(document());
    669             m_cancelButton->attachInnerElement(m_innerBlock.get(), createCancelButtonStyle(m_innerBlock->renderer()->style()), renderArena());
    670         }
    671     } else {
    672         RenderTextControl::createSubtreeIfNeeded(0);
    673 
    674 #if ENABLE(INPUT_SPEECH)
    675         if (inputElement()->isSpeechEnabled() && !m_speechButton) {
    676             // Create the speech button element.
    677             m_speechButton = InputFieldSpeechButtonElement::create(toHTMLElement(node()));
    678             m_speechButton->attachInnerElement(node(), createSpeechButtonStyle(), renderArena());
    679         }
    680 #endif
    681 
    682         bool hasSpinButton = theme()->shouldHaveSpinButton(inputElement());
    683 
    684         if (hasSpinButton && !m_innerSpinButton) {
    685             m_innerSpinButton = SpinButtonElement::create(toHTMLElement(node()));
    686             m_innerSpinButton->attachInnerElement(node(), createInnerSpinButtonStyle(), renderArena());
    687         }
    688         if (hasSpinButton && !m_outerSpinButton) {
    689             m_outerSpinButton = SpinButtonElement::create(toHTMLElement(node()));
    690             m_outerSpinButton->attachInnerElement(node(), createOuterSpinButtonStyle(), renderArena());
    691         }
    692     }
    693 }
    694 
    695669void RenderTextControlSingleLine::updateFromElement()
    696670{
    697     createSubtreeIfNeeded();
    698671    RenderTextControl::updateFromElement();
    699672
    700     if (m_cancelButton)
     673    if (cancelButtonElement())
    701674        updateCancelButtonVisibility();
    702675
     
    737710        textBlockStyle->setLineHeight(Length(-100.0f, Percent));
    738711
    739     WebCore::EDisplay display = (m_innerBlock || theme()->shouldHaveSpinButton(inputElement()) ? INLINE_BLOCK : BLOCK);
     712    WebCore::EDisplay display = (innerBlockElement() || theme()->shouldHaveSpinButton(inputElement()) ? INLINE_BLOCK : BLOCK);
    740713#if ENABLE(INPUT_SPEECH)
    741714    if (inputElement()->isSpeechEnabled())
     
    834807void RenderTextControlSingleLine::updateCancelButtonVisibility() const
    835808{
    836     if (!m_cancelButton->renderer())
     809    RenderObject* cancelButtonRenderer = cancelButtonElement()->renderer();
     810    if (!cancelButtonRenderer)
    837811        return;
    838812
    839     const RenderStyle* curStyle = m_cancelButton->renderer()->style();
     813    const RenderStyle* curStyle = cancelButtonRenderer->style();
    840814    EVisibility buttonVisibility = visibilityForCancelButton();
    841815    if (curStyle->visibility() == buttonVisibility)
     
    844818    RefPtr<RenderStyle> cancelButtonStyle = RenderStyle::clone(curStyle);
    845819    cancelButtonStyle->setVisibility(buttonVisibility);
    846     m_cancelButton->renderer()->setStyle(cancelButtonStyle);
     820    cancelButtonRenderer->setStyle(cancelButtonStyle);
    847821}
    848822
     
    963937    int padding = paddingLeft();
    964938
    965     if (RenderBox* resultsRenderer = m_resultsButton ? m_resultsButton->renderBox() : 0)
     939    HTMLElement* resultsButton = resultsButtonElement();
     940    if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0)
    966941        padding += resultsRenderer->width() + resultsRenderer->marginLeft() + resultsRenderer->paddingLeft() + resultsRenderer->marginRight() + resultsRenderer->paddingRight();
    967942
     
    973948    int padding = paddingRight();
    974949
    975     if (RenderBox* cancelRenderer = m_cancelButton ? m_cancelButton->renderBox() : 0)
     950    HTMLElement* cancelButton = cancelButtonElement();
     951    if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0)
    976952        padding += cancelRenderer->width() + cancelRenderer->marginLeft() + cancelRenderer->paddingLeft() + cancelRenderer->marginRight() + cancelRenderer->paddingRight();
    977953
     
    11311107{
    11321108    RenderBox* innerRenderer = 0;
    1133     if (m_innerBlock)
    1134         innerRenderer = m_innerBlock->renderBox();
     1109
     1110    if (HTMLElement* innerBlock = innerBlockElement())
     1111        innerRenderer = innerBlock->renderBox();
    11351112    else if (HTMLElement* innerText = innerTextElement())
    11361113        innerRenderer = innerText->renderBox();
    11371114   
    1138     if (innerRenderer)
    1139         return innerRenderer->y();
    1140    
    1141     return borderTop() + paddingTop();
     1115    return innerRenderer ? innerRenderer->y() : borderTop() + paddingTop();
    11421116}   
    11431117
  • trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h

    r86705 r87014  
    2424#define RenderTextControlSingleLine_h
    2525
     26#include "HTMLInputElement.h"
    2627#include "PopupMenuClient.h"
    2728#include "RenderTextControl.h"
     
    3233
    3334class HTMLInputElement;
    34 class InputFieldSpeechButtonElement;
    35 class SearchFieldCancelButtonElement;
    36 class SearchFieldResultsButtonElement;
    37 class SpinButtonElement;
    38 class TextControlInnerElement;
    3935
    4036class RenderTextControlSingleLine : public RenderTextControl, private PopupMenuClient {
     
    4238    RenderTextControlSingleLine(Node*, bool);
    4339    virtual ~RenderTextControlSingleLine();
     40    // FIXME: Move create*Style() to their classes.
     41    virtual PassRefPtr<RenderStyle> createInnerTextStyle(const RenderStyle* startStyle) const;
     42    PassRefPtr<RenderStyle> createInnerBlockStyle(const RenderStyle* startStyle) const;
     43    PassRefPtr<RenderStyle> createInnerSpinButtonStyle() const;
     44    PassRefPtr<RenderStyle> createOuterSpinButtonStyle() const;
     45    PassRefPtr<RenderStyle> createResultsButtonStyle(const RenderStyle* startStyle) const;
     46    PassRefPtr<RenderStyle> createCancelButtonStyle(const RenderStyle* startStyle) const;
     47#if ENABLE(INPUT_SPEECH)
     48    PassRefPtr<RenderStyle> createSpeechButtonStyle() const;
     49#endif
    4450
    4551    bool placeholderIsVisible() const { return m_placeholderVisible; }
     
    9197    virtual void adjustControlHeightBasedOnLineHeight(int lineHeight);
    9298
    93     void createSubtreeIfNeeded();
    9499    virtual void updateFromElement();
    95100    virtual void cacheSelection(int start, int end);
     
    97102
    98103    virtual RenderStyle* textBaseStyle() const;
    99     virtual PassRefPtr<RenderStyle> createInnerTextStyle(const RenderStyle* startStyle) const;
    100     PassRefPtr<RenderStyle> createInnerBlockStyle(const RenderStyle* startStyle) const;
    101     PassRefPtr<RenderStyle> createResultsButtonStyle(const RenderStyle* startStyle) const;
    102     PassRefPtr<RenderStyle> createCancelButtonStyle(const RenderStyle* startStyle) const;
    103     PassRefPtr<RenderStyle> createInnerSpinButtonStyle() const;
    104     PassRefPtr<RenderStyle> createOuterSpinButtonStyle() const;
    105 #if ENABLE(INPUT_SPEECH)
    106     PassRefPtr<RenderStyle> createSpeechButtonStyle() const;
    107 #endif
    108104
    109105    void updateCancelButtonVisibility() const;
     
    149145    virtual int textBlockInsetTop() const;
    150146
     147    virtual HTMLElement* innerTextElement() const;
     148    HTMLElement* innerBlockElement() const;
     149    HTMLElement* innerSpinButtonElement() const;
     150    HTMLElement* outerSpinButtonElement() const;
     151    HTMLElement* resultsButtonElement() const;
     152    HTMLElement* cancelButtonElement() const;
     153#if ENABLE(INPUT_SPEECH)
     154    HTMLElement* speechButtonElement() const;
     155#endif
     156
    151157    bool m_searchPopupIsVisible;
    152158    bool m_shouldDrawCapsLockIndicator;
    153 
    154     RefPtr<TextControlInnerElement> m_innerBlock;
    155     RefPtr<SearchFieldResultsButtonElement> m_resultsButton;
    156     RefPtr<SearchFieldCancelButtonElement> m_cancelButton;
    157     RefPtr<TextControlInnerElement> m_innerSpinButton;
    158     RefPtr<TextControlInnerElement> m_outerSpinButton;
    159 #if ENABLE(INPUT_SPEECH)
    160     RefPtr<InputFieldSpeechButtonElement> m_speechButton;
    161 #endif
    162159
    163160    Timer<RenderTextControlSingleLine> m_searchEventTimer;
Note: See TracChangeset for help on using the changeset viewer.