chromium/third_party/blink/web_tests/http/tests/security/resources/cross-frame-iframe-for-object-prototype-test.html

<html>
<head>
    <script src="cross-frame-access.js"></script>
    <script>
        receiver = function(e)
        {
            if (e.data == "settingValuesComplete")
                setTest();
        }
        addEventListener('message', receiver, false);

        window.onload = function()
        {
            // Add manuel run buttons if the browser does not support window.postMessage
            if (!window.postMessage) {
                var button = document.createElement("button");
                button.appendChild(document.createTextNode("Step 2 - Set Test"));
                button.onclick = setTest;
                document.body.appendChild(button);
            }

            window.__defineGetter__("myGetter", function() { return "myGetter";});
            window.__defineSetter__("myGetter", function(x) { return "mySetter";});
            window.myProp = "myPropValue";

            if (window.postMessage)
                window.parent.postMessage("propertiesSet", "*");
        }

        setTest = function()
        {

            log("\n----- test that functions could not be injected cross-frame using Object.prototype -----\n");

            shouldBe("window.hasOwnProperty('injectedGetter')", "false");
            shouldBe("window.__lookupGetter__('injectedGetter')", "undefined");
            shouldBe("window.hasOwnProperty('injectedSetter')", "false");
            shouldBe("window.__lookupSetter__('injectedSetter')", "undefined");
            shouldBe("window.injectedGetter", "undefined");
            shouldBe("window.injectedSetter = 1", "1");

            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body>
    <pre id="console"></pre>
</body>
</html>