| <html> |
| <head> |
| <script> |
| const policyShouldGrantAccess = document.location.hash === "#policyShouldGrantAccess"; |
| |
| function messageToTop(messagePrefix, fetchData) { |
| top.postMessage(messagePrefix + " document.cookie == " + document.cookie + |
| (fetchData ? ", cookies seen server-side == " + JSON.stringify(fetchData) : ""), "http://127.0.0.1:8000"); |
| } |
| |
| function checkHasStorageAccess() { |
| var promise = document.hasStorageAccess(); |
| promise.then( |
| function (hasAccess) { |
| if (hasAccess && policyShouldGrantAccess) |
| fetch("echo-incoming-cookies-as-json.php", { credentials: "same-origin" }).then(function(response) { |
| return response.json(); |
| }).then(function(data) { |
| messageToTop("PASS Has storage access.", data); |
| }).catch(function(error) { |
| console.log(error.message); |
| }); |
| else if (!hasAccess && !policyShouldGrantAccess) |
| fetch("echo-incoming-cookies-as-json.php", { credentials: "same-origin" }).then(function(response) { |
| return response.json(); |
| }).then(function(data) { |
| messageToTop("PASS No storage access.", data); |
| }).catch(function(error) { |
| console.log(error.message); |
| }); |
| else |
| messageToTop("FAIL " + |
| (hasAccess ? "Storage " : "No storage ") + |
| "access when there should " + |
| (policyShouldGrantAccess ? "" : "not ") + |
| "have been access."); |
| }, |
| function (reason) { |
| messageToTop("FAIL document.hasStorageAccess() was rejected. Reason: " + reason); |
| } |
| ); |
| } |
| </script> |
| </head> |
| <body onload="checkHasStorageAccess()"> |
| </body> |
| </html> |