JavaScriptCore:
[WebKit-https.git] / LayoutTests / http / tests / plugins / resources / cross-frame-object-access.html
1 <html>
2 <head>
3 <script>
4 function debug(str) {
5     var li = document.createElement('li');
6     li.appendChild(document.createTextNode(str));
7     document.getElementById('console').appendChild(li)
8 }
9
10 function checkLocationObject(l)
11 {
12     if (!l) {
13         debug('could not access top.location');
14         return false;
15     }
16
17     if (l.href) {
18         debug('could access top.location.href');
19         return false;
20     }
21     
22     return true;
23 }
24
25 function runTest() {
26     var numErrors = 0;
27
28     // Try accessing childFrame.location using NPN_Evaluate
29     var l = document.plugin.testEvaluate('top.location')
30     if (!checkLocationObject(l))
31         numErrors++;
32
33     // Try getting childFrame.location.href using NPN_Evaluate
34     var href = document.plugin.testEvaluate('top.location.href');
35     if (href) {
36         debug("could access top.location.href")
37         numErrors++;
38     }
39     
40     // Try accessing childFrame.location using NPN_GetProperty
41     var l = document.plugin.testGetProperty('top', 'location');
42     if (!checkLocationObject(l))
43         numErrors++;
44         
45     var href = document.plugin.testGetProperty('top', 'location', 'href');
46     if (href) {
47         debug("could access top.location.href")
48         numErrors++;
49     }
50     
51     // Try accessing top.document using NPN_EVALUATE
52     var l = document.plugin.testEvaluate('top.document')
53     if (l) {
54         debug('could access top.document');
55         numErrors++;
56     }
57     
58     // Try accessing top.document using NPN_GetProperty
59     var l = document.plugin.testGetProperty('top', 'document')
60     if (l) {
61         debug('could access top.document');
62         numErrors++;
63     }
64     
65     if (numErrors == 0)
66         document.getElementById('result').innerHTML = 'SUCCESS';
67 }
68     
69 </script>
70 </head>
71 <body onload="runTest()">
72 <embed name="plugin" type="application/x-webkit-test-netscape"></embed>
73 <div>This tests that plug-ins can access objects in other frames as allowed by the security model enforced in WebCore.</div>
74 <ul id="console">
75 </ul>
76 <div id="result">FAILURE</div>
77 </body>
78 </html>