| Index: third_party/WebKit/Source/core/html/TextControlElement.h
|
| diff --git a/third_party/WebKit/Source/core/html/TextControlElement.h b/third_party/WebKit/Source/core/html/TextControlElement.h
|
| index b40cb00231ae8e399c1f297181019f09fd3fb167..4c43f96d3a27f4682fe6e016cf89c39250da938c 100644
|
| --- a/third_party/WebKit/Source/core/html/TextControlElement.h
|
| +++ b/third_party/WebKit/Source/core/html/TextControlElement.h
|
| @@ -64,7 +64,6 @@ class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState {
|
| void forwardEvent(Event*);
|
|
|
| void setFocused(bool flag) override;
|
| - InsertionNotificationRequest insertedInto(ContainerNode*) override;
|
|
|
| // The derived class should return true if placeholder processing is needed.
|
| virtual bool isPlaceholderVisible() const = 0;
|
| @@ -112,21 +111,19 @@ class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState {
|
| void setMaxLength(int, ExceptionState&);
|
| void setMinLength(int, ExceptionState&);
|
|
|
| - // Dispatch 'input' event, and update
|
| - // m_wasChangedSinceLastFormControlChangeEvent flag.
|
| + // Dispatch 'input' event.
|
| void dispatchFormControlInputEvent();
|
| // Dispatch 'change' event if the value is updated.
|
| void dispatchFormControlChangeEvent();
|
| // Enqueue 'change' event if the value is updated.
|
| void enqueueChangeEvent();
|
| - void setTextAsOfLastFormControlChangeEvent(const String& text) {
|
| - m_textAsOfLastFormControlChangeEvent = text;
|
| - }
|
| - // A user has changed the value since the last 'change' event.
|
| - bool wasChangedSinceLastFormControlChangeEvent() const {
|
| - return m_wasChangedSinceLastFormControlChangeEvent;
|
| - }
|
| - void setChangedSinceLastFormControlChangeEvent(bool);
|
| + // This should be called on every user-input, before the user-input changes
|
| + // the value.
|
| + void setValueBeforeFirstUserEditIfNotSet();
|
| + // This should be called on every user-input, after the user-input changed the
|
| + // value. The argument is the updated value.
|
| + void checkIfValueWasReverted(const String&);
|
| + void clearValueBeforeFirstUserEdit();
|
|
|
| virtual String value() const = 0;
|
| virtual void setValue(
|
| @@ -197,8 +194,10 @@ class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState {
|
|
|
| bool placeholderShouldBeVisible() const;
|
|
|
| - String m_textAsOfLastFormControlChangeEvent;
|
| - bool m_wasChangedSinceLastFormControlChangeEvent = false;
|
| + // In m_valueBeforeFirstUserEdit, we distinguish a null String and zero-length
|
| + // String. Null String means the field doesn't have any data yet, and
|
| + // zero-length String is a valid data.
|
| + String m_valueBeforeFirstUserEdit;
|
| bool m_lastChangeWasUserEdit;
|
|
|
| unsigned m_cachedSelectionStart;
|
|
|