| Index: third_party/WebKit/LayoutTests/imported/wpt/html/browsers/the-window-object/security-window/window-security.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/html/browsers/the-window-object/security-window/window-security.html b/third_party/WebKit/LayoutTests/imported/wpt/html/browsers/the-window-object/security-window/window-security.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9a9ef358ec13ee8f3f0320ea3792cf6ce6975453
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/html/browsers/the-window-object/security-window/window-security.html
|
| @@ -0,0 +1,203 @@
|
| +<!DOCTYPE html>
|
| +<meta charset="utf-8">
|
| +<title>HTML Test: Window Security</title>
|
| +<link rel="author" title="Intel" href="http://www.intel.com/" />
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/browsers.html#the-window-object" />
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/timers.html#timers" />
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/webappapis.html#atob" />
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/#windowsessionstorage" />
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/#windowlocalstorage" />
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/browsers.html#window" />
|
| +<link rel="help" href="http://dev.w3.org/csswg/cssom/#extensions-to-the-window-interface" />
|
| +<link rel="help" href="http://dev.w3.org/csswg/cssom-view/#extensions-to-the-window-interface" />
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<script src="/common/get-host-info.sub.js"></script>
|
| +<div id="log"></div>
|
| +<script>
|
| +var t = async_test("Window Security testing");
|
| +
|
| +function fr_load() {
|
| + fr = document.getElementById("fr");
|
| +
|
| + t.step(function () {
|
| + //SecurityError should be thrown
|
| + [
|
| + //attributes
|
| + {name: "applicationCache"},
|
| + {name: "devicePixelRatio"},
|
| + {name: "document"},
|
| + {name: "external"},
|
| + {name: "frameElement"},
|
| + {name: "history"},
|
| + {name: "innerWidth"},
|
| + {name: "innerHeight"},
|
| + {name: "locationbar"},
|
| + {name: "localStorage"},
|
| + {name: "menubar"},
|
| + {name: "name"},
|
| + {name: "navigator"},
|
| + {name: "onabort"},
|
| + {name: "onafterprint"},
|
| + {name: "onbeforeprint"},
|
| + {name: "onbeforeunload"},
|
| + {name: "onblur"},
|
| + {name: "oncancel"},
|
| + {name: "oncanplay"},
|
| + {name: "oncanplaythrough"},
|
| + {name: "onchange"},
|
| + {name: "onclick"},
|
| + {name: "onclose"},
|
| + {name: "oncontextmenu"},
|
| + {name: "oncuechange"},
|
| + {name: "ondblclick"},
|
| + {name: "ondrag"},
|
| + {name: "ondragend"},
|
| + {name: "ondragenter"},
|
| + {name: "ondragleave"},
|
| + {name: "ondragover"},
|
| + {name: "ondragstart"},
|
| + {name: "ondrop"},
|
| + {name: "ondurationchange"},
|
| + {name: "onemptied"},
|
| + {name: "onended"},
|
| + {name: "onerror"},
|
| + {name: "onfocus"},
|
| + {name: "onhashchange"},
|
| + {name: "oninput"},
|
| + {name: "oninvalid"},
|
| + {name: "onkeydown"},
|
| + {name: "onkeypress"},
|
| + {name: "onkeyup"},
|
| + {name: "onload"},
|
| + {name: "onloadeddata"},
|
| + {name: "onloadedmetadata"},
|
| + {name: "onloadstart"},
|
| + {name: "onmessage"},
|
| + {name: "onmousedown"},
|
| + {name: "onmousemove"},
|
| + {name: "onmouseout"},
|
| + {name: "onmouseover"},
|
| + {name: "onmouseup"},
|
| + {name: "onmousewheel"},
|
| + {name: "onoffline"},
|
| + {name: "ononline"},
|
| + {name: "onpause"},
|
| + {name: "onplay"},
|
| + {name: "onplaying"},
|
| + {name: "onpagehide"},
|
| + {name: "onpageshow"},
|
| + {name: "onpopstate"},
|
| + {name: "onprogress"},
|
| + {name: "onratechange"},
|
| + {name: "onreset"},
|
| + {name: "onresize"},
|
| + {name: "onscroll"},
|
| + {name: "onseeked"},
|
| + {name: "onseeking"},
|
| + {name: "onselect"},
|
| + {name: "onshow"},
|
| + {name: "onstalled"},
|
| + {name: "onstorage"},
|
| + {name: "onsubmit"},
|
| + {name: "onsuspend"},
|
| + {name: "ontimeupdate"},
|
| + {name: "onunload"},
|
| + {name: "onvolumechange"},
|
| + {name: "onwaiting"},
|
| + {name: "pageXOffset"},
|
| + {name: "pageYOffset"},
|
| + {name: "personalbar"},
|
| + {name: "screen"},
|
| + {name: "scrollbars"},
|
| + {name: "statusbar"},
|
| + {name: "status"},
|
| + {name: "screenX"},
|
| + {name: "screenY"},
|
| + {name: "sessionStorage"},
|
| + {name: "toolbar"},
|
| + //methods
|
| + {name: "alert", isMethod: true},
|
| + {name: "clearInterval", isMethod: true, args:[1]},
|
| + {name: "clearTimeout", isMethod: true, args:[function () {}, 1]},
|
| + {name: "confirm", isMethod: true},
|
| + {name: "getComputedStyle", isMethod: true, args:[document.body, null]},
|
| + {name: "getSelection", isMethod: true},
|
| + {name: "matchMedia", isMethod: true, args:["(min-width:50px)"]},
|
| + {name: "moveBy", isMethod: true, args:[10, 10]},
|
| + {name: "moveTo", isMethod: true, args:[10, 10]},
|
| + {name: "open", isMethod: true},
|
| + {name: "print", isMethod: true},
|
| + {name: "prompt", isMethod: true},
|
| + {name: "resizeTo", isMethod: true, args:[10, 10]},
|
| + {name: "resizeBy", isMethod: true, args:[10, 10]},
|
| + {name: "scroll", isMethod: true, args:[10, 10]},
|
| + {name: "scrollTo", isMethod: true, args:[10, 10]},
|
| + {name: "scrollBy", isMethod: true, args:[10, 10]},
|
| + {name: "setInterval", isMethod: true, args:[function () {}, 1]},
|
| + {name: "setTimeout", isMethod: true, args:[function () {}, 1]},
|
| + {name: "showModalDialog", isMethod: true, args:["auto:blank", "dialog"]},
|
| + {name: "stop", isMethod: true},
|
| + ].forEach(function (item) {
|
| + test(function () {
|
| + assert_true(item.name in window, "window." + item.name + " should exist.");
|
| + assert_throws("SecurityError", function () {
|
| + if (item.isMethod)
|
| + if (item.args)
|
| + fr.contentWindow[item.name](item.args[0], item.args[1]);
|
| + else
|
| + fr.contentWindow[item.name]();
|
| + else
|
| + fr.contentWindow[item.name];
|
| + }, "A SecurityError exception should be thrown.");
|
| + }, "A SecurityError exception must be thrown when window." + item.name + " is accessed from a different origin.");
|
| + });
|
| +
|
| + //SecurityError should not be thrown
|
| + [
|
| + //attributes
|
| + {name: "closed"},
|
| + {name: "frames"},
|
| + {name: "length"},
|
| + {name: "location"},
|
| + {name: "opener"},
|
| + {name: "parent"},
|
| + {name: "self"},
|
| + {name: "top"},
|
| + {name: "window"},
|
| + //methods
|
| + {name: "blur", isMethod: true},
|
| + {name: "close", isMethod: true},
|
| + {name: "focus", isMethod: true},
|
| + {name: "postMessage", isMethod: true, args: [{msg: 'foo'}, "*"]}
|
| + ].forEach(function (item) {
|
| + test(function () {
|
| + assert_true(item.name in window, "window." + item.name + " should exist.");
|
| + try {
|
| + if (item.isMethod)
|
| + if (item.args)
|
| + fr.contentWindow[item.name](item.args[0], item.args[1]);
|
| + else
|
| + fr.contentWindow[item.name]();
|
| + else
|
| + fr.contentWindow[item.name];
|
| + } catch (e) {
|
| + assert_unreached("An unexpected exception was thrown.");
|
| + }
|
| + }, "A SecurityError exception should not be thrown when window." + item.name + " is accessed from a different origin.");
|
| + });
|
| + });
|
| + t.done();
|
| +}
|
| +
|
| +</script>
|
| +<script>
|
| +onload = function() {
|
| + var frame = document.createElement('iframe');
|
| + frame.id = "fr";
|
| + frame.setAttribute("style", "display:none");
|
| + frame.setAttribute('src', get_host_info().HTTP_REMOTE_ORIGIN + "/");
|
| + frame.setAttribute("onload", "fr_load()");
|
| + document.body.appendChild(frame);
|
| +}
|
| +</script>
|
|
|