summaryrefslogtreecommitdiffstats
path: root/webkit/data/layout_tests/chrome
diff options
context:
space:
mode:
authorsgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-18 12:29:23 +0000
committersgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-18 12:29:23 +0000
commit60b5184a4bdb8f6d26a529a40ec7470bd1dfd994 (patch)
tree800d6d2af0544c10c5b3da4acb42958949623e13 /webkit/data/layout_tests/chrome
parent3ee91378a16d383f62789e7b3f87e6b2830f8c9e (diff)
downloadchromium_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.txt7
-rw-r--r--webkit/data/layout_tests/chrome/fast/dom/window-postmessage-null.html36
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>