Bug 1066771 - Update web-platform-tests to revision 9b98ac4c3a7fba5f5437e2e29b5ae38abd6d5eb0, a=test-only

--HG--
rename : testing/web-platform/meta/websockets/interfaces/WebSocket/close/006.html.ini => testing/web-platform/meta/websockets/interfaces/WebSocket/close/close-connecting.html.ini
rename : testing/web-platform/meta/websockets/interfaces/WebSocket/events/002.html.ini => testing/web-platform/meta/websockets/interfaces/WebSocket/constants/004.html.ini
rename : testing/web-platform/meta/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.xhtml.ini => testing/web-platform/meta/websockets/interfaces/WebSocket/events/015.html.ini
rename : testing/web-platform/tests/html/editing/dnd/target-origin/003.html => testing/web-platform/tests/html/editing/dnd/target-origin/003-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/004.html => testing/web-platform/tests/html/editing/dnd/target-origin/004-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/005.html => testing/web-platform/tests/html/editing/dnd/target-origin/005-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/006.html => testing/web-platform/tests/html/editing/dnd/target-origin/006-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/007.html => testing/web-platform/tests/html/editing/dnd/target-origin/007-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/008.html => testing/web-platform/tests/html/editing/dnd/target-origin/008-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/009.html => testing/web-platform/tests/html/editing/dnd/target-origin/009-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/010.html => testing/web-platform/tests/html/editing/dnd/target-origin/010-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/011.html => testing/web-platform/tests/html/editing/dnd/target-origin/011-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/012.html => testing/web-platform/tests/html/editing/dnd/target-origin/012-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/013.html => testing/web-platform/tests/html/editing/dnd/target-origin/013-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/102.html => testing/web-platform/tests/html/editing/dnd/target-origin/102-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/103.html => testing/web-platform/tests/html/editing/dnd/target-origin/103-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/104.html => testing/web-platform/tests/html/editing/dnd/target-origin/104-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/105.html => testing/web-platform/tests/html/editing/dnd/target-origin/105-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/106.html => testing/web-platform/tests/html/editing/dnd/target-origin/106-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/107.html => testing/web-platform/tests/html/editing/dnd/target-origin/107-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/108.html => testing/web-platform/tests/html/editing/dnd/target-origin/108-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/109.html => testing/web-platform/tests/html/editing/dnd/target-origin/109-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/110.html => testing/web-platform/tests/html/editing/dnd/target-origin/110-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/111.html => testing/web-platform/tests/html/editing/dnd/target-origin/111-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/112.html => testing/web-platform/tests/html/editing/dnd/target-origin/112-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/113.html => testing/web-platform/tests/html/editing/dnd/target-origin/113-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/114.html => testing/web-platform/tests/html/editing/dnd/target-origin/114-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/115.html => testing/web-platform/tests/html/editing/dnd/target-origin/115-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/116.html => testing/web-platform/tests/html/editing/dnd/target-origin/116-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/117.html => testing/web-platform/tests/html/editing/dnd/target-origin/117-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/118.html => testing/web-platform/tests/html/editing/dnd/target-origin/118-manual.html
rename : testing/web-platform/tests/html/editing/dnd/target-origin/201.html => testing/web-platform/tests/html/editing/dnd/target-origin/201-manual.html
rename : testing/web-platform/tests/html/semantics/interfaces.html => testing/web-platform/tests/html/semantics/interfaces.js
rename : testing/web-platform/tests/pointerevents/pointerevent_pointerout_after_pointerup_nohover.html => testing/web-platform/tests/pointerevents/pointerevent_pointerleave_after_pointerup_nohover.html
rename : testing/web-platform/tests/websockets/interfaces/CloseEvent/004.html => testing/web-platform/tests/websockets/interfaces/CloseEvent/clean-close.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/008.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/007.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/005.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/006.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/004.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/003.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/001.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/009.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/002.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/010.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/005.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-basic.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/006.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-connecting.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/003.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-multiple.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/005.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-nested.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/002.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-replace.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/004.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-return.html
extra : rebase_source : 200f5fafb760e3c985a5ae3e8682c0e3cc99920f
This commit is contained in:
James Graham 2014-09-12 20:09:36 +01:00
parent 934564017f
commit 4280c39cc9
167 changed files with 6906 additions and 1515 deletions

View File

@ -0,0 +1,14 @@
[File-constructor.html]
type: testharness
[Using special character in fileName]
expected: FAIL
[Using uppercase characters in type]
expected: FAIL
[Using illegal character for type]
expected: FAIL
[Using lastModified]
expected: FAIL

View File

