<!DOCTYPE html> <meta charset='utf-8'> <title>Vibration API: cancel ongoing vibrate() when hidden by switching tab/window</title> <link rel='author' title='Intel' href='http://www.intel.com'> <link rel='help' href='http://dev.w3.org/2009/dap/vibration/#vibration-interface'> <meta name='flags' content='interact'> <meta name='assert' content='If the visibilitychange event is dispatched at the Document in a browsing context, cancel the pre-existing instance of the processing vibration patterns algorithm'> <style> button { height: 100px; width: 100px; } </style> <h1>Description</h1> <p> After hitting the button below, your device must vibrate for a short period of time (roughly one second). If it vibrates for a longer time (roughly five seconds, it should feel somewhat long) then the test has failed. </p> <button id='vib'>Vibrate!</button> <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> <script> var win; if (undefined !== navigator.vibrate) { document.getElementById('vib').onclick = function () { navigator.vibrate(5000); setTimeout(function () { win = window.open('about:blank', '_blank'); setTimeout(function() { win.close(); }, 100); }, 1000); }; } </script>