<html>
    <head>
        <script>
            function pageLoaded() {
                document.getElementById("video").play().then(function() {
                    try {
                        window.webkit.messageHandlers.testHandler.postMessage("autoplayed");
                    } catch(e) { }
                }).catch(function() {
                    try {
                        window.webkit.messageHandlers.testHandler.postMessage("did-not-play");
                    } catch(e) { }
                });
            }
        </script>
    </head>
    <body onload="pageLoaded()">
        <video id="video" playsinline src="test-without-audio-track.mp4" />
    </body>
</html>
