Index: third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h |
diff --git a/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h b/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h |
index b4e03dfba403de8dae408db3ade09efab1ee7c6e..15b0a696bc1599df33051a36df623320cd68477a 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h |
+++ b/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h |
@@ -70,11 +70,11 @@ public: |
void select(NeedToDispatchSelectEvent = DispatchSelectEvent); |
virtual void setRangeText(const String& replacement, ExceptionState&); |
virtual void setRangeText(const String& replacement, unsigned start, unsigned end, const String& selectionMode, ExceptionState&); |
- // Web-exposed setSelectionRange() function. This translates "none" |
- // direction to "forward" if necessary. |
+ // Web-exposed setSelectionRange() function. This schedule to dispatch |
+ // 'select' event. |
void setSelectionRangeForBinding(int start, int end, const String& direction = "none"); |
- // Blink-internal version of setSelectionRange(). This never translates |
- // "none" direction. |
+ // Blink-internal version of setSelectionRange(). This translates "none" |
+ // direction to "forward" on platforms without "none" direction. |
void setSelectionRange(int start, int end, TextFieldSelectionDirection = SelectionHasNoDirection, NeedToDispatchSelectEvent = DispatchSelectEvent); |
Range* selection() const; |
@@ -115,14 +115,6 @@ protected: |
void parseAttribute(const QualifiedName&, const AtomicString&, const AtomicString&) override; |
- void cacheSelection(int start, int end, TextFieldSelectionDirection direction) |
- { |
- DCHECK_GE(start, 0); |
- m_cachedSelectionStart = start; |
- m_cachedSelectionEnd = end; |
- m_cachedSelectionDirection = direction; |
- } |
- |
void restoreCachedSelection(); |
void defaultEventHandler(Event*) override; |
@@ -139,6 +131,15 @@ private: |
int computeSelectionStart() const; |
int computeSelectionEnd() const; |
TextFieldSelectionDirection computeSelectionDirection() const; |
+ void cacheSelection(int start, int end, TextFieldSelectionDirection direction) |
+ { |
+ DCHECK_GE(start, 0); |
+ // TODO(tkent): Add DCHECK_LE(start, end). It breaks |
+ // editing/selection/select-across-readonly-input-{1,4}.html |
+ m_cachedSelectionStart = start; |
+ m_cachedSelectionEnd = end; |
+ m_cachedSelectionDirection = direction; |
+ } |
void dispatchFocusEvent(Element* oldFocusedElement, WebFocusType, InputDeviceCapabilities* sourceCapabilities) final; |
void dispatchBlurEvent(Element* newFocusedElement, WebFocusType, InputDeviceCapabilities* sourceCapabilities) final; |