@ -191,3 +191,55 @@
[Blob interface: new Blob(["TEST"\]) must inherit property "close" with the proper type (3)]
expected: FAIL
[Blob interface: attribute isClosed]
expected: FAIL
[Blob interface: new Blob(["TEST"\]) must inherit property "isClosed" with the proper type (2)]
expected: FAIL
[Blob interface: new Blob(["TEST"\]) must inherit property "close" with the proper type (4)]
expected: FAIL
[File interface: attribute lastModified]
expected: FAIL
[Stringification of new File(["myFileBits"\], "myFileName")]
expected:
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL
[File interface: new File(["myFileBits"\], "myFileName") must inherit property "lastModified" with the proper type (1)]
expected: FAIL
[Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "isClosed" with the proper type (2)]
expected: FAIL
[Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "close" with the proper type (4)]
expected: FAIL
[FileReaderSync interface: existence and properties of interface object]
expected: FAIL
[FileReaderSync interface object length]
expected: FAIL
[FileReaderSync interface: existence and properties of interface prototype object]
expected: FAIL
[FileReaderSync interface: existence and properties of interface prototype object\'s "constructor" property]
expected: FAIL
[FileReaderSync interface: operation readAsArrayBuffer(Blob)]
expected: FAIL
[FileReaderSync interface: operation readAsText(Blob,DOMString)]
expected: FAIL
[FileReaderSync interface: operation readAsDataURL(Blob)]
expected: FAIL

View File

@ -2342,8 +2342,8 @@
"url": "/html/editing/dnd/resources/circle.png"
},
{
"path": "html/editing/dnd/resources/crossorigin.js",
"url": "/html/editing/dnd/resources/crossorigin.js"
"path": "html/editing/dnd/resources/crossorigin.sub.js",
"url": "/html/editing/dnd/resources/crossorigin.sub.js"
},
{
"path": "html/editing/dnd/resources/fail.png",
@ -2861,6 +2861,10 @@
"path": "html/semantics/interactive-elements/the-menu-element/contains.json",
"url": "/html/semantics/interactive-elements/the-menu-element/contains.json"
},
{
"path": "html/semantics/interfaces.js",
"url": "/html/semantics/interfaces.js"
},
{
"path": "html/semantics/links/downloading-resources/contains.json",
"url": "/html/semantics/links/downloading-resources/contains.json"
@ -3809,10 +3813,6 @@
"path": "user-timing/resources/webperftestharnessextension.js",
"url": "/user-timing/resources/webperftestharnessextension.js"
},
{
"path": "vibration/TODO.txt",
"url": "/vibration/TODO.txt"
},
{
"path": "web-animations/README.md",
"url": "/web-animations/README.md"
@ -5417,6 +5417,10 @@
"path": "workers/constructors/Worker/undefined",
"url": "/workers/constructors/Worker/undefined"
},
{
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.js",
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.js"
},
{
"path": "workers/interfaces/WorkerGlobalScope/location/helper-redirect.py",
"url": "/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py"
@ -5903,10 +5907,126 @@
"path": "html/editing/dnd/target-origin/002-manual.html",
"url": "/html/editing/dnd/target-origin/002-manual.html"
},
{
"path": "html/editing/dnd/target-origin/003-manual.html",
"url": "/html/editing/dnd/target-origin/003-manual.html"
},
{
"path": "html/editing/dnd/target-origin/004-manual.html",
"url": "/html/editing/dnd/target-origin/004-manual.html"
},
{
"path": "html/editing/dnd/target-origin/005-manual.html",
"url": "/html/editing/dnd/target-origin/005-manual.html"
},
{
"path": "html/editing/dnd/target-origin/006-manual.html",
"url": "/html/editing/dnd/target-origin/006-manual.html"
},
{
"path": "html/editing/dnd/target-origin/007-manual.html",
"url": "/html/editing/dnd/target-origin/007-manual.html"
},
{
"path": "html/editing/dnd/target-origin/008-manual.html",
"url": "/html/editing/dnd/target-origin/008-manual.html"
},
{
"path": "html/editing/dnd/target-origin/009-manual.html",
"url": "/html/editing/dnd/target-origin/009-manual.html"
},
{
"path": "html/editing/dnd/target-origin/010-manual.html",
"url": "/html/editing/dnd/target-origin/010-manual.html"
},
{
"path": "html/editing/dnd/target-origin/011-manual.html",
"url": "/html/editing/dnd/target-origin/011-manual.html"
},
{
"path": "html/editing/dnd/target-origin/012-manual.html",
"url": "/html/editing/dnd/target-origin/012-manual.html"
},
{
"path": "html/editing/dnd/target-origin/013-manual.html",
"url": "/html/editing/dnd/target-origin/013-manual.html"
},
{
"path": "html/editing/dnd/target-origin/101-manual.html",
"url": "/html/editing/dnd/target-origin/101-manual.html"
},
{
"path": "html/editing/dnd/target-origin/102-manual.html",
"url": "/html/editing/dnd/target-origin/102-manual.html"
},
{
"path": "html/editing/dnd/target-origin/103-manual.html",
"url": "/html/editing/dnd/target-origin/103-manual.html"
},
{
"path": "html/editing/dnd/target-origin/104-manual.html",
"url": "/html/editing/dnd/target-origin/104-manual.html"
},
{
"path": "html/editing/dnd/target-origin/105-manual.html",
"url": "/html/editing/dnd/target-origin/105-manual.html"
},
{
"path": "html/editing/dnd/target-origin/106-manual.html",
"url": "/html/editing/dnd/target-origin/106-manual.html"
},
{
"path": "html/editing/dnd/target-origin/107-manual.html",
"url": "/html/editing/dnd/target-origin/107-manual.html"
},
{
"path": "html/editing/dnd/target-origin/108-manual.html",
"url": "/html/editing/dnd/target-origin/108-manual.html"
},
{
"path": "html/editing/dnd/target-origin/109-manual.html",
"url": "/html/editing/dnd/target-origin/109-manual.html"
},
{
"path": "html/editing/dnd/target-origin/110-manual.html",
"url": "/html/editing/dnd/target-origin/110-manual.html"
},
{
"path": "html/editing/dnd/target-origin/111-manual.html",
"url": "/html/editing/dnd/target-origin/111-manual.html"
},
{
"path": "html/editing/dnd/target-origin/112-manual.html",
"url": "/html/editing/dnd/target-origin/112-manual.html"
},
{
"path": "html/editing/dnd/target-origin/113-manual.html",
"url": "/html/editing/dnd/target-origin/113-manual.html"
},
{
"path": "html/editing/dnd/target-origin/114-manual.html",
"url": "/html/editing/dnd/target-origin/114-manual.html"
},
{
"path": "html/editing/dnd/target-origin/115-manual.html",
"url": "/html/editing/dnd/target-origin/115-manual.html"
},
{
"path": "html/editing/dnd/target-origin/116-manual.html",
"url": "/html/editing/dnd/target-origin/116-manual.html"
},
{
"path": "html/editing/dnd/target-origin/117-manual.html",
"url": "/html/editing/dnd/target-origin/117-manual.html"
},
{
"path": "html/editing/dnd/target-origin/118-manual.html",
"url": "/html/editing/dnd/target-origin/118-manual.html"
},
{
"path": "html/editing/dnd/target-origin/201-manual.html",
"url": "/html/editing/dnd/target-origin/201-manual.html"
},
{
"path": "html/editing/dnd/the-dragevent-interface/dragevent-manual.html",
"url": "/html/editing/dnd/the-dragevent-interface/dragevent-manual.html"
@ -6383,10 +6503,18 @@
"path": "touch-events/single-touch-manual.html",
"url": "/touch-events/single-touch-manual.html"
},
{
"path": "vibration/cancel-when-hidden-manual.html",
"url": "/vibration/cancel-when-hidden-manual.html"
},
{
"path": "vibration/cancel-with-0-manual.html",
"url": "/vibration/cancel-with-0-manual.html"
},
{
"path": "vibration/cancel-with-array-0-manual.html",
"url": "/vibration/cancel-with-array-0-manual.html"
},
{
"path": "vibration/cancel-with-empty-array-manual.html",
"url": "/vibration/cancel-with-empty-array-manual.html"
@ -11863,6 +11991,10 @@
"path": "FileAPI/Blob-slice.html",
"url": "/FileAPI/Blob-slice.html"
},
{
"path": "FileAPI/File-constructor.html",
"url": "/FileAPI/File-constructor.html"
},
{
"path": "FileAPI/FileReader-interface/filereader_abort.html",
"url": "/FileAPI/FileReader-interface/filereader_abort.html"
@ -12784,10 +12916,6 @@
"path": "XMLHttpRequest/anonymous-mode-unsupported.htm",
"url": "/XMLHttpRequest/anonymous-mode-unsupported.htm"
},
{
"path": "XMLHttpRequest/data-uri-basic.htm",
"url": "/XMLHttpRequest/data-uri-basic.htm"
},
{
"path": "XMLHttpRequest/data-uri.htm",
"url": "/XMLHttpRequest/data-uri.htm"
@ -14277,6 +14405,10 @@
"path": "dom/nodes/Node-nodeName.xhtml",
"url": "/dom/nodes/Node-nodeName.xhtml"
},
{
"path": "dom/nodes/Node-nodeValue.html",
"url": "/dom/nodes/Node-nodeValue.html"
},
{
"path": "dom/nodes/Node-normalize.html",
"url": "/dom/nodes/Node-normalize.html"
@ -15004,6 +15136,11 @@
"path": "html/browsers/offline/manifest_url_check.html",
"url": "/html/browsers/offline/manifest_url_check.html"
},
{
"path": "html/browsers/origin/cross-origin-objects/cross-origin-objects.html",
"timeout": "long",
"url": "/html/browsers/origin/cross-origin-objects/cross-origin-objects.html"
},
{
"path": "html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-01.html",
"url": "/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-01.html"
@ -15837,6 +15974,10 @@
"path": "html/editing/dnd/synthetic/001.html",
"url": "/html/editing/dnd/synthetic/001.html"
},
{
"path": "html/editing/dnd/target-origin/202.html",
"url": "/html/editing/dnd/target-origin/202.html"
},
{
"path": "html/editing/dnd/the-draggable-attribute/draggable_attribute.html",
"url": "/html/editing/dnd/the-draggable-attribute/draggable_attribute.html"
@ -19700,6 +19841,14 @@
"path": "pointerevents/pointerevent_constructor.html",
"url": "/pointerevents/pointerevent_constructor.html"
},
{
"path": "pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html",
"url": "/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html"
},
{
"path": "pointerevents/pointerevent_pointerleave_after_pointerup_nohover.html",
"url": "/pointerevents/pointerevent_pointerleave_after_pointerup_nohover.html"
},
{
"path": "pointerevents/pointerevent_pointerout_after_pointercancel_touch.html",
"url": "/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html"
@ -20444,6 +20593,10 @@
"path": "vibration/api-is-present.html",
"url": "/vibration/api-is-present.html"
},
{
"path": "vibration/invalid-values.html",
"url": "/vibration/invalid-values.html"
},
{
"path": "vibration/silent-ignore.html",
"url": "/vibration/silent-ignore.html"
@ -21318,86 +21471,82 @@
"url": "/websockets/interfaces.html"
},
{
"path": "websockets/interfaces/CloseEvent/001.html",
"url": "/websockets/interfaces/CloseEvent/001.html"
"path": "websockets/interfaces/CloseEvent/clean-close.html",
"url": "/websockets/interfaces/CloseEvent/clean-close.html"
},
{
"path": "websockets/interfaces/CloseEvent/002.html",
"url": "/websockets/interfaces/CloseEvent/002.html"
"path": "websockets/interfaces/CloseEvent/constructor.html",
"url": "/websockets/interfaces/CloseEvent/constructor.html"
},
{
"path": "websockets/interfaces/CloseEvent/003.html",
"url": "/websockets/interfaces/CloseEvent/003.html"
"path": "websockets/interfaces/CloseEvent/historical.html",
"url": "/websockets/interfaces/CloseEvent/historical.html"
},
{
"path": "websockets/interfaces/CloseEvent/004.html",
"url": "/websockets/interfaces/CloseEvent/004.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/001.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/001.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/002.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/002.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/003.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/003.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/004.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/004.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/005.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/005.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/006.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/006.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/007.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/007.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/008.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/008.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/009.html",
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html",
"timeout": "long",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/009.html"
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html"
},
{
"path": "websockets/interfaces/WebSocket/bufferedAmount/010.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/010.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html"
},
{
"path": "websockets/interfaces/WebSocket/close/001.html",
"url": "/websockets/interfaces/WebSocket/close/001.html"
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html",
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html"
},
{
"path": "websockets/interfaces/WebSocket/close/002.html",
"url": "/websockets/interfaces/WebSocket/close/002.html"
"path": "websockets/interfaces/WebSocket/close/close-basic.html",
"url": "/websockets/interfaces/WebSocket/close/close-basic.html"
},
{
"path": "websockets/interfaces/WebSocket/close/003.html",
"url": "/websockets/interfaces/WebSocket/close/003.html"
},
{
"path": "websockets/interfaces/WebSocket/close/004.html",
"url": "/websockets/interfaces/WebSocket/close/004.html"
},
{
"path": "websockets/interfaces/WebSocket/close/005.html",
"url": "/websockets/interfaces/WebSocket/close/005.html"
},
{
"path": "websockets/interfaces/WebSocket/close/006.html",
"path": "websockets/interfaces/WebSocket/close/close-connecting.html",
"timeout": "long",
"url": "/websockets/interfaces/WebSocket/close/006.html"
"url": "/websockets/interfaces/WebSocket/close/close-connecting.html"
},
{
"path": "websockets/interfaces/WebSocket/close/close-multiple.html",
"url": "/websockets/interfaces/WebSocket/close/close-multiple.html"
},
{
"path": "websockets/interfaces/WebSocket/close/close-nested.html",
"url": "/websockets/interfaces/WebSocket/close/close-nested.html"
},
{
"path": "websockets/interfaces/WebSocket/close/close-replace.html",
"url": "/websockets/interfaces/WebSocket/close/close-replace.html"
},
{
"path": "websockets/interfaces/WebSocket/close/close-return.html",
"url": "/websockets/interfaces/WebSocket/close/close-return.html"
},
{
"path": "websockets/interfaces/WebSocket/constants/001.html",
@ -22208,6 +22357,10 @@
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html",
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html"
},
{
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.html",
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.html"
},
{
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.html",
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.html"
@ -22608,5 +22761,5 @@
]
},
"local_changes": [],
"rev": "c311dde873f0bc2ebc5d2e5617f67dd14df7ddfe"
"rev": "9b98ac4c3a7fba5f5437e2e29b5ae38abd6d5eb0"
}

