diff options
author | sgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-18 12:29:23 +0000 |
---|---|---|
committer | sgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-18 12:29:23 +0000 |
commit | 60b5184a4bdb8f6d26a529a40ec7470bd1dfd994 (patch) | |
tree | 800d6d2af0544c10c5b3da4acb42958949623e13 /webkit/data/layout_tests/chrome | |
parent | 3ee91378a16d383f62789e7b3f87e6b2830f8c9e (diff) | |
download | chromium_src-60b5184a4bdb8f6d26a529a40ec7470bd1dfd994.zip chromium_src-60b5184a4bdb8f6d26a529a40ec7470bd1dfd994.tar.gz chromium_src-60b5184a4bdb8f6d26a529a40ec7470bd1dfd994.tar.bz2 |
Added parameter checking to window.postMessage. Before this change passing anything else than a message port as the second parameter would crash. Acccording to the draft standard passing null as the second parameter should act as if only two parameters (parameter 1 and 3) where passed. WebKit treats anything else than a message port as the second parameter as if it was not passed (the draft standard is not explicit on that) so we do the same.
Added a layout test to test window.postMessage parameter checking.
Review URL: http://codereview.chromium.org/11405
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5605 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/data/layout_tests/chrome')
-rw-r--r-- | webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null-expected.txt | 7 | ||||
-rw-r--r-- | webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null.html | 36 |
2 files changed, 43 insertions, 0 deletions
diff --git a/webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null-expected.txt b/webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null-expected.txt new file mode 100644 index 0000000..4f365b0 --- /dev/null +++ b/webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null-expected.txt @@ -0,0 +1,7 @@ +ALERT: 1 +ALERT: 2 +ALERT: 3 +ALERT: 4 +ALERT: 5 +ALERT: 6 +ALERT: done diff --git a/webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null.html b/webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null.html new file mode 100644 index 0000000..5fe9914 --- /dev/null +++ b/webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null.html @@ -0,0 +1,36 @@ +<html> + +<script> +if (window.layoutTestController) { + layoutTestController.dumpAsText(); + layoutTestController.waitUntilDone(); +} + +function onmessage(evt) { + alert(evt.data); + + if (evt.data == 'done' && window.layoutTestController) + layoutTestController.notifyDone(); +} + +function run_test() { + window.addEventListener('message', onmessage); + try { + window.postMessage('1', 1, '*') + window.postMessage('2', "", '*') + window.postMessage('3', window, '*') + window.postMessage('4', { x: 1 }, '*') + window.postMessage('5', null, '*') + window.postMessage('6', void 0, '*') + window.postMessage('done', '*') + } catch(e) { + alert(e); + if (window.layoutTestController) + layoutTestController.notifyDone(); + } +} + +</script> +<body onload='run_test()'> +</body> +</html> |