diff options
Diffstat (limited to 'Source/WebKit/chromium/src/WebInputElement.cpp')
-rw-r--r-- | Source/WebKit/chromium/src/WebInputElement.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/WebKit/chromium/src/WebInputElement.cpp b/Source/WebKit/chromium/src/WebInputElement.cpp index adae9dac8..c58e90704 100644 --- a/Source/WebKit/chromium/src/WebInputElement.cpp +++ b/Source/WebKit/chromium/src/WebInputElement.cpp @@ -31,11 +31,16 @@ #include "config.h" #include "WebInputElement.h" +#include "ElementShadow.h" #include "HTMLDataListElement.h" #include "HTMLInputElement.h" #include "HTMLNames.h" +#include "ShadowRoot.h" #include "TextControlInnerElements.h" +#include "TextFieldDecorationElement.h" +#include "TextFieldDecoratorImpl.h" #include "WebNodeCollection.h" +#include "WebTextFieldDecoratorClient.h" #include "platform/WebString.h" #include <wtf/PassRefPtr.h> @@ -221,6 +226,18 @@ int WebInputElement::defaultMaxLength() return HTMLInputElement::maximumLength; } +WebElement WebInputElement::decorationElementFor(WebTextFieldDecoratorClient* decoratorClient) +{ + ShadowRoot* shadowRoot = unwrap<HTMLInputElement>()->youngestShadowRoot(); + while (shadowRoot) { + TextFieldDecorationElement* decoration = TextFieldDecorationElement::fromShadowRoot(shadowRoot); + if (decoration && decoratorClient->isClientFor(decoration->textFieldDecorator())) + return WebElement(decoration); + shadowRoot = shadowRoot->olderShadowRoot(); + } + return WebElement(); +} + WebInputElement::WebInputElement(const PassRefPtr<HTMLInputElement>& elem) : WebFormControlElement(elem) { |