diff options
Diffstat (limited to 'content/test')
-rw-r--r-- | content/test/data/browser_plugin_embedder.html | 32 | ||||
-rw-r--r-- | content/test/data/browser_plugin_post_message_guest.html | 23 |
2 files changed, 53 insertions, 2 deletions
diff --git a/content/test/data/browser_plugin_embedder.html b/content/test/data/browser_plugin_embedder.html index e192865..5702027 100644 --- a/content/test/data/browser_plugin_embedder.html +++ b/content/test/data/browser_plugin_embedder.html @@ -23,6 +23,16 @@ function SetSize(w, h) { plugin.width = w; plugin.height = h; } +function PostMessage(data, shouldTargetIframe) { + plugin = document.getElementById('plugin'); + // TODO(fsamuel): contentWindow can be accessed directly once + // http://wkbug.com/85679 lands. + if (shouldTargetIframe) { + plugin.contentWindow.frames[0].postMessage('testing123', '*'); + } else { + plugin.contentWindow.frames.postMessage('testing123', '*'); + } +} function Back() { var plugin = document.getElementById('plugin'); plugin.back(); @@ -55,10 +65,28 @@ document.title = 'embedder'; width="640" height="480" border="0px"></object> - -<script> +<script type="text/javascript"> +var msg; +function receiveMessage(event) { + msg = event.data; + if (msg == 'ready') { + document.title = 'ready'; + return; + } + if (msg.indexOf('stop_ack') == -1) { + event.source.postMessage('stop', '*'); + } else { + var name = msg.replace("stop_ack", "").trim(); + if (name !== '') { + window.document.title = name; + } else { + window.document.title = 'main guest'; + } + } +} var plugin = document.getElementById('plugin'); plugin.addEventListener('loadStart', loadStart); plugin.addEventListener('loadAbort', loadAbort); plugin.addEventListener('loadRedirect', loadRedirect); + window.addEventListener('message', receiveMessage, false); </script> diff --git a/content/test/data/browser_plugin_post_message_guest.html b/content/test/data/browser_plugin_post_message_guest.html new file mode 100644 index 0000000..57c1c3c --- /dev/null +++ b/content/test/data/browser_plugin_post_message_guest.html @@ -0,0 +1,23 @@ +<script> + var embedder; + function receiveMessage(event) { + embedder = event.source; + if (event.data !== 'stop') { + event.source.postMessage('foobar', '*'); + } else { + if (event.data !== '') { + event.source.postMessage('stop_ack ' + window.name, '*'); + } + } + } + window.addEventListener('message', receiveMessage, false); + function CreateChildFrame(src) { + var ifrm = document.createElement("IFRAME"); + ifrm.style.width = "640px"; + ifrm.style.height = "480px"; + ifrm.src = src; + ifrm.name = 'iframe'; + document.body.appendChild(ifrm); + embedder.postMessage('ready', '*'); + } +</script> |