- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / platform_apps / web_view / newwindow / guest_opener.html
1 <!--
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
4  * LICENSE file.
5 -->
6 <html>
7   <head>
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.
13
14       // The window reference of the embedder to send post message reply.
15       var embedderWindowChannel = null;
16
17       var notifyEmbedder = function(msg_array) {
18         embedderWindowChannel.postMessage(JSON.stringify(msg_array), '*');
19       };
20
21       var openWindow = function(url, frameName) {
22         window.open(url, frameName);
23       };
24
25       var openWindowBlankRedirect = function(url, frameName) {
26         console.log('redirect');
27         var w = window.open('', frameName);
28         w.opener = null;
29         w.document.write(
30             '<META HTTP-EQUIV="refresh" content="0; url=' + url + '">');
31         w.document.close();
32       }
33
34       var onPostMessageReceived = function(e) {
35         embedderWindowChannel = e.source;
36         var data = JSON.parse(e.data);
37         if (data[0] == 'open-window') {
38           var url = data[1];
39           var frameName = data[2];
40           var redirect = data[3];
41           if (redirect) {
42             openWindowBlankRedirect(url, frameName);
43           } else {
44             openWindow(url, frameName);
45           }
46         } 
47       };
48
49       window.addEventListener('message', onPostMessageReceived, false);
50     </script>
51   </head>
52   <body>
53     <div>This is a guest that requests a new window.</div>
54   </body>
55 </html>