- add sources.
[platform/framework/web/crosswalk.git] / src / chrome_frame / test / data / privileged_apis_host.html
1 <html>
2   <head><title>Privileged Apis test</title>
3     <script type='text/javascript' src='chrome_frame_tester_helpers.js'>
4     </script>
5     <script type='text/javascript'>
6       var testName = 'PrivilegedApis';
7       function OnNavigationFailed(msg) {
8         onFailure(testName, 1, 'ChromeFrame Navigation failed: ' + msg);
9       }
10
11       function OnPrivateMessage() {
12         onFailure(testName, 1, 'OnPrivateMessage should not execute');
13       }
14
15       function OnChromeFrameMessage(evt) {
16         try {
17           var d = new String(evt.data);
18           appendStatus('Message: ' + d);
19           if (d == 'succeed') {
20             onSuccess(testName, 1);
21           } else {
22             onFailure(testName, 1, 'unexpected data');
23           }
24         } catch (e) {
25           onFailure(testName, 1, 'exception in OnChromeFrameMessage');
26         }
27       }
28
29       function tryPrivateMessage() {
30         var cf = GetChromeFrame();
31
32         try {
33           // Any message received by this listener is a failure.
34           // This succeeds in FF, but throws an exception in IE.
35           cf.addEventListener('onprivatemessage', OnPrivateMessage, false);
36         } catch(e) {
37           appendStatus('addEventListener onprivatemessage threw exception')
38         }
39
40         // If this invocation succeeds, then 'fail' is reflected by the frame
41         // and we fail in the OnChromeFrameMessage handler above.
42         try {
43           cf.postPrivateMessage('fail', String(document.location), '*');
44           onFailure(testName, 1, 'postPrivateMessage should throw');
45         } catch(e) {
46         }
47         appendStatus('After postPrivateMessage')
48       }
49
50       function OnChromeFrameLoaded(url) {
51         tryPrivateMessage();
52
53         // The frame reflects this twice, first to a bogus target
54         // and again to the default target '*'. We succeed if we
55         // get the reflected message to OnChromeFrameMessage and not to
56         // OnPrivateMessage.
57         var cf = GetChromeFrame();
58         cf.postMessage('succeed');
59         appendStatus('After cf.postMessage')
60       }
61
62       function GetChromeFrame() {
63         return window.document.ChromeFrame;
64       }
65     </script>
66   </head>
67   <body>
68       <div id='statusPanel' style='border: 1px solid red; width: 100%'>
69       Test running....
70       </div>
71
72       <span id='ChromeFrameSpan'></span>
73       <!-- TODO(siggi): Test setting onprivatemessage in these params -->
74       <script type='text/javascript'>
75 insertControl(
76     'ChromeFrameSpan',
77     { "src": "privileged_apis_frame.html",
78       "eventHandlers": {
79         "onload": "OnChromeFrameLoaded(arguments[0]);",
80         "onloaderror": "OnNavigationFailed();",
81         "onmessage": "return OnChromeFrameMessage(arguments[0]);"
82       },
83       "embedAttributes": { "privileged_mode": "1" }
84     });
85       </script>
86       <p>Tests that privileged apis are unavailable from regular pages</p>
87   </body>
88 </html>