View File

@ -1,12 +0,0 @@
[data-uri-basic.htm]
type: testharness
[GET getAllResponseHeaders]
expected: FAIL
[POST status]
expected: FAIL
[POST responseText]
expected: FAIL

View File

@ -18,3 +18,15 @@
[XHR method UNICORN with charset text/plain]
expected: FAIL
[XHR method GET with charset text/plain]
expected: FAIL
[XHR method GET with charset text/plain (base64)]
expected: FAIL
[XHR method GET with charset text/html]
expected: FAIL
[XHR method GET with charset text/html;charset=UTF-8]
expected: FAIL

View File

@ -1,6 +0,0 @@
[xmlhttprequest-timeout-overridesexpires.html]
type: testharness
[Timeout test: timeout set to expired value before load fires, original timeout at 1000, reset at 400 to 300]
expected:
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL

View File

@ -2,5 +2,5 @@
type: testharness
[Timeout test: timeout fires normally with same timeout set twice, original timeout at 400, reset at 200 to 400]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL

View File

@ -315,3 +315,54 @@
[DOMSettableTokenList interface: existence and properties of interface object]
expected: FAIL
[Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type (15)]
expected: FAIL
[Event interface: new Event("foo") must inherit property "timeStamp" with the proper type (15)]
expected: FAIL
[Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type (15)]
expected: FAIL
[Document interface: xmlDoc must inherit property "prepend" with the proper type (31)]
expected: FAIL
[Document interface: xmlDoc must inherit property "append" with the proper type (32)]
expected: FAIL
[Document interface: xmlDoc must inherit property "query" with the proper type (33)]
expected: FAIL
[Document interface: xmlDoc must inherit property "queryAll" with the proper type (34)]
expected: FAIL
[Element interface: operation hasAttributes()]
expected: FAIL
[Element interface: element must inherit property "closest" with the proper type (22)]
expected: FAIL
[Element interface: element must inherit property "prepend" with the proper type (31)]
expected: FAIL
[Element interface: element must inherit property "append" with the proper type (32)]
expected: FAIL
[Element interface: element must inherit property "query" with the proper type (33)]
expected: FAIL
[Element interface: element must inherit property "queryAll" with the proper type (34)]
expected: FAIL
[Element interface: element must inherit property "before" with the proper type (39)]
expected: FAIL
[Element interface: element must inherit property "after" with the proper type (40)]
expected: FAIL
[Element interface: element must inherit property "replace" with the proper type (41)]
expected: FAIL
[Attr interface: attribute textContent]
expected: FAIL

View File

@ -1,7 +1,5 @@
[Document-characterSet-normalization.html]
type: testharness
expected:
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): TIMEOUT
[Name "big5" has label "big5-hkscs"]
expected: FAIL
@ -14,7 +12,3 @@
[Name "x-user-defined" has label "x-user-defined"]
expected: FAIL
[Name "iso-8859-4" has label "latin4"]
expected:
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): NOTRUN

View File

@ -1,8 +0,0 @@
[Document-createElement-namespace.html]
type: testharness
expected:
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): TIMEOUT
[Created element\'s namespace in xhtml_ns_changed.xhtml]
expected:
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): NOTRUN

View File

@ -3,3 +3,6 @@
[Date returned by lastModified is current.]
expected: FAIL
[Date returned by lastModified is in the form "MM/DD/YYYY hh:mm:ss".]
expected: FAIL

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
[202.html]
type: testharness
[allowTargetOrigin with fake dataTransfer should block events]
expected: FAIL

View File

@ -28,10 +28,14 @@
expected: FAIL
[importScripts() in a shared worker]
expected: FAIL
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
FAIL
[SharedWorker() in a shared worker]
expected: FAIL
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
FAIL
[WebSocket#url]
expected: FAIL
@ -119,3 +123,11 @@
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): TIMEOUT
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
[SharedWorker constructor]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
[Worker() in a shared worker]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT

View File

@ -1,7 +1,5 @@
[track-api-texttracks.html]
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
[Count track list]
expected: FAIL

View File

@ -114,9 +114,6 @@
[html5lib_template.html cd8bc9521f9683086a9e8529dd97314a6869daeb]
expected: FAIL
[html5lib_template.html f915e7b3407c24b28c3aad318e5693cc774020f4]
expected: FAIL
[html5lib_template.html 3c5eb261787b3d15aff86fa61de773fd7e439b0e]
expected: FAIL
@ -300,3 +297,18 @@
[html5lib_template.html 24b3b50fdd0bf8d5cf2ebaa6bf502d7bcfde1da4]
expected: FAIL
[html5lib_template.html d3704c68528357189eb5826ab66eea071d6137a5]
expected: FAIL
[html5lib_template.html d958f7d44faf772d1fb60f1a8f186f837ca735d9]
expected: FAIL
[html5lib_template.html 3fc4d97fa68fc2658356bdbd4e051c867de8de53]
expected: FAIL
[html5lib_template.html 94820107bbf3fab3f82de1f717e8413aead7d3a6]
expected: FAIL
[html5lib_template.html 657c00ebdda37ae060cc69633ed98482ccc29e18]
expected: FAIL

View File

@ -0,0 +1,11 @@
[html5lib_tests11.html]
type: testharness
[html5lib_tests11.html d3a8de194ffc676baf08142bcda59ba18dcde2ba]
expected: FAIL
[html5lib_tests11.html 7ab36bc30d0d6bee4be899f13baed214e1ff0a74]
expected: FAIL
[html5lib_tests11.html 45b6adfc38d306084d105aa7779a3b4fb83c031f]
expected: FAIL

View File

@ -1,8 +1,8 @@
[html5lib_tests25.html]
type: testharness
[html5lib_tests25.html de4aa726e09215ba9c50b97d257e6c6b880107f1]
expected: FAIL
[html5lib_tests25.html 1ccc6e280f6dc773e2e00f2cb70cd96e97078296]
expected: FAIL
[html5lib_tests25.html d46fa11c0107d59c84778beae84f388f55bffc31]
expected: FAIL

View File

@ -0,0 +1,6 @@
[pointerevent_pointerleave_after_pointercancel_touch.html]
type: testharness
expected: TIMEOUT
[pointerleave event received]
expected: NOTRUN

View File

@ -0,0 +1,6 @@
[pointerevent_pointerleave_after_pointerup_nohover.html]
type: testharness
expected: TIMEOUT
[pointerleave event received]
expected: NOTRUN

View File

@ -1,6 +0,0 @@
[020.html]
type: testharness
[cross-origin test]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL

View File

@ -1,5 +0,0 @@
[002.html]
type: testharness
[WebSockets: dispatching a CloseEvent]
expected: FAIL

View File

@ -1,5 +0,0 @@
[003.html]
type: testharness
[WebSockets: dispatching a CloseEvent]
expected: FAIL

View File

@ -0,0 +1,8 @@
[historical.html]
type: testharness
[createEvent("CloseEvent")]
expected: FAIL
[initCloseEvent]
expected: FAIL

View File

@ -1,5 +0,0 @@
[004.html]
type: testharness
[WebSockets: delete bufferedAmount]
expected: FAIL

View File

@ -1,4 +1,4 @@
[006.html]
[close-connecting.html]
type: testharness
[WebSockets: close() when connecting]
expected: FAIL

View File

@ -1,4 +1,6 @@
[002.html]
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -2,4 +2,4 @@
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH

View File

