| <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> | |
| 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.onload = function() | |
| { | |
| if (window.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } | |
| // 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, "Entity"); | |
| setForbiddenProperty(targetWindow, "EntityReference"); | |
| setForbiddenProperty(targetWindow, "EvalError"); | |
| setForbiddenProperty(targetWindow, "Event"); | |
| setForbiddenProperty(targetWindow, "HTMLAnchorElement"); | |
| setForbiddenProperty(targetWindow, "HTMLAppletElement"); | |
| setForbiddenProperty(targetWindow, "HTMLAreaElement"); | |
| setForbiddenProperty(targetWindow, "HTMLBaseElement"); | |
| setForbiddenProperty(targetWindow, "HTMLBaseFontElement"); | |
| 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, "Notation"); | |
| setForbiddenProperty(targetWindow, "ProcessingInstruction"); | |
| setForbiddenProperty(targetWindow, "Range"); | |
| setForbiddenProperty(targetWindow, "RangeError"); | |
| setForbiddenProperty(targetWindow, "RangeException"); | |
| 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"); | |
| setTimeout(function() { | |
| // log(targetWindow.focus.__proto__); | |
| log("MAIN WINDOW: !!-- Test ended--!!"); | |
| window.stop(); | |
| if (window.testRunner) | |
| testRunner.notifyDone(); | |
| }, 1); | |
| } | |
| </script> |