2 * Copyright 2013 The Chromium Authors. All rights reserved. Use of this
3 * source code is governed by a BSD-style license that can be found in the
8 <script type="text/javascript">
9 // A guest that requests a new window.
10 // Notifies the embedder about the result of the request (success/fail)
11 // via post message. Note that the embedder has to initiate a postMessage
12 // first so that guest has a reference to the embedder's window.
14 // The window reference of the embedder to send post message reply.
15 var embedderWindowChannel = null;
17 var notifyEmbedder = function(msg_array) {
18 embedderWindowChannel.postMessage(JSON.stringify(msg_array), '*');
21 var openWindow = function(url, frameName) {
22 window.open(url, frameName);
25 var openWindowBlankRedirect = function(url, frameName) {
26 console.log('redirect');
27 var w = window.open('', frameName);
30 '<META HTTP-EQUIV="refresh" content="0; url=' + url + '">');
34 var onPostMessageReceived = function(e) {
35 embedderWindowChannel = e.source;
36 var data = JSON.parse(e.data);
37 if (data[0] == 'open-window') {
39 var frameName = data[2];
40 var redirect = data[3];
42 openWindowBlankRedirect(url, frameName);
44 openWindow(url, frameName);
49 window.addEventListener('message', onPostMessageReceived, false);
53 <div>This is a guest that requests a new window.</div>