https://bugs.webkit.org/show_bug.cgi?id=73691
authordslomov@google.com <dslomov@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 3 Dec 2011 05:40:46 +0000 (05:40 +0000)
committerdslomov@google.com <dslomov@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 3 Dec 2011 05:40:46 +0000 (05:40 +0000)
[JSC] Implement correct order of window.postMessage arguments.

Reviewed by Geoffrey Garen.

Source/WebCore:

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::handlePostMessage):

LayoutTests:

* fast/dom/Window/window-postmessage-args-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@101904 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/Window/window-postmessage-args-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSDOMWindowCustom.cpp

index 0d03d2e..5fe7df4 100644 (file)
@@ -1,3 +1,12 @@
+2011-12-02  Dmitry Lomov  <dslomov@google.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=73691
+        [JSC] Implement correct order of window.postMessage arguments.
+
+        Reviewed by Geoffrey Garen.
+
+        * fast/dom/Window/window-postmessage-args-expected.txt:
+
 2011-12-02  Stephen Chenney  <schenney@chromium.org>
 
         REGRESSION (r91125): Polyline tool in google docs is broken
index fc7df14..8c2061c 100644 (file)
@@ -6,28 +6,35 @@ PASS: Posting message ('2', c): threw exception TypeError: Type error
 PASS: Posting message ('2', c): threw exception TypeError: Type error
 PASS: Posting message ('3', [object Object]): threw exception TypeError: Type error
 PASS: Posting message ('3', [object Object]): threw exception TypeError: Type error
-FAIL: Posting message ('4', [object DOMWindow]): threw exception TypeError: Type error
-FAIL: Posting message ('4', [object DOMWindow]): threw exception TypeError: Type error
+PASS: Posting message ('4', [object DOMWindow]) did not throw an exception
+PASS: Posting message ('4', [object DOMWindow]) did not throw an exception
 PASS: Posting message ('5', null) did not throw an exception
 PASS: Posting message ('5', null) did not throw an exception
 PASS: Posting message ('6', undefined) did not throw an exception
 PASS: Posting message ('6', undefined) did not throw an exception
-FAIL: Posting message ('7', [object MessagePort],[object MessagePort]): threw exception TypeError: Type error
-FAIL: Posting message ('7', [object MessagePort],[object MessagePort]): threw exception TypeError: Type error
+PASS: Posting message ('7', [object MessagePort],[object MessagePort]) did not throw an exception
+PASS: Posting message ('7', [object MessagePort],[object MessagePort]) did not throw an exception
 PASS: Posting message ('2147483648', null) did not throw an exception
 PASS: Posting message ('2147483648', null) did not throw an exception
-FAIL: Posting message ('[object MessagePort]', [object MessagePort],[object MessagePort]): threw exception TypeError: Type error
-FAIL: Posting message ('[object MessagePort]', [object MessagePort],[object MessagePort]): threw exception TypeError: Type error
-FAIL: Posting message ('[object MessagePort],[object MessagePort]', [object MessagePort],[object MessagePort]): threw exception TypeError: Type error
+PASS: Posting message ('[object MessagePort]', [object MessagePort],[object MessagePort]) did not throw an exception
+PASS: Posting message ('[object MessagePort]', [object MessagePort],[object MessagePort]) did not throw an exception
+PASS: Posting message ('[object MessagePort],[object MessagePort]', [object MessagePort],[object MessagePort]) did not throw an exception
 FAIL: Posting message ('[object ArrayBuffer]', [object ArrayBuffer]): threw exception TypeError: Type error
 FAIL: arrayBuffer not neutered; byteLength = 30
 FAIL: view was not neutered; length = 10
 PASS: Posting message ('done', undefined) did not throw an exception
+Received message '4' with 0 ports.
+Received message '4' with 0 ports.
 Received message '5' with 0 ports.
 Received message '5' with 0 ports.
 Received message '6' with 0 ports.
 Received message '6' with 0 ports.
+Received message '7' with 2 ports.
+Received message '7' with 2 ports.
 Received message '2147483648' with 0 ports.
 Received message '2147483648' with 0 ports.
+Received message '[object Object]' with 2 ports.
+Received message '[object MessagePort]' with 2 ports.
+Received message '[object MessagePort],[object MessagePort]' with 2 ports.
 Received message 'done' with 0 ports.
 
index a48fedb..f7ac745 100644 (file)
@@ -1,3 +1,13 @@
+2011-12-02  Dmitry Lomov  <dslomov@google.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=73691
+        [JSC] Implement correct order of window.postMessage arguments.
+
+        Reviewed by Geoffrey Garen.
+
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::handlePostMessage):
+
 2011-12-02  Stephen Chenney  <schenney@chromium.org>
 
         REGRESSION (r91125): Polyline tool in google docs is broken
index 7faa2c1..121c34b 100644 (file)
@@ -706,7 +706,7 @@ static JSValue handlePostMessage(DOMWindow* impl, ExecState* exec, bool doTransf
 {
     MessagePortArray messagePorts;
     if (exec->argumentCount() > 2)
-        fillMessagePortArray(exec, exec->argument(1), messagePorts);
+        fillMessagePortArray(exec, exec->argument(2), messagePorts);
     if (exec->hadException())
         return jsUndefined();
 
@@ -716,7 +716,7 @@ static JSValue handlePostMessage(DOMWindow* impl, ExecState* exec, bool doTransf
     if (exec->hadException())
         return jsUndefined();
 
-    String targetOrigin = valueToStringWithUndefinedOrNullCheck(exec, exec->argument((exec->argumentCount() == 2) ? 1 : 2));
+    String targetOrigin = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(1));
     if (exec->hadException())
         return jsUndefined();