<head>
    <meta name="viewport" content="width=device-width">
        <style>
        body {
            width: 100%;
            height: 100%;
            margin: 0;
        }

        #source, #editor {
            width: 100%;
            height: 200px;
            font-size: 200px;
            white-space: nowrap;
        }

        #source, #editor {
            overflow: hidden;
        }

        #editor {
            border: black 1px solid;
        }
        </style>
</head>

<body>
    <div contenteditable id="source">Hello world</div>
    <div contenteditable id="editor"></div>
    <script>
    function postEventType(event) {
       webkit.messageHandlers.testHandler.postMessage(event.type);
    }

    editor.addEventListener("drop", postEventType);
    editor.addEventListener("dragenter", postEventType);
    editor.addEventListener("dragover", postEventType);
    editor.addEventListener("dragleave", postEventType);
    editor.addEventListener("dragstart", postEventType);

    let text = source.childNodes[0];
    getSelection().setBaseAndExtent(text, 0, text, text.data.length);
    </script>
</body>
