| Index: third_party/WebKit/Source/core/editing/InputMethodController.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/InputMethodController.cpp b/third_party/WebKit/Source/core/editing/InputMethodController.cpp
|
| index 6678945ae9d9f44b016017d717c74d0514d95c4c..b33a9464fd1e16ae5d2684ae8368e212f41a21c2 100644
|
| --- a/third_party/WebKit/Source/core/editing/InputMethodController.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/InputMethodController.cpp
|
| @@ -81,21 +81,19 @@ bool needsIncrementalInsertion(const LocalFrame& frame, const String& newText) {
|
| return true;
|
| }
|
|
|
| -DispatchEventResult dispatchBeforeInputFromComposition(
|
| - EventTarget* target,
|
| - InputEvent::InputType inputType,
|
| - const String& data,
|
| - InputEvent::EventCancelable cancelable) {
|
| +void dispatchBeforeInputFromComposition(EventTarget* target,
|
| + InputEvent::InputType inputType,
|
| + const String& data) {
|
| if (!RuntimeEnabledFeatures::inputEventEnabled())
|
| - return DispatchEventResult::NotCanceled;
|
| + return;
|
| if (!target)
|
| - return DispatchEventResult::NotCanceled;
|
| + return;
|
| // TODO(chongz): Pass appropriate |ranges| after it's defined on spec.
|
| // http://w3c.github.io/editing/input-events.html#dom-inputevent-inputtype
|
| InputEvent* beforeInputEvent = InputEvent::createBeforeInput(
|
| - inputType, data, cancelable, InputEvent::EventIsComposing::IsComposing,
|
| - nullptr);
|
| - return target->dispatchEvent(beforeInputEvent);
|
| + inputType, data, InputEvent::NotCancelable,
|
| + InputEvent::EventIsComposing::IsComposing, nullptr);
|
| + target->dispatchEvent(beforeInputEvent);
|
| }
|
|
|
| // Used to insert/replace text during composition update and confirm
|
| @@ -127,21 +125,8 @@ void insertTextDuringCompositionWithEvents(
|
| if (!target)
|
| return;
|
|
|
| - // TODO(chongz): Fire 'beforeinput' for the composed text being
|
| - // replaced/deleted.
|
| -
|
| - // Only the last confirmed text is cancelable.
|
| - InputEvent::EventCancelable beforeInputCancelable =
|
| - (compositionType ==
|
| - TypingCommand::TextCompositionType::TextCompositionUpdate)
|
| - ? InputEvent::EventCancelable::NotCancelable
|
| - : InputEvent::EventCancelable::IsCancelable;
|
| - DispatchEventResult result = dispatchBeforeInputFromComposition(
|
| - target, InputEvent::InputType::InsertText, text, beforeInputCancelable);
|
| -
|
| - if (beforeInputCancelable == InputEvent::EventCancelable::IsCancelable &&
|
| - result != DispatchEventResult::NotCanceled)
|
| - return;
|
| + dispatchBeforeInputFromComposition(
|
| + target, InputEvent::InputType::InsertCompositionText, text);
|
|
|
| // 'beforeinput' event handler may destroy document.
|
| if (!frame.document())
|
| @@ -314,12 +299,6 @@ bool InputMethodController::replaceComposition(const String& text) {
|
| if (!isAvailable())
|
| return false;
|
|
|
| - // If text is empty, then delete the old composition here. If text is
|
| - // non-empty, InsertTextCommand::input will delete the old composition with
|
| - // an optimized replace operation.
|
| - if (text.isEmpty())
|
| - TypingCommand::deleteSelection(document(), 0);
|
| -
|
| clear();
|
|
|
| insertTextDuringCompositionWithEvents(
|
| @@ -433,12 +412,6 @@ void InputMethodController::cancelComposition() {
|
|
|
| clear();
|
|
|
| - // TODO(chongz): Figure out which InputType should we use here.
|
| - dispatchBeforeInputFromComposition(
|
| - document().focusedElement(),
|
| - InputEvent::InputType::DeleteComposedCharacterBackward, nullAtom,
|
| - InputEvent::EventCancelable::NotCancelable);
|
| - dispatchCompositionUpdateEvent(frame(), emptyString);
|
| insertTextDuringCompositionWithEvents(
|
| frame(), emptyString, 0,
|
| TypingCommand::TextCompositionType::TextCompositionCancel);
|
|
|