@ -0,0 +1,5 @@
[004.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH

View File

@ -1,8 +1,6 @@
[005.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -2,3 +2,4 @@
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH

View File

@ -2,4 +2,4 @@
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -2,6 +2,5 @@
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH

View File

@ -0,0 +1,4 @@
[004.html]
type: testharness
expected:
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH

View File

@ -2,4 +2,4 @@
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH

View File

@ -1,6 +1,7 @@
[012.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH

View File

@ -1,7 +1,8 @@
[013.html]
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[onclose]
expected: FAIL

View File

@ -2,6 +2,4 @@
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH

View File

@ -1,4 +1,4 @@
[dynamic-urls.sub.xhtml]
[015.html]
type: testharness
expected:
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -1,8 +1,7 @@
[005.html]
type: testharness
expected:
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH

View File

@ -0,0 +1,5 @@
[message-event.html]
type: testharness
[Properties of the \'message\' event]
expected: FAIL

View File

@ -2,7 +2,6 @@
type: testharness
expected:
if not debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): OK
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): OK
ERROR
[close() and incoming message]
expected: FAIL

View File

@ -1,9 +1,3 @@
[setInterval.html]
type: testharness
expected:
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): OK
ERROR
[close() and setInterval]
expected:
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
expected: ERROR

View File

@ -2,5 +2,5 @@
type: testharness
[close() and setTimeout]
expected:
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL

View File

@ -1,6 +1,8 @@
[postMessage_event_properties.htm]
type: testharness
expected: ERROR
[Test Description: The postMessage() method - Create an event that uses the MessageEvent interface, with the name message, which does not bubble and is not cancelable.]
expected: NOTRUN
[Properties of the \'message\' event]
expected: FAIL

View File

@ -0,0 +1,72 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>File constructor</title>
<link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-file">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
assert_true("File" in window, "window should have a File property.");
}, "File interface object exists");
function test_first_argument(arg1, expectedSize, testName) {
test(function() {
var file = new File(arg1, "dummy");
assert_true(file instanceof File);
assert_equals(file.name, "dummy");
assert_equals(file.size, expectedSize);
assert_equals(file.type, "");
// assert_false(file.isClosed); XXX: File.isClosed doesn't seem to be implemented
assert_not_equals(file.lastModified, "");
}, testName);
}
test_first_argument(["bits"], 4, "DOMString fileBits");
test_first_argument(["𝓽𝓮𝔁𝓽"], 16, "Unicode DOMString fileBits");
test_first_argument([new Blob()], 0, "Empty Blob fileBits");
test_first_argument([new Blob(["bits"])], 4, "Blob fileBits");
test_first_argument([new ArrayBuffer(8)], 8, "ArrayBuffer fileBits");
test_first_argument([new Uint8Array([0x50, 0x41, 0x53, 0x53])], 4, "Typed array fileBits");
test_first_argument(["bits", new Blob(["bits"]), new Blob(), new Uint8Array([0x50, 0x41]),
new Uint16Array([0x5353]), new Uint32Array([0x53534150])], 16, "Various fileBits");
function test_second_argument(arg2, expectedFileName, testName) {
test(function() {
var file = new File(["bits"], arg2);
assert_true(file instanceof File);
assert_equals(file.name, expectedFileName);
}, testName);
}
test_second_argument("dummy", "dummy", "Using fileName");
test_second_argument("dummy/foo", "dummy:foo", "Using special character in fileName");
// testing the third argument
test(function() {
var file = new File(["bits"], "dummy", { type: "text/plain"});
assert_true(file instanceof File);
assert_equals(file.type, "text/plain");
}, "Using type on the File constructor");
test(function() {
var file = new File(["bits"], "dummy", { type: "TEXT/PLAIN"});
assert_true(file instanceof File);
assert_equals(file.type, "text/plain");
}, "Using uppercase characters in type");
test(function() {
var file = new File(["bits"], "dummy", { type: "𝓽𝓮𝔁𝓽/𝔭𝔩𝔞𝔦𝔫"});
assert_true(file instanceof File);
assert_equals(file.type, "");
}, "Using illegal character for type");
test(function() {
var file = new File(["bits"], "dummy", { lastModified: 42 });
assert_true(file instanceof File);
assert_equals(file.lastModified, 42);
}, "Using lastModified");
test(function() {
var file = new File(["bits"], "dummy", { name: "foo" });
assert_true(file instanceof File);
assert_equals(file.name, "dummy");
}, "Misusing name");
</script>

View File

@ -49,70 +49,97 @@
</pre>
<pre id="idl" style="display: none">
interface FileList {
getter File? item(unsigned long index);
readonly attribute unsigned long length;
};
[Constructor,
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window,Worker]
interface Blob {
[Constructor,
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options)]
interface Blob {
readonly attribute unsigned long long size;
readonly attribute DOMString type;
readonly attribute unsigned long long size;
readonly attribute DOMString type;
readonly attribute boolean isClosed;
//slice Blob into byte-ranged chunks
//slice Blob into byte-ranged chunks
Blob slice(optional long long start,
optional long long end,
optional DOMString contentType);
void close();
};
Blob slice([Clamp] optional long long start,
[Clamp] optional long long end,
optional DOMString contentType);
void close();
dictionary BlobPropertyBag {
DOMString type = "";
};
};
[Constructor(Blob fileBits, DOMString fileName)]
interface File : Blob {
readonly attribute DOMString name;
readonly attribute Date lastModifiedDate;
};
dictionary BlobPropertyBag {
DOMString type = "";
};
[Constructor]
interface FileReader: EventTarget {
// async read methods
void readAsArrayBuffer(Blob blob);
void readAsText(Blob blob, optional DOMString label);
void readAsDataURL(Blob blob);
[Constructor(sequence<(Blob or DOMString or ArrayBufferView or ArrayBuffer)> fileBits,
[EnsureUTF16] DOMString fileName, optional FilePropertyBag options), Exposed=Window,Worker]
interface File : Blob {
void abort();
readonly attribute DOMString name;
readonly attribute long long lastModified;
// states
const unsigned short EMPTY = 0;
const unsigned short LOADING = 1;
const unsigned short DONE = 2;
};
readonly attribute unsigned short readyState;
dictionary FilePropertyBag {
// File or Blob data
readonly attribute (DOMString or ArrayBuffer)? result;
DOMString type = "";
long long lastModified;
readonly attribute DOMError? error;
};
// event handler attributes
attribute EventHandler onloadstart;
attribute EventHandler onprogress;
attribute EventHandler onload;
attribute EventHandler onabort;
attribute EventHandler onerror;
attribute EventHandler onloadend;
};
[Exposed=Window,Worker] interface FileList {
getter File? item(unsigned long index);
readonly attribute unsigned long length;
};
partial interface URL {
static DOMString? createObjectURL(Blob blob);
static DOMString? createFor(Blob blob); // static DOMString? createFor()Blob blob);
static void revokeObjectURL(DOMString url);
};
[Constructor, Exposed=Window,Worker]
interface FileReader: EventTarget {
// async read methods
void readAsArrayBuffer(Blob blob);
void readAsText(Blob blob, optional DOMString label);
void readAsDataURL(Blob blob);
void abort();
// states
const unsigned short EMPTY = 0;
const unsigned short LOADING = 1;
const unsigned short DONE = 2;
readonly attribute unsigned short readyState;
// File or Blob data
readonly attribute (DOMString or ArrayBuffer)? result;
readonly attribute DOMError? error;
// event handler attributes
attribute EventHandler onloadstart;
attribute EventHandler onprogress;
attribute EventHandler onload;
attribute EventHandler onabort;
attribute EventHandler onerror;
attribute EventHandler onloadend;
};
[Constructor, Exposed=Worker]
interface FileReaderSync {
// Synchronously return strings
ArrayBuffer readAsArrayBuffer(Blob blob);
DOMString readAsText(Blob blob, optional DOMString label);
DOMString readAsDataURL(Blob blob);
};
partial interface URL {
static DOMString createObjectURL(Blob blob);
static DOMString createFor(Blob blob);
static void revokeObjectURL(DOMString url);
};
</pre>
<script>

View File

@ -37,70 +37,98 @@
</pre>
<pre id="idl" style="display: none">
interface FileList {
getter File? item(unsigned long index);
readonly attribute unsigned long length;
};
[Constructor,
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window,Worker]
interface Blob {
[Constructor,
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options)]
interface Blob {
readonly attribute unsigned long long size;
readonly attribute DOMString type;
readonly attribute unsigned long long size;
readonly attribute DOMString type;
readonly attribute boolean isClosed;
//slice Blob into byte-ranged chunks
//slice Blob into byte-ranged chunks
Blob slice(optional long long start,
optional long long end,
optional DOMString contentType);
void close();
};
Blob slice([Clamp] optional long long start,
[Clamp] optional long long end,
optional DOMString contentType);
void close();
dictionary BlobPropertyBag {
DOMString type = "";
};
};
[Constructor(Blob fileBits, DOMString fileName)]
interface File : Blob {
readonly attribute DOMString name;
readonly attribute Date lastModifiedDate;
};
dictionary BlobPropertyBag {
DOMString type = "";
};
[Constructor]
interface FileReader: EventTarget {
// async read methods
void readAsArrayBuffer(Blob blob);
void readAsText(Blob blob, optional DOMString label);
void readAsDataURL(Blob blob);
[Constructor(sequence<(Blob or DOMString or ArrayBufferView or ArrayBuffer)> fileBits,
[EnsureUTF16] DOMString fileName, optional FilePropertyBag options), Exposed=Window,Worker]
interface File : Blob {
void abort();
readonly attribute DOMString name;
readonly attribute long long lastModified;
// states
const unsigned short EMPTY = 0;
const unsigned short LOADING = 1;
const unsigned short DONE = 2;
};
readonly attribute unsigned short readyState;
dictionary FilePropertyBag {
// File or Blob data
readonly attribute (DOMString or ArrayBuffer)? result;
DOMString type = "";
long long lastModified;
readonly attribute DOMError? error;
};
// event handler attributes
attribute EventHandler onloadstart;
attribute EventHandler onprogress;
attribute EventHandler onload;
attribute EventHandler onabort;
attribute EventHandler onerror;
attribute EventHandler onloadend;
};
[Exposed=Window,Worker] interface FileList {
getter File? item(unsigned long index);
readonly attribute unsigned long length;
};
[Constructor, Exposed=Window,Worker]
interface FileReader: EventTarget {
// async read methods
void readAsArrayBuffer(Blob blob);
void readAsText(Blob blob, optional DOMString label);
void readAsDataURL(Blob blob);
void abort();
// states
const unsigned short EMPTY = 0;
const unsigned short LOADING = 1;
const unsigned short DONE = 2;
readonly attribute unsigned short readyState;
// File or Blob data
readonly attribute (DOMString or ArrayBuffer)? result;
readonly attribute DOMError? error;
// event handler attributes
attribute EventHandler onloadstart;
attribute EventHandler onprogress;
attribute EventHandler onload;
attribute EventHandler onabort;
attribute EventHandler onerror;
attribute EventHandler onloadend;
};
[Constructor, Exposed=Worker]
interface FileReaderSync {
// Synchronously return strings
ArrayBuffer readAsArrayBuffer(Blob blob);
DOMString readAsText(Blob blob, optional DOMString label);
DOMString readAsDataURL(Blob blob);
};
partial interface URL {
static DOMString createObjectURL(Blob blob);
static DOMString createFor(Blob blob);
static void revokeObjectURL(DOMString url);
};
partial interface URL {
static DOMString? createObjectURL(Blob blob);
static DOMString? createFor(Blob blob); // static DOMString? createFor()Blob blob);
static void revokeObjectURL(DOMString url);
};
</pre>
<script>
@ -113,6 +141,7 @@
idl_array.add_objects({
Blob: ['new Blob(["TEST"])'],
File: ['new File(["myFileBits"], "myFileName")'],
FileReader: ['new FileReader()']
});
});

