
<p>This test checks cross-frame access security of window attribute setters (rdar://problem/5326791).</p>
<iframe src="http://localhost:8000/security/resources/cross-frame-iframe-for-put-test.html" style=""></iframe>
<pre id="console"></pre>
<script>
if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

function log(s)
{
    document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
}

function setForbiddenProperty(obj, prop)
{
    try {
        obj[prop] = "FAIL!! CUSTOM " + prop;
    } catch (ex) {
        log("PASS: Unable to set property " + prop + ": " + ex);
    }
}

window.targetWindow = window.frames[0];

window.addEventListener("message", test, false);

function test(message) {
    alert(message.data);
    // FIXME: This test should use fast/window/resources/window-properties.js instead of a custom list.
    // Constructors
    setForbiddenProperty(targetWindow, "Attr");
    setForbiddenProperty(targetWindow, "CDATASection");
    setForbiddenProperty(targetWindow, "CharacterData");
    setForbiddenProperty(targetWindow, "Comment");
    setForbiddenProperty(targetWindow, "CSSPrimitiveValue");
    setForbiddenProperty(targetWindow, "CSSRule");
    setForbiddenProperty(targetWindow, "CSSStyleDeclaration");
    setForbiddenProperty(targetWindow, "CSSValue");
    setForbiddenProperty(targetWindow, "Document");
    setForbiddenProperty(targetWindow, "DocumentFragment");
    setForbiddenProperty(targetWindow, "DocumentType");
    setForbiddenProperty(targetWindow, "DOMException");
    setForbiddenProperty(targetWindow, "DOMImplementation");
    setForbiddenProperty(targetWindow, "DOMParser");
    setForbiddenProperty(targetWindow, "Element");
    setForbiddenProperty(targetWindow, "EvalError");
    setForbiddenProperty(targetWindow, "Event");
    setForbiddenProperty(targetWindow, "HTMLAnchorElement");
    setForbiddenProperty(targetWindow, "HTMLAppletElement");
    setForbiddenProperty(targetWindow, "HTMLAreaElement");
    setForbiddenProperty(targetWindow, "HTMLBaseElement");
    setForbiddenProperty(targetWindow, "HTMLBodyElement");
    setForbiddenProperty(targetWindow, "HTMLBRElement");
    setForbiddenProperty(targetWindow, "HTMLButtonElement");
    setForbiddenProperty(targetWindow, "HTMLCanvasElement");
    setForbiddenProperty(targetWindow, "HTMLDirectoryElement");
    setForbiddenProperty(targetWindow, "HTMLDivElement");
    setForbiddenProperty(targetWindow, "HTMLDListElement");
    setForbiddenProperty(targetWindow, "HTMLDocument");
    setForbiddenProperty(targetWindow, "HTMLElement");
    setForbiddenProperty(targetWindow, "HTMLFieldSetElement");
    setForbiddenProperty(targetWindow, "HTMLFontElement");
    setForbiddenProperty(targetWindow, "HTMLFormElement");
    setForbiddenProperty(targetWindow, "HTMLFrameElement");
    setForbiddenProperty(targetWindow, "HTMLFrameSetElement");
    setForbiddenProperty(targetWindow, "HTMLHeadElement");
    setForbiddenProperty(targetWindow, "HTMLHeadingElement");
    setForbiddenProperty(targetWindow, "HTMLHRElement");
    setForbiddenProperty(targetWindow, "HTMLHtmlElement");
    setForbiddenProperty(targetWindow, "HTMLIFrameElement");
    setForbiddenProperty(targetWindow, "HTMLImageElement");
    setForbiddenProperty(targetWindow, "HTMLInputElement");
    setForbiddenProperty(targetWindow, "HTMLLabelElement");
    setForbiddenProperty(targetWindow, "HTMLLegendElement");
    setForbiddenProperty(targetWindow, "HTMLLIElement");
    setForbiddenProperty(targetWindow, "HTMLLinkElement");
    setForbiddenProperty(targetWindow, "HTMLMapElement");
    setForbiddenProperty(targetWindow, "HTMLMarqueeElement");
    setForbiddenProperty(targetWindow, "HTMLMenuElement");
    setForbiddenProperty(targetWindow, "HTMLMetaElement");
    setForbiddenProperty(targetWindow, "HTMLModElement");
    setForbiddenProperty(targetWindow, "HTMLOListElement");
    setForbiddenProperty(targetWindow, "HTMLOptGroupElement");
    setForbiddenProperty(targetWindow, "HTMLOptionElement");
    setForbiddenProperty(targetWindow, "HTMLParagraphElement");
    setForbiddenProperty(targetWindow, "HTMLParamElement");
    setForbiddenProperty(targetWindow, "HTMLPreElement");
    setForbiddenProperty(targetWindow, "HTMLQuoteElement");
    setForbiddenProperty(targetWindow, "HTMLScriptElement");
    setForbiddenProperty(targetWindow, "HTMLSelectElement");
    setForbiddenProperty(targetWindow, "HTMLStyleElement");
    setForbiddenProperty(targetWindow, "HTMLTableCaptionElement");
    setForbiddenProperty(targetWindow, "HTMLTableCellElement");
    setForbiddenProperty(targetWindow, "HTMLTableColElement");
    setForbiddenProperty(targetWindow, "HTMLTableElement");
    setForbiddenProperty(targetWindow, "HTMLTableRowElement");
    setForbiddenProperty(targetWindow, "HTMLTableSectionElement");
    setForbiddenProperty(targetWindow, "HTMLTextAreaElement");
    setForbiddenProperty(targetWindow, "HTMLTitleElement");
    setForbiddenProperty(targetWindow, "HTMLUListElement");
    setForbiddenProperty(targetWindow, "MutationEvent");
    setForbiddenProperty(targetWindow, "Node");
    setForbiddenProperty(targetWindow, "NodeFilter");
    setForbiddenProperty(targetWindow, "ProcessingInstruction");
    setForbiddenProperty(targetWindow, "Range");
    setForbiddenProperty(targetWindow, "RangeError");
    setForbiddenProperty(targetWindow, "ReferenceError");
    setForbiddenProperty(targetWindow, "SyntaxError");
    setForbiddenProperty(targetWindow, "Text");
    setForbiddenProperty(targetWindow, "TypeError");
    setForbiddenProperty(targetWindow, "URIError");
    setForbiddenProperty(targetWindow, "XMLDocument");
    setForbiddenProperty(targetWindow, "XMLSerializer");
    setForbiddenProperty(targetWindow, "XPathEvaluator");
    setForbiddenProperty(targetWindow, "XPathResult");

    // FIXME: find a way to test these Constructors
    // setForbiddenProperty(targetWindow, "Image");
    // setForbiddenProperty(targetWindow, "Option");
    // setForbiddenProperty(targetWindow, "XMLHttpRequest");
    // setForbiddenProperty(targetWindow, "XSLTProcessor");

    // Attributes
    setForbiddenProperty(targetWindow, "clientInformation");
    setForbiddenProperty(targetWindow, "closed");
    setForbiddenProperty(targetWindow, "console");
    setForbiddenProperty(targetWindow, "crypto");
    setForbiddenProperty(targetWindow, "defaultStatus");
    setForbiddenProperty(targetWindow, "defaultstatus");
    setForbiddenProperty(targetWindow, "devicePixelRatio");
    setForbiddenProperty(targetWindow, "document");
    setForbiddenProperty(targetWindow, "embeds");
    setForbiddenProperty(targetWindow, "event");
    setForbiddenProperty(targetWindow, "frameElement");
    setForbiddenProperty(targetWindow, "frames");
    setForbiddenProperty(targetWindow, "history");
    setForbiddenProperty(targetWindow, "images");
    setForbiddenProperty(targetWindow, "innerHeight");
    setForbiddenProperty(targetWindow, "innerWidth");
    setForbiddenProperty(targetWindow, "length");
    setForbiddenProperty(targetWindow, "locationbar");
    setForbiddenProperty(targetWindow, "menubar");
    setForbiddenProperty(targetWindow, "name");
    setForbiddenProperty(targetWindow, "navigator");
    setForbiddenProperty(targetWindow, "offscreenBuffering");
    setForbiddenProperty(targetWindow, "onabort");
    setForbiddenProperty(targetWindow, "onbeforeunload");
    setForbiddenProperty(targetWindow, "onblur");
    setForbiddenProperty(targetWindow, "onchange");
    setForbiddenProperty(targetWindow, "onclick");
    setForbiddenProperty(targetWindow, "ondblclick");
    setForbiddenProperty(targetWindow, "onerror");
    setForbiddenProperty(targetWindow, "onfocus");
    setForbiddenProperty(targetWindow, "onkeydown");
    setForbiddenProperty(targetWindow, "onkeypress");
    setForbiddenProperty(targetWindow, "onkeyup");
    setForbiddenProperty(targetWindow, "onload");
    setForbiddenProperty(targetWindow, "onmousedown");
    setForbiddenProperty(targetWindow, "onmousemove");
    setForbiddenProperty(targetWindow, "onmouseout");
    setForbiddenProperty(targetWindow, "onmouseover");
    setForbiddenProperty(targetWindow, "onmouseup");
    setForbiddenProperty(targetWindow, "onmousewheel");
    setForbiddenProperty(targetWindow, "onreset");
    setForbiddenProperty(targetWindow, "onresize");
    setForbiddenProperty(targetWindow, "onscroll");
    setForbiddenProperty(targetWindow, "onsearch");
    setForbiddenProperty(targetWindow, "onselect");
    setForbiddenProperty(targetWindow, "onsubmit");
    setForbiddenProperty(targetWindow, "onunload");
    setForbiddenProperty(targetWindow, "opener");
    setForbiddenProperty(targetWindow, "outerHeight");
    setForbiddenProperty(targetWindow, "outerWidth");
    setForbiddenProperty(targetWindow, "pageXOffset");
    setForbiddenProperty(targetWindow, "pageYOffset");
    setForbiddenProperty(targetWindow, "personalbar");
    setForbiddenProperty(targetWindow, "plugins");
    setForbiddenProperty(targetWindow, "screen");
    setForbiddenProperty(targetWindow, "screenLeft");
    setForbiddenProperty(targetWindow, "screenTop");
    setForbiddenProperty(targetWindow, "screenX");
    setForbiddenProperty(targetWindow, "screenY");
    setForbiddenProperty(targetWindow, "scrollbars");
    setForbiddenProperty(targetWindow, "scrollX");
    setForbiddenProperty(targetWindow, "scrollY");
    setForbiddenProperty(targetWindow, "self");
    setForbiddenProperty(targetWindow, "status");
    setForbiddenProperty(targetWindow, "statusbar");
    setForbiddenProperty(targetWindow, "toolbar");
    setForbiddenProperty(targetWindow, "window");
    setForbiddenProperty(targetWindow, "parent");

    // Functions
    setForbiddenProperty(targetWindow, "addEventListener");
    setForbiddenProperty(targetWindow, "alert");
    setForbiddenProperty(targetWindow, "atob");
    setForbiddenProperty(targetWindow, "blur");
    setForbiddenProperty(targetWindow, "btoa");
    setForbiddenProperty(targetWindow, "captureEvents");
    setForbiddenProperty(targetWindow, "clearInterval");
    setForbiddenProperty(targetWindow, "clearTimeout");
    setForbiddenProperty(targetWindow, "close");
    setForbiddenProperty(targetWindow, "confirm");
    setForbiddenProperty(targetWindow, "constructor");
    setForbiddenProperty(targetWindow, "eval");
    setForbiddenProperty(targetWindow, "find");
    setForbiddenProperty(targetWindow, "focus");
    setForbiddenProperty(targetWindow, "getComputedStyle");
    setForbiddenProperty(targetWindow, "getMatchedCSSRules");
    setForbiddenProperty(targetWindow, "getSelection");
    setForbiddenProperty(targetWindow, "moveBy");
    setForbiddenProperty(targetWindow, "moveTo");
    setForbiddenProperty(targetWindow, "open");
    setForbiddenProperty(targetWindow, "print");
    setForbiddenProperty(targetWindow, "prompt");
    setForbiddenProperty(targetWindow, "releaseEvents");
    setForbiddenProperty(targetWindow, "removeEventListener");
    setForbiddenProperty(targetWindow, "resizeBy");
    setForbiddenProperty(targetWindow, "resizeTo");
    setForbiddenProperty(targetWindow, "scroll");
    setForbiddenProperty(targetWindow, "scrollBy");
    setForbiddenProperty(targetWindow, "scrollTo");
    setForbiddenProperty(targetWindow, "setInterval");
    setForbiddenProperty(targetWindow, "setTimeout");
    setForbiddenProperty(targetWindow, "showModalDialog");
    setForbiddenProperty(targetWindow, "stop");

    // log(targetWindow.focus.__proto__);
    log("MAIN WINDOW: !!-- Test ended--!!");

    window.stop();

    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
