|
1 <html> |
|
2 <script> |
|
3 function check(elt, expectAccess, prop) { |
|
4 var access = false; |
|
5 try { |
|
6 elt[prop]; |
|
7 access = true; |
|
8 } |
|
9 catch (e) {} |
|
10 return access === expectAccess; |
|
11 } |
|
12 |
|
13 function sendMessage(success, sameOrigin, prop) { |
|
14 var result = success ? 'PASS' : 'FAIL'; |
|
15 var message; |
|
16 if (sameOrigin) |
|
17 message = 'Can access |' + prop + '| if same origin'; |
|
18 else |
|
19 message = 'Cannot access |' + prop + '| if not same origin'; |
|
20 parent.postMessage(result + ',' + message, '*'); |
|
21 } |
|
22 |
|
23 var sameOrigin = location.host !== 'example.org'; |
|
24 var pass = check(frameElement, sameOrigin, 'src'); |
|
25 if (!pass) { |
|
26 sendMessage(false, sameOrigin, 'src'); |
|
27 } else { |
|
28 pass = check(parent.location, sameOrigin, 'href'); |
|
29 sendMessage(pass, sameOrigin, 'href'); |
|
30 } |
|
31 </script> |
|
32 </html> |