View File

@ -1,52 +0,0 @@
<!doctype html>
<meta charset=utf-8>
<title>XMLHttpRequest: basic data uri</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#data:-urls-and-http" data-tested-assertations="following::ul/li[2] following::ul/li[3] following::ul/li[4] following::ul/li[5]" />
<link rel="help" href="http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-send()-method" data-tested-assertations="following::ul/li[10]/dl/dt[2]" />
<div id="log"></div>
<script>
function do_test(name, method, uri, func) {
var test = async_test(name);
test.step(function() {
var client = new XMLHttpRequest();
client.onreadystatechange = test.step_func(function () {
if (client.readyState !== 4) return;
func(client);
test.done();
});
client.open(method, uri);
client.send(null);
});
}
do_test("GET responseText", 'GET', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.responseText, "Hello, World!")
});
do_test("GET responseText base64", 'GET', "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D", function (client) {
assert_equals(client.responseText, "Hello, World!")
});
do_test("GET status", 'GET', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.status, 200);
});
do_test("GET statusText", 'GET', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.statusText, "OK");
});
do_test("GET Content-Type", 'GET', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.getResponseHeader('Content-Type'), 'text/plain');
});
do_test("GET Content-Type with param", 'GET', "data:text/html;charset=utf-8,<p>Hello, World!", function (client) {
assert_equals(client.getResponseHeader('Content-Type'), 'text/html;charset=utf-8');
});
do_test("GET getAllResponseHeaders", 'GET', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.getAllResponseHeaders(), 'content-type: text/plain');
});
do_test("POST responseText", 'POST', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.responseText, null);
});
do_test("POST status", 'POST', "data:text/plain,Hello, World!", function (client) {
assert_equals(client.status, 0);
});
</script>

View File

@ -8,22 +8,32 @@
<div id="log"></div>
<script>
function do_test(method, uri, charset, namePostfix) {
function do_test(method, uri, charset, testNamePostfix) {
if (typeof charset === 'undefined' || charset === null) charset = 'text/plain';
var test = async_test("XHR method " + method + " with charset " + charset+(namePostfix||''));
var test = async_test("XHR method " + method + " with charset " + charset+(testNamePostfix||''));
test.step(function() {
var client = new XMLHttpRequest();
client.onreadystatechange = test.step_func(function () {
if (client.readyState !== 4) return;
if (client.readyState !== 4) {
return;
}
// Note: fetching a data URL with a non-GET method returns a network
// error per <http://fetch.spec.whatwg.org/#basic-fetch>.
if (method.toUpperCase() !== 'GET') {
assert_equals(client.status, 0);
assert_equals(client.responseText, null);
assert_equals(client.responseText, '');
assert_equals(client.statusText, 'OK');
test.done();
return;
}
assert_equals(client.responseText, "Hello, World!");
assert_equals(client.status, 200);
assert_equals(client.getResponseHeader('Content-Type'), charset);
var allHeaders = client.getAllResponseHeaders();
assert_regexp_match(allHeaders, /content\-type\:/i, 'getAllResponseHeaders() includes Content-Type');
assert_false(/content\-length\:/i.test(allHeaders), 'getAllResponseHeaders() must not include Content-Length');
test.done();
});
client.open(method, uri);
@ -33,6 +43,7 @@
do_test('GET', "data:text/plain,Hello, World!");
do_test('GET', "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==", undefined, " (base64)");
do_test('GET', "data:text/html,Hello, World!", 'text/html');
do_test('GET', "data:text/html;charset=UTF-8,Hello, World!", 'text/html;charset=UTF-8');
do_test('GET', "data:image/png,Hello, World!", 'image/png');
do_test('POST', "data:text/plain,Hello, World!");
do_test('PUT', "data:text/plain,Hello, World!");

View File

@ -110,6 +110,6 @@
if (log) {
log.parentNode.insertBefore(documentingPrefixUsage, log);
} else {
body.appendChild(documentingPrefixUsage);
document.body.appendChild(documentingPrefixUsage);
}
})();
})();

View File

