| 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);
 | 
| 
 |