summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/WebInputElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/src/WebInputElement.cpp')
-rw-r--r--Source/WebKit/chromium/src/WebInputElement.cpp17
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)
{