Changeset 185692 in webkit
- Timestamp:
- Jun 17, 2015, 9:38:59 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/html/TextFieldInputType.cpp (modified) (1 diff)
-
Source/WebCore/html/TextFieldInputType.h (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r185683 r185692 1 2015-06-17 Daniel Bates <dabates@apple.com> 2 3 Client may receive began editing callback for already focused text field 4 https://bugs.webkit.org/show_bug.cgi?id=146074 5 <rdar://problem/21293562> 6 7 Reviewed by Darin Adler. 8 9 Fixes an issue where the client would be notified that began editing in a text field 10 for each programmatic DOM focus event dispatched at the text field regardless of 11 whether the field was focused. The client should only be notified that began editing 12 exactly once when a text field becomes focused (either programmatically or by user interaction). 13 14 * html/TextFieldInputType.cpp: 15 (WebCore::TextFieldInputType::forwardEvent): Move logic to dispatch editing began callback from here... 16 (WebCore::TextFieldInputType::handleFocusEvent): to here. This function is called when the 17 text field becomes newly focused. 18 * html/TextFieldInputType.h: 19 1 20 2015-06-17 Alex Christensen <achristensen@webkit.org> 2 21 -
trunk/Source/WebCore/html/TextFieldInputType.cpp
r185173 r185692 207 207 208 208 capsLockStateMayHaveChanged(); 209 } else if (event->type() == eventNames().focusEvent) { 210 if (Frame* frame = element().document().frame()) 211 frame->editor().textFieldDidBeginEditing(&element()); 209 } else if (event->type() == eventNames().focusEvent) 212 210 capsLockStateMayHaveChanged(); 213 }214 211 215 212 element().forwardEvent(event); 216 213 } 217 214 } 215 } 216 217 void TextFieldInputType::handleFocusEvent(Node* oldFocusedNode, FocusDirection) 218 { 219 ASSERT_UNUSED(oldFocusedNode, oldFocusedNode != &element()); 220 if (Frame* frame = element().document().frame()) 221 frame->editor().textFieldDidBeginEditing(&element()); 218 222 } 219 223 -
trunk/Source/WebCore/html/TextFieldInputType.h
r185089 r185692 65 65 virtual void readonlyAttributeChanged() override final; 66 66 virtual bool supportsReadOnly() const override final; 67 void handleFocusEvent(Node* oldFocusedNode, FocusDirection) override final; 67 68 virtual void handleBlurEvent() override final; 68 69 virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override; -
trunk/Tools/ChangeLog
r185691 r185692 1 2015-06-17 Daniel Bates <dabates@apple.com> 2 3 Client may receive began editing callback for already focused text field 4 https://bugs.webkit.org/show_bug.cgi?id=146074 5 <rdar://problem/21293562> 6 7 Reviewed by Darin Adler. 8 9 Add a unit test to ensure that a client receives exactly one began editing 10 callback when a text field is newly focused. In particular, dispatching 11 a DOM focus event at an already focused text field does not dispatch a 12 began editing callback to the client. 13 14 * TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp: 15 (TestWebKitAPI::TEST_F): 16 1 17 2015-06-17 Hyungwook Lee <hyungwook.lee@navercorp.com> 2 18 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp
r185169 r185692 121 121 } 122 122 123 TEST_F(WebKit2TextFieldBeginAndEditEditingTest, TextFieldDidBeginShouldNotBeDispatchedForAlreadyFocusedField) 124 { 125 executeJavaScriptAndCheckDidReceiveMessage("focusTextField('input'); focusTextField('input')", "DidReceiveTextFieldDidBeginEditing"); 126 executeJavaScriptAndCheckDidReceiveMessage("blurTextField('input')", "DidReceiveTextFieldDidEndEditing"); 127 } 128 123 129 } // namespace TestWebKitAPI 124 130
Note:
See TracChangeset
for help on using the changeset viewer.