@ -21,7 +21,6 @@ var nukedInterfaces = [
"Entity",
"EntityReference",
"EventException", // DOM Events
"NamedNodeMap",
"NameList",
"Notation",
"TypeInfo",
@ -39,8 +38,6 @@ function isNukedFromDocument(name) {
}
var documentNuked = [
"createCDATASection",
"createAttribute",
"createAttributeNS",
"createEntityReference",
"inputEncoding",
"xmlEncoding",
@ -69,10 +66,6 @@ function isNukedFromElement(name) {
}, "Historical DOM features must be removed: " + name)
}
var elementNuked = [
"getAttributeNode",
"getAttributeNodeNS",
"setAttributeNode",
"removeAttributeNode",
"schemaTypeInfo",
"setIdAttribute",
"setIdAttributeNS",

View File

@ -20,7 +20,7 @@ exception DOMException {
const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
const unsigned short NOT_FOUND_ERR = 8;
const unsigned short NOT_SUPPORTED_ERR = 9;
const unsigned short INUSE_ATTRIBUTE_ERR = 10; // historical
const unsigned short INUSE_ATTRIBUTE_ERR = 10;
const unsigned short INVALID_STATE_ERR = 11;
const unsigned short SYNTAX_ERR = 12;
const unsigned short INVALID_MODIFICATION_ERR = 13;
@ -67,7 +67,7 @@ interface Event {
readonly attribute boolean defaultPrevented;
[Unforgeable] readonly attribute boolean isTrusted;
readonly attribute /* DOMTimeStamp */ unsigned long long timeStamp;
readonly attribute DOMTimeStamp timeStamp;
void initEvent(DOMString type, boolean bubbles, boolean cancelable);
};
@ -276,6 +276,9 @@ interface Document : Node {
Node importNode(Node node, optional boolean deep = false);
Node adoptNode(Node node);
Attr createAttribute(DOMString localName);
Attr createAttributeNS(DOMString namespace, DOMString name);
[NewObject] Event createEvent(DOMString interface);
[NewObject] Range createRange();
@ -315,7 +318,8 @@ interface Element : Node {
attribute DOMString className;
[SameObject] readonly attribute DOMTokenList classList;
[SameObject] readonly attribute Attr[] attributes;
boolean hasAttributes();
[SameObject] readonly attribute NamedNodeMap attributes;
DOMString? getAttribute(DOMString name);
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
void setAttribute(DOMString name, DOMString value);
@ -325,6 +329,12 @@ interface Element : Node {
boolean hasAttribute(DOMString name);
boolean hasAttributeNS(DOMString? namespace, DOMString localName);
Attr? getAttributeNode(DOMString name);
Attr? getAttributeNodeNS(DOMString namespace, DOMString localName);
Attr? setAttributeNode(Attr attr);
Attr? setAttributeNodeNS(Attr attr);
Attr removeAttributeNode(Attr attr);
Element? closest(DOMString selectors);
boolean matches(DOMString selectors);
@ -333,13 +343,26 @@ interface Element : Node {
HTMLCollection getElementsByClassName(DOMString classNames);
};
interface Attr {
readonly attribute DOMString localName;
attribute DOMString value;
interface NamedNodeMap {
readonly attribute unsigned long length;
getter Attr? item(unsigned long index);
getter Attr? getNamedItem(DOMString name);
Attr? getNamedItemNS(DOMString? namespace, DOMString localName);
Attr? setNamedItem(Attr attr);
Attr? setNamedItemNS(Attr attr);
Attr removeNamedItem(DOMString name);
Attr removeNamedItemNS(DOMString? namespace, DOMString localName);
};
readonly attribute DOMString name;
interface Attr {
readonly attribute DOMString? namespaceURI;
readonly attribute DOMString? prefix;
readonly attribute DOMString localName;
readonly attribute DOMString name;
attribute DOMString value;
attribute DOMString textContent; // alias of .value
readonly attribute Element? ownerElement;
readonly attribute boolean specified; // useless; always returns true
};

View File

@ -23,6 +23,12 @@ test(function() {
"f<oo"
],
invalidNSQNameCombinations = [
[undefined, ":foo"],
[undefined, "foo:"],
[undefined, "foo:foo"],
[null, ":foo"],
[null, "foo:"],
[null, "foo:foo"],
["", ":foo"],
["", "foo:"],
["", "foo:foo"],
@ -54,9 +60,9 @@ test(function() {
assert_equals(element.localName, "span");
assert_equals(element.tagName, "SPAN");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
assert_true(element instanceof HTMLSpanElement, "Should be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
assert_true(element instanceof HTMLSpanElement, "Should be an HTMLSpanElement");
}, "Lower-case HTML element without a prefix");
test(function() {
@ -67,9 +73,9 @@ test(function() {
assert_equals(element.localName, "span");
assert_equals(element.tagName, "HTML:SPAN");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
assert_true(element instanceof HTMLSpanElement, "Should be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
assert_true(element instanceof HTMLSpanElement, "Should be an HTMLSpanElement");
}, "Lower-case HTML element with a prefix");
test(function() {
@ -79,9 +85,9 @@ test(function() {
assert_equals(element.localName, "span");
assert_equals(element.tagName, "span");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "Lower-case non-HTML element without a prefix");
test(function() {
@ -91,9 +97,9 @@ test(function() {
assert_equals(element.localName, "span");
assert_equals(element.tagName, "html:span");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "Lower-case non-HTML element with a prefix");
test(function() {
@ -104,10 +110,10 @@ test(function() {
assert_equals(element.localName, "SPAN");
assert_equals(element.tagName, "SPAN");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
assert_true(element instanceof HTMLUnknownElement, "Should be a HTMLUnknownElement");
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
assert_true(element instanceof HTMLUnknownElement, "Should be an HTMLUnknownElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "Upper-case HTML element without a prefix");
test(function() {
@ -118,9 +124,9 @@ test(function() {
assert_equals(element.localName, "SPAN");
assert_equals(element.tagName, "HTML:SPAN");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "Upper-case HTML element with a prefix");
test(function() {
@ -130,9 +136,9 @@ test(function() {
assert_equals(element.localName, "SPAN");
assert_equals(element.tagName, "SPAN");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "Upper-case non-HTML element without a prefix");
test(function() {
@ -142,8 +148,44 @@ test(function() {
assert_equals(element.localName, "SPAN");
assert_equals(element.tagName, "html:SPAN");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be a Element");
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "Upper-case non-HTML element with a prefix");
test(function() {
var element = document.createElementNS(null, "span");
assert_equals(element.namespaceURI, null);
assert_equals(element.prefix, null);
assert_equals(element.localName, "span");
assert_equals(element.tagName, "span");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "null namespace");
test(function() {
var element = document.createElementNS(undefined, "span");
assert_equals(element.namespaceURI, null);
assert_equals(element.prefix, null);
assert_equals(element.localName, "span");
assert_equals(element.tagName, "span");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "undefined namespace");
test(function() {
var element = document.createElementNS("", "span");
assert_equals(element.namespaceURI, null);
assert_equals(element.prefix, null);
assert_equals(element.localName, "span");
assert_equals(element.tagName, "span");
assert_true(element instanceof Node, "Should be a Node");
assert_true(element instanceof Element, "Should be an Element");
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
}, "empty string namespace");
</script>

View File

@ -0,0 +1,64 @@
<!doctype html>
<meta charset=utf-8>
<title>Node.nodeValue</title>
<link rel=help href="http://dom.spec.whatwg.org/#dom-node-nodevalue">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
test(function() {
var the_text = document.createTextNode("A span!");
assert_equals(the_text.nodeValue, "A span!");
assert_equals(the_text.data, "A span!");
the_text.nodeValue = "test again";
assert_equals(the_text.nodeValue, "test again");
assert_equals(the_text.data, "test again");
the_text.nodeValue = null;
assert_equals(the_text.nodeValue, "");
assert_equals(the_text.data, "");
}, "Text.nodeValue");
test(function() {
var the_comment = document.createComment("A comment!");
assert_equals(the_comment.nodeValue, "A comment!");
assert_equals(the_comment.data, "A comment!");
the_comment.nodeValue = "test again";
assert_equals(the_comment.nodeValue, "test again");
assert_equals(the_comment.data, "test again");
the_comment.nodeValue = null;
assert_equals(the_comment.nodeValue, "");
assert_equals(the_comment.data, "");
}, "Comment.nodeValue");
test(function() {
var the_pi = document.createProcessingInstruction("pi", "A PI!");
assert_equals(the_pi.nodeValue, "A PI!");
assert_equals(the_pi.data, "A PI!");
the_pi.nodeValue = "test again";
assert_equals(the_pi.nodeValue, "test again");
assert_equals(the_pi.data, "test again");
the_pi.nodeValue = null;
assert_equals(the_pi.nodeValue, "");
assert_equals(the_pi.data, "");
}, "ProcessingInstruction.nodeValue");
test(function() {
var the_link = document.createElement("a");
assert_equals(the_link.nodeValue, null);
the_link.nodeValue = "foo";
assert_equals(the_link.nodeValue, null);
}, "Element.nodeValue");
test(function() {
assert_equals(document.nodeValue, null);
document.nodeValue = "foo";
assert_equals(document.nodeValue, null);
}, "Document.nodeValue");
test(function() {
var the_frag = document.createDocumentFragment();
assert_equals(the_frag.nodeValue, null);
the_frag.nodeValue = "foo";
assert_equals(the_frag.nodeValue, null);
}, "DocumentFragment.nodeValue");
</script>

View File

@ -0,0 +1,336 @@
<!doctype html>
<meta charset=utf-8>
<meta name="timeout" content="long">
<title>Cross-origin behavior of Window and Location</title>
<link rel="author" title="Bobby Holley (:bholley)" href="bobbyholley@gmail.com">
<link rel="help" href="http://www.whatwg.org/specs/web-apps/current-work/#security-window">
<link rel="help" href="http://www.whatwg.org/specs/web-apps/current-work/#security-location">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe id="B"></iframe>
<iframe id="C"></iframe>
<script>
/*
* Setup boilerplate. This gives us a same-origin window "B" and a cross-origin
* window "C".
*/
setup({explicit_done: true});
path = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/frame.html';
var B = document.getElementById('B').contentWindow;
var C = document.getElementById('C').contentWindow;
B.frameElement.uriToLoad = path;
C.frameElement.uriToLoad = 'http://www1.web-platform.test:' + location.port + path;
function reloadSubframes(cb) {
var iframes = document.getElementsByTagName('iframe');
iframes.forEach = Array.prototype.forEach;
var count = 0;
function frameLoaded() {
this.onload = null;
if (++count == iframes.length)
cb();
}
iframes.forEach(function(ifr) { ifr.onload = frameLoaded; ifr.setAttribute('src', ifr.uriToLoad); });
}
function isObject(x) { return Object(x) === x; }
/*
* Note: we eschew assert_equals in a lot of these tests, since the harness ends
* up throwing when it tries to format a message involving a cross-origin object.
*/
var testList = [];
function addTest(fun, desc) { testList.push([fun, desc]); }
/*
* Basic sanity testing.
*/
addTest(function() {
assert_equals(location.host, 'web-platform.test:8000', 'Need to run the top-level test from web-platform.test:8000');
assert_equals(B.parent, window, "window.parent works same-origin");
assert_equals(C.parent, window, "window.parent works cross-origin");
assert_equals(B.location.pathname, path, "location.href works same-origin");
assert_throws(null, function() { C.location.pathname; }, "location.pathname throws cross-origin");
assert_equals(B.frames, 'override', "Overrides visible in the same-origin case");
assert_equals(C.frames, C, "Overrides invisible in the cross-origin case");
}, "Basic sanity-checking");
/*
* Whitelist behavior.
*
* Also tests for [[GetOwnProperty]] and [[HasOwnProperty]] behavior.
*/
var whitelistedWindowProps = ['location', 'postMessage', 'window', 'frames', 'self', 'top', 'parent',
'opener', 'closed', 'close', 'blur', 'focus', 'length'];
addTest(function() {
for (var prop in window) {
if (whitelistedWindowProps.indexOf(prop) != -1) {
C[prop]; // Shouldn't throw.
Object.getOwnPropertyDescriptor(C, prop); // Shouldn't throw.
assert_true(Object.prototype.hasOwnProperty.call(C, prop), "hasOwnProperty for " + prop);
} else {
assert_throws(null, function() { C[prop]; }, "Should throw when accessing " + prop + " on Window");
assert_throws(null, function() { Object.getOwnPropertyDescriptor(C, prop); },
"Should throw when accessing property descriptor for " + prop + " on Window");
assert_throws(null, function() { Object.prototype.hasOwnProperty.call(C, prop); },
"Should throw when invoking hasOwnProperty for " + prop + " on Window");
}
if (prop != 'location')
assert_throws(null, function() { C[prop] = undefined; }, "Should throw when writing to " + prop + " on Window");
}
for (var prop in location) {
if (prop == 'replace') {
C.location[prop]; // Shouldn't throw.
Object.getOwnPropertyDescriptor(C.location, prop); // Shouldn't throw.
assert_true(Object.prototype.hasOwnProperty.call(C.location, prop), "hasOwnProperty for " + prop);
}
else {
assert_throws(null, function() { C[prop]; }, "Should throw when accessing " + prop + " on Location");
assert_throws(null, function() { Object.getOwnPropertyDescriptor(C, prop); },
"Should throw when accessing property descriptor for " + prop + " on Location");
assert_throws(null, function() { Object.prototype.hasOwnProperty.call(C, prop); },
"Should throw when invoking hasOwnProperty for " + prop + " on Location");
}
if (prop != 'href')
assert_throws(null, function() { C[prop] = undefined; }, "Should throw when writing to " + prop + " on Location");
}
}, "Only whitelisted properties are accessible cross-origin");
/*
* ES Internal Methods.
*/
/*
* [[GetPrototypeOf]]
*/
addTest(function() {
assert_true(Object.getPrototypeOf(C) === null, "cross-origin Window proto is null");
assert_true(Object.getPrototypeOf(C.location) === null, "cross-origin Location proto is null (__proto__)");
var protoGetter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').get;
assert_true(protoGetter.call(C) === null, "cross-origin Window proto is null");
assert_true(protoGetter.call(C.location) === null, "cross-origin Location proto is null (__proto__)");
assert_throws(null, function() { C.__proto__; }, "__proto__ property not available cross-origin");
assert_throws(null, function() { C.location.__proto__; }, "__proto__ property not available cross-origin");
}, "[[GetPrototypeOf]] should return null");
/*
* [[SetPrototypeOf]]
*/
addTest(function() {
assert_throws(null, function() { C.__proto__ = new Object(); }, "proto set on cross-origin Window");
assert_throws(null, function() { C.location.__proto__ = new Object(); }, "proto set on cross-origin Location");
var setters = [Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set];
if (Object.setPrototypeOf)
setters.push(function(p) { Object.setPrototypeOf(this, p); });
setters.forEach(function(protoSetter) {
assert_throws(null, function() { protoSetter.call(C, new Object()); }, "proto setter |call| on cross-origin Window");
assert_throws(null, function() { protoSetter.call(C.location, new Object()); }, "proto setter |call| on cross-origin Location");
});
}, "[[SetPrototypeOf]] should throw");
/*
* [[IsExtensible]]
*/
addTest(function() {
assert_true(Object.isExtensible(C), "cross-origin Window should be extensible");
assert_true(Object.isExtensible(C.location), "cross-origin Location should be extensible");
}, "[[IsExtensible]] should return true for cross-origin objects");
/*
* [[PreventExtensions]]
*/
addTest(function() {
assert_throws(null, function() { Object.preventExtensions(C) },
"preventExtensions on cross-origin Window should throw");
assert_throws(null, function() { Object.preventExtensions(C.location) },
"preventExtensions on cross-origin Location should throw");
}, "[[PreventExtensions]] should throw for cross-origin objects");
/*
* [[GetOwnProperty]]
*/
addTest(function() {
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'close')), "C.close is |own|");
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'top')), "C.top is |own|");
assert_true(isObject(Object.getOwnPropertyDescriptor(C.location, 'href')), "C.location.href is |own|");
assert_true(isObject(Object.getOwnPropertyDescriptor(C.location, 'replace')), "C.location.replace is |own|");
}, "[[GetOwnProperty]] - Properties on cross-origin objects should be reported |own|");
function checkPropertyDescriptor(desc, propName, expectWritable) {
assert_true(isObject(desc), "property descriptor for " + propName + " should exist");
assert_equals(desc.enumerable, false, "property descriptor for " + propName + " should be non-enumerable");
assert_equals(desc.configurable, true, "property descriptor for " + propName + " should be configurable");
if ('value' in desc)
assert_equals(desc.writable, expectWritable, "property descriptor for " + propName + " should have writable: " + expectWritable);
else
assert_equals(typeof desc.set != 'undefined', expectWritable,
"property descriptor for " + propName + " should " + (expectWritable ? "" : "not ") + "have setter");
}
addTest(function() {
whitelistedWindowProps.forEach(function(prop) {
var desc = Object.getOwnPropertyDescriptor(C, prop);
checkPropertyDescriptor(desc, prop, prop == 'location');
});
checkPropertyDescriptor(Object.getOwnPropertyDescriptor(C.location, 'replace'), 'replace', false);
checkPropertyDescriptor(Object.getOwnPropertyDescriptor(C.location, 'href'), 'href', true);
assert_equals(typeof Object.getOwnPropertyDescriptor(C.location, 'href').get, 'undefined', "Cross-origin location should have no href getter");
}, "[[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly");
/*
* [[Delete]]
*/
addTest(function() {
assert_throws(null, function() { delete C.location; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.parent; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.length; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.document; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.foopy; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.location.href; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.location.replace; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.location.port; }, "Can't delete cross-origin property");
assert_throws(null, function() { delete C.location.foopy; }, "Can't delete cross-origin property");
}, "[[Delete]] Should throw on cross-origin objects");
/*
* [[DefineOwnProperty]]
*/
function checkDefine(obj, prop) {
var valueDesc = { configurable: true, enumerable: false, writable: false, value: 2 };
var accessorDesc = { configurable: true, enumerable: false, get: function() {} };
assert_throws(null, function() { Object.defineProperty(obj, prop, valueDesc); }, "Can't define cross-origin value property " + prop);
assert_throws(null, function() { Object.defineProperty(obj, prop, accessorDesc); }, "Can't define cross-origin accessor property " + prop);
}
addTest(function() {
checkDefine(C, 'length');
checkDefine(C, 'parent');
checkDefine(C, 'location');
checkDefine(C, 'document');
checkDefine(C, 'foopy');
checkDefine(C.location, 'href');
checkDefine(C.location, 'replace');
checkDefine(C.location, 'port');
checkDefine(C.location, 'foopy');
}, "[[DefineOwnProperty]] Should throw for cross-origin objects");
/*
* [[Enumerate]]
*/
addTest(function() {
for (var prop in C)
assert_unreached("Shouldn't have been able to enumerate " + prop + " on cross-origin Window");
for (var prop in C.location)
assert_unreached("Shouldn't have been able to enumerate " + prop + " on cross-origin Location");
}, "[[Enumerate]] should return an empty iterator");
/*
* [[OwnPropertyKeys]]
*/
addTest(function() {
assert_array_equals(whitelistedWindowProps.sort(), Object.getOwnPropertyNames(C).sort(),
"Object.getOwnPropertyNames() gives the right answer for cross-origin Window");
assert_array_equals(Object.getOwnPropertyNames(C.location).sort(), ['href', 'replace'],
"Object.getOwnPropertyNames() gives the right answer for cross-origin Location");
}, "[[OwnPropertyKeys]] should return all properties from cross-origin objects");
addTest(function() {
assert_true(B.eval('parent.C') === C, "A and B observe the same identity for C's Window");
assert_true(B.eval('parent.C.location') === C.location, "A and B observe the same identity for C's Location");
}, "A and B jointly observe the same identity for cross-origin Window and Location");
function checkFunction(f, proto) {
var name = f.name || '<missing name>';
assert_equals(typeof f, 'function', name + " is a function");
assert_equals(Object.getPrototypeOf(f), proto, f.name + " has the right prototype");
}
addTest(function() {
checkFunction(C.close, Function.prototype);
checkFunction(C.location.replace, Function.prototype);
}, "Cross-origin functions get local Function.prototype");
addTest(function() {
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'parent')),
"Need to be able to use Object.getOwnPropertyDescriptor do this test");
checkFunction(Object.getOwnPropertyDescriptor(C, 'parent').get, Function.prototype);
checkFunction(Object.getOwnPropertyDescriptor(C.location, 'href').set, Function.prototype);
}, "Cross-origin Window accessors get local Function.prototype");
addTest(function() {
checkFunction(close, Function.prototype);
assert_true(close != B.close, 'same-origin Window functions get their own object');
assert_true(close != C.close, 'cross-origin Window functions get their own object');
var close_B = B.eval('parent.C.close');
assert_true(close != close_B, 'close_B is unique when viewed by the parent');
assert_true(close_B != C.close, 'different Window functions per-incumbent script settings object');
checkFunction(close_B, B.Function.prototype);
checkFunction(location.replace, Function.prototype);
assert_true(location.replace != C.location.replace, "cross-origin Location functions get their own object");
var replace_B = B.eval('parent.C.location.replace');
assert_true(replace_B != C.location.replace, 'different Location functions per-incumbent script settings object');
checkFunction(replace_B, B.Function.prototype);
}, "Same-origin observers get different functions for cross-origin objects");
addTest(function() {
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'parent')),
"Need to be able to use Object.getOwnPropertyDescriptor do this test");
var get_self_parent = Object.getOwnPropertyDescriptor(window, 'parent').get;
var get_parent_A = Object.getOwnPropertyDescriptor(C, 'parent').get;
var get_parent_B = B.eval('Object.getOwnPropertyDescriptor(parent.C, "parent").get');
assert_true(get_self_parent != get_parent_A, 'different Window accessors per-incumbent script settings object');
assert_true(get_parent_A != get_parent_B, 'different Window accessors per-incumbent script settings object');
checkFunction(get_self_parent, Function.prototype);
checkFunction(get_parent_A, Function.prototype);
checkFunction(get_parent_B, B.Function.prototype);
}, "Same-origin obsevers get different accessors for cross-origin Window");
addTest(function() {
var set_self_href = Object.getOwnPropertyDescriptor(window.location, 'href').set;
var set_href_A = Object.getOwnPropertyDescriptor(C.location, 'href').set;
var set_href_B = B.eval('Object.getOwnPropertyDescriptor(parent.C.location, "href").set');
assert_true(set_self_href != set_href_A, 'different Location accessors per-incumbent script settings object');
assert_true(set_href_A != set_href_B, 'different Location accessors per-incumbent script settings object');
checkFunction(set_self_href, Function.prototype);
checkFunction(set_href_A, Function.prototype);
checkFunction(set_href_B, B.Function.prototype);
}, "Same-origin observers get different accessors for cross-origin Location");
function doDocumentDomainTest(cb) {
window.addEventListener('message', function onmessage(evt) {
window.removeEventListener('message', onmessage);
test(function() {
var results = evt.data;
assert_true(results.length > 0, 'Need results');
results.forEach(function(r) { assert_true(r.pass, r.message); });
}, "Cross-origin object identity preserved across document.domain");
win.close();
cb();
});
var win = window.open('win-documentdomain.html');
}
// We do a fresh load of the subframes for each test to minimize side-effects.
// It would be nice to reload ourselves as well, but we can't do that without
// disrupting the test harness.
function runNextTest() {
var entry = testList.shift();
test(entry[0], entry[1]);
if (testList.length != 0)
reloadSubframes(runNextTest);
else
doDocumentDomainTest(done); // Asynchronous.
}
reloadSubframes(runNextTest);
</script>

View File

@ -0,0 +1,35 @@
<!doctype html>
<html>
<head>
<script>
// Override the |frames| property to test that such overrides are
// properly ignored cross-origin.
window.frames = "override";
// If we get a postMessage, we grab references to everything and set
// document.domain to trim off our topmost subdomain.
window.onmessage = function(evt) {
window.windowReferences = [];
window.locationReferences = [];
for (var i = 0; i < parent.length; ++i) {
windowReferences.push(parent[i]);
locationReferences.push(parent[i].location);
}
document.domain = document.domain.substring(document.domain.indexOf('.') + 1);
evt.source.postMessage('', '*');
}
function checkWindowReferences() {
for (var i = 0; i < parent.length; ++i) {
if (windowReferences[i] != parent[i])
throw new Error("Window references don't match for " + i + " after document.domain");
if (locationReferences[i] != parent[i].location)
throw new Error("Location references don't match for " + i + " after document.domain");
}
return true;
}
</script>
</head>
<body>
</body>
</html>

View File

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html>
<head>
<script>
function loadFrames() {
window.A = document.getElementById('A').contentWindow;
window.B = document.getElementById('B').contentWindow;
window.C = document.getElementById('C').contentWindow;
window.D = document.getElementById('D').contentWindow;
var path = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/frame.html';
A.location = 'frame.html';
B.location = frameURI = 'http://www2.web-platform.test:' + location.port + path;
C.location = frameURI = 'http://www2.web-platform.test:' + location.port + path;
D.location = frameURI = 'http://www1.web-platform.test:' + location.port + path;
var loadCount = 0;
function frameLoaded() {
if (++loadCount == 4)
go();
}
Array.forEach(document.getElementsByTagName('iframe'), function(ifr) { ifr.onload = frameLoaded; });
}
var results = [];
function assert(cond, msg) {
results.push({pass: !!cond, message: msg});
}
function go() {
window.onmessage = function() {
assert(B.checkWindowReferences(), "B's Window references are still self-consistent after document.domain");
for (var i = 0; i < window.length; ++i) {
assert(window[i] === B.windowReferences[i],
"Window reference " + i + " consistent between globals after document.domain");
assert(window[i].location === B.locationReferences[i],
"Location reference " + i + " consistent between globals after document.domain");
}
opener.postMessage(results, '*');
};
A.document.domain = A.document.domain;
document.domain = document.domain;
B.postMessage('', '*');
}
</script>
</head>
<body onload="loadFrames()">
<iframe id="A"></iframe>
<iframe id="B"></iframe>
<iframe id="C"></iframe>
<iframe id="D"></iframe>
</body>
</html>

View File

@ -23,21 +23,14 @@
test(function() {
assert_regexp_match(lastMod, pattern,
"Format should match the pattern \"NN/NN/NNNN NN:NN:NN\".");
assert_equals(lastMod.substring(0,2), month, "MM part should match month.");
assert_equals(lastMod.substring(3,5), day, "DD part should match day.");
assert_equals(lastMod.substring(6,10), year, "YYYY part should match year.");
assert_equals(lastMod.substring(11,13), hours, "hh part should match hours.");
assert_equals(lastMod.substring(14,16), minutes, "mm part should match minutes.");
assert_approx_equals(parseInt(lastMod.substring(17,19), 10),
parseInt(seconds), 1, "ss part should match seconds.");
assert_approx_equals(Date.parse(document.lastModified), currentDate, 10);
}, "Date returned by lastModified is in the form \"MM/DD/YYYY hh:mm:ss\".");
var t = async_test('Date returned by lastModified is current.');
var old = Date.parse(document.lastModified);
setTimeout(function() {
t.step(function() {
assert_equals((new Date(Date.parse(document.lastModified))).toString(),
(new Date(old + 1000)).toString());
assert_approx_equals(Date.parse(document.lastModified), old + 2000, 300);
t.done();
});
}, 1000);
}, 2000);
</script>

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@ window.onload = function() {
return;
}
if( !location.hostname.match(/[^\.]\.[^\.]+\.[^\.]/) ) {
document.getElementsByTagName('p')[0].innerHTML = 'This test should be loaded from a subdomain that allows document.domain to be set to a parent domain (try using a server name that contains at least two or three dots, for example www.w3c-test.org).';
document.getElementsByTagName('p')[0].innerHTML = 'This test should be loaded from a subdomain that allows document.domain to be set to a parent domain (try using a server name that contains at least two or three dots, for example www.example.org).';
return;
}
var realhost = location.hostname, newdomain = location.hostname.replace(/^[^.]+\./,'');

View File

@ -1,11 +0,0 @@
var httpHostMain = 'w3c-test.org'; //name of the server that this page must accessed over port 80
var httpHostAlias = 'www.w3c-test.org'; //another hostname (must be a subdomain so document.domain can be set to a higher domain) that accesses the same content, over HTTP
var httpsHostAlias = httpHostAlias; //another hostname (can be same as httpHostAlias) that accesses the same content, over HTTPS port
var httpPortAlias = 81; //another port that accesses the same content on the current hostname, over HTTP
var httpsPortAlias = 8443; //another port that accesses the same content on the httpsHostAlias, over HTTPS
function crossOriginUrl(subdomain, relative_url) {
var a = document.createElement("a");
a.href = relative_url;
return a.href.replace(location.href.replace("://", "://" + subdomain + "."));
}

View File

@ -0,0 +1,13 @@
var httpHostMain = '{{domains[]}}'; //name of the server that this page must accessed over port 80
var httpHostAlias = '{{domains[www]}}'; //another hostname (must be a subdomain so document.domain can be set to a higher domain) that accesses the same content, over HTTP
var httpsHostAlias = httpHostAlias; //another hostname (can be same as httpHostAlias) that accesses the same content, over HTTPS port
var httpPortAlias = {{ports[http][0]}}; //another port that accesses the same content on the current hostname, over HTTP
//XXX HTTPS
//var httpsPortAlias = ports[https][0]; //another port that accesses the same content on the httpsHostAlias, over HTTPS
var httpsPortAlias = 8443;
function crossOriginUrl(subdomain, relative_url) {
var a = document.createElement("a");
a.href = relative_url;
return a.href.replace(location.href.replace("://", "://" + subdomain + "."));
}

View File

@ -7,7 +7,7 @@ div { float: left; height: 100px; width: 100px; margin-right: 10px; background:
iframe { height: 100px; width: 100px; border: none; }
.note { float: right; color: silver; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
function addNote(el,str) {
var par = document.createElement(el);

View File

@ -6,7 +6,7 @@
html, body { margin: 0; padding: 0; }
div { height: 100px; width: 100px; background: orange; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {

View File

@ -6,7 +6,7 @@
html, body { margin: 0; padding: 0; }
div { height: 100px; width: 100px; background: orange; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {

View File

@ -7,7 +7,7 @@ div { float: left; height: 100px; width: 100px; margin-right: 10px; background:
iframe { height: 100px; width: 100px; border: none; }
.note { float: right; color: silver; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
function addNote(el,str) {
var par = document.createElement(el);

View File

@ -8,7 +8,7 @@ blockquote + blockquote { background: blue; }
blockquote + blockquote + blockquote { background: fuchsia; }
blockquote + div { clear: left; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript">
setup(function () {},{explicit_done:true});

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain+':'+httpPortAlias;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain+':'+httpPortAlias;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'https://'+httpsHostAlias;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'https://'+httpsHostAlias+':'+httpsPortAlias;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'https://'+httpsHostAlias;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'https://'+httpsHostAlias+':'+httpsPortAlias;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>Origin for file: to http:</title>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>Origin for data: with no inherited origin to http:</title>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
</head>
<body>

View File

@ -5,7 +5,7 @@
<style type="text/css">
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>Origin for javascript: with no inherited origin to http:</title>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
</head>
<body>

View File

@ -6,7 +6,7 @@
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
</style>
<script type="text/javascript" src="../resources/crossorigin.js"></script>
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
<script type="text/javascript">
window.onload = function () {
var origin = 'http://'+httpHostMain;

Some files were not shown because too many files have changed in this diff Show More