| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <script src="../../resources/js-test.js"></script> |
| <input id="input" type="input"> |
| <script type="text/javascript"> |
| description('Test that composition events should have a sourceCapabilities and its firesTouchEvents should always be false.'); |
| |
| function compositionHandler() { |
| debug(event.type); |
| shouldBeNonNull("event.sourceCapabilities"); |
| shouldBeFalse("event.sourceCapabilities.firesTouchEvents"); |
| } |
| |
| if (window.eventSender) { |
| for (var evt of ['compositionstart', 'compositionupdate', 'compositionend']) { |
| document.addEventListener(evt, compositionHandler); |
| } |
| |
| var input = document.getElementById('input'); |
| input.focus(); |
| |
| // We need to force a text input update here so that later the call to |
| // RenderWidget::resetInputMethod() will lead to finishComposingText(). |
| // Normally this would not be needed if the focus was due to user gesture. |
| // But on Mac, even with user gesture, we wait for the next compositing |
| // to update text input state frame. That is why we are explicitly calling |
| // this method here. |
| textInputController.forceTextInputStateUpdate(); |
| |
| textInputController.setMarkedText('abcde', 1, 3); |
| |
| input.blur(); |
| } else { |
| debug('This test requires eventSender.'); |
| } |
| |
| </script> |