Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Unified Diff: third_party/WebKit/Source/core/html/TextControlElement.h

Issue 2735633006: INPUT/TEXTAREA elements: Dispatch 'select' event only if text selection is changed. (Closed)
Patch Set: . Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 c7ad473554c4d91c23ff80955f9c0b4a44d981c6..8667c1ff259bf92e819da9fa2c7c120b14fa2c63 100644
--- a/third_party/WebKit/Source/core/html/TextControlElement.h
+++ b/third_party/WebKit/Source/core/html/TextControlElement.h
@@ -47,6 +47,11 @@ enum TextFieldEventBehavior {
DispatchInputAndChangeEvent
};
+enum class TextControlSetValueSelection {
+ kSetSelectionToEnd,
yoichio 2017/03/07 09:00:56 Why do you use another coding style to above enums
tkent 2017/03/07 09:27:34 kFooBar is the standard naming convention. FooBar
+ kDoNotSet,
+};
+
class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState {
public:
// Common flag for HTMLInputElement::tooLong(),
@@ -124,8 +129,11 @@ class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState {
void setChangedSinceLastFormControlChangeEvent(bool);
virtual String value() const = 0;
- virtual void setValue(const String&,
- TextFieldEventBehavior = DispatchNoEvent) = 0;
+ virtual void setValue(
+ const String&,
+ TextFieldEventBehavior = DispatchNoEvent,
+ TextControlSetValueSelection =
+ TextControlSetValueSelection::kSetSelectionToEnd) = 0;
HTMLElement* innerEditorElement() const;
@@ -160,14 +168,10 @@ class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState {
unsigned computeSelectionStart() const;
unsigned computeSelectionEnd() const;
TextFieldSelectionDirection computeSelectionDirection() const;
- void cacheSelection(unsigned start,
+ // Returns true if cached values and arguments are not same.
+ bool cacheSelection(unsigned start,
unsigned end,
- TextFieldSelectionDirection direction) {
- DCHECK_LE(start, end);
- m_cachedSelectionStart = start;
- m_cachedSelectionEnd = end;
- m_cachedSelectionDirection = direction;
- }
+ TextFieldSelectionDirection);
static unsigned indexForPosition(HTMLElement* innerEditor, const Position&);
void dispatchFocusEvent(Element* oldFocusedElement,

Powered by Google App Engine
This is Rietveld 408576698