| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.android_webview.test; | 5 package org.chromium.android_webview.test; |
| 6 | 6 |
| 7 import android.os.Build; | 7 import android.os.Build; |
| 8 import android.os.Handler; | 8 import android.os.Handler; |
| 9 import android.test.suitebuilder.annotation.SmallTest; | 9 import android.test.suitebuilder.annotation.SmallTest; |
| 10 import android.webkit.JavascriptInterface; | 10 import android.webkit.JavascriptInterface; |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 @SmallTest | 252 @SmallTest |
| 253 @Feature({"AndroidWebView", "Android-PostMessage"}) | 253 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 254 public void testStartedPortCannotBeTransferredUsingPostMessageToFrame2() thr
ows Throwable { | 254 public void testStartedPortCannotBeTransferredUsingPostMessageToFrame2() thr
ows Throwable { |
| 255 loadPage(TEST_PAGE); | 255 loadPage(TEST_PAGE); |
| 256 final CountDownLatch latch = new CountDownLatch(1); | 256 final CountDownLatch latch = new CountDownLatch(1); |
| 257 runTestOnUiThread(new Runnable() { | 257 runTestOnUiThread(new Runnable() { |
| 258 @Override | 258 @Override |
| 259 public void run() { | 259 public void run() { |
| 260 MessagePort[] channel = mAwContents.createMessageChannel(); | 260 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 261 // set a web event handler, this puts the port in a started stat
e. | 261 // set a web event handler, this puts the port in a started stat
e. |
| 262 channel[1].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 262 channel[1].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 263 @Override | 263 @Override |
| 264 public void onMessage(String message, MessagePort[] sentPort
s) { } | 264 public void onMessage(String message, MessagePort[] sentPort
s) { } |
| 265 }, null); | 265 }, null); |
| 266 try { | 266 try { |
| 267 mAwContents.postMessageToFrame(null, "2", mWebServer.getBase
Url(), | 267 mAwContents.postMessageToFrame(null, "2", mWebServer.getBase
Url(), |
| 268 new MessagePort[]{channel[1]}); | 268 new MessagePort[]{channel[1]}); |
| 269 } catch (IllegalStateException ex) { | 269 } catch (IllegalStateException ex) { |
| 270 latch.countDown(); | 270 latch.countDown(); |
| 271 return; | 271 return; |
| 272 } | 272 } |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 @SmallTest | 304 @SmallTest |
| 305 @Feature({"AndroidWebView", "Android-PostMessage"}) | 305 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 306 public void testStartedPortCannotBeTransferredUsingMessageChannel2() throws
Throwable { | 306 public void testStartedPortCannotBeTransferredUsingMessageChannel2() throws
Throwable { |
| 307 loadPage(TEST_PAGE); | 307 loadPage(TEST_PAGE); |
| 308 final CountDownLatch latch = new CountDownLatch(1); | 308 final CountDownLatch latch = new CountDownLatch(1); |
| 309 runTestOnUiThread(new Runnable() { | 309 runTestOnUiThread(new Runnable() { |
| 310 @Override | 310 @Override |
| 311 public void run() { | 311 public void run() { |
| 312 MessagePort[] channel1 = mAwContents.createMessageChannel(); | 312 MessagePort[] channel1 = mAwContents.createMessageChannel(); |
| 313 // set a web event handler, this puts the port in a started stat
e. | 313 // set a web event handler, this puts the port in a started stat
e. |
| 314 channel1[1].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 314 channel1[1].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 315 @Override | 315 @Override |
| 316 public void onMessage(String message, MessagePort[] sentPort
s) { } | 316 public void onMessage(String message, MessagePort[] sentPort
s) { } |
| 317 }, null); | 317 }, null); |
| 318 MessagePort[] channel2 = mAwContents.createMessageChannel(); | 318 MessagePort[] channel2 = mAwContents.createMessageChannel(); |
| 319 try { | 319 try { |
| 320 channel2[0].postMessage("1", new MessagePort[]{channel1[1]})
; | 320 channel2[0].postMessage("1", new MessagePort[]{channel1[1]})
; |
| 321 } catch (IllegalStateException ex) { | 321 } catch (IllegalStateException ex) { |
| 322 latch.countDown(); | 322 latch.countDown(); |
| 323 return; | 323 return; |
| 324 } | 324 } |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 @Feature({"AndroidWebView", "Android-PostMessage"}) | 577 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 578 public void testReceiveMessageInBackgroundThread() throws Throwable { | 578 public void testReceiveMessageInBackgroundThread() throws Throwable { |
| 579 loadPage(TEST_PAGE); | 579 loadPage(TEST_PAGE); |
| 580 final ChannelContainer channelContainer = new ChannelContainer(); | 580 final ChannelContainer channelContainer = new ChannelContainer(); |
| 581 runTestOnUiThread(new Runnable() { | 581 runTestOnUiThread(new Runnable() { |
| 582 @Override | 582 @Override |
| 583 public void run() { | 583 public void run() { |
| 584 MessagePort[] channel = mAwContents.createMessageChannel(); | 584 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 585 // verify communication from JS to Java. | 585 // verify communication from JS to Java. |
| 586 channelContainer.set(channel); | 586 channelContainer.set(channel); |
| 587 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 587 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 588 @Override | 588 @Override |
| 589 public void onMessage(String message, MessagePort[] sentPort
s) { | 589 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 590 channelContainer.setMessage(message); | 590 channelContainer.setMessage(message); |
| 591 } | 591 } |
| 592 }, null); | 592 }, null); |
| 593 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 593 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 594 new MessagePort[]{channel[1]}); | 594 new MessagePort[]{channel[1]}); |
| 595 } | 595 } |
| 596 }); | 596 }); |
| 597 mMessageObject.waitForMessage(); | 597 mMessageObject.waitForMessage(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 public MessagePort[] call() { | 658 public MessagePort[] call() { |
| 659 return mAwContents.createMessageChannel(); | 659 return mAwContents.createMessageChannel(); |
| 660 } | 660 } |
| 661 }); | 661 }); |
| 662 | 662 |
| 663 waitUntilPortReady(channel[0]); | 663 waitUntilPortReady(channel[0]); |
| 664 waitUntilPortReady(channel[1]); | 664 waitUntilPortReady(channel[1]); |
| 665 runTestOnUiThread(new Runnable() { | 665 runTestOnUiThread(new Runnable() { |
| 666 @Override | 666 @Override |
| 667 public void run() { | 667 public void run() { |
| 668 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 668 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 669 @Override | 669 @Override |
| 670 public void onMessage(String message, MessagePort[] sentPort
s) { | 670 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 671 channelContainer.setMessage(message); | 671 channelContainer.setMessage(message); |
| 672 } | 672 } |
| 673 }, null); | 673 }, null); |
| 674 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 674 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 675 new MessagePort[]{channel[1]}); | 675 new MessagePort[]{channel[1]}); |
| 676 channel[0].postMessage(HELLO, null); | 676 channel[0].postMessage(HELLO, null); |
| 677 } | 677 } |
| 678 }); | 678 }); |
| 679 // wait for the asynchronous response from JS | 679 // wait for the asynchronous response from JS |
| 680 channelContainer.waitForMessage(); | 680 channelContainer.waitForMessage(); |
| 681 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); | 681 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); |
| 682 } | 682 } |
| 683 | 683 |
| 684 // Verify that a message port can be used immediately (even if it is in | 684 // Verify that a message port can be used immediately (even if it is in |
| 685 // pending state) after creation. In particular make sure the message port c
an be | 685 // pending state) after creation. In particular make sure the message port c
an be |
| 686 // transferred to JS and full communication can happen on it. | 686 // transferred to JS and full communication can happen on it. |
| 687 // Do this by sending a message to JS and let it echo'ing the message with | 687 // Do this by sending a message to JS and let it echo'ing the message with |
| 688 // some text prepended to it. | 688 // some text prepended to it. |
| 689 @SmallTest | 689 @SmallTest |
| 690 @Feature({"AndroidWebView", "Android-PostMessage"}) | 690 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 691 public void testMessageChannelUsingPendingPort() throws Throwable { | 691 public void testMessageChannelUsingPendingPort() throws Throwable { |
| 692 final ChannelContainer channelContainer = new ChannelContainer(); | 692 final ChannelContainer channelContainer = new ChannelContainer(); |
| 693 loadPage(ECHO_PAGE); | 693 loadPage(ECHO_PAGE); |
| 694 runTestOnUiThread(new Runnable() { | 694 runTestOnUiThread(new Runnable() { |
| 695 @Override | 695 @Override |
| 696 public void run() { | 696 public void run() { |
| 697 MessagePort[] channel = mAwContents.createMessageChannel(); | 697 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 698 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 698 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 699 @Override | 699 @Override |
| 700 public void onMessage(String message, MessagePort[] sentPort
s) { | 700 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 701 channelContainer.setMessage(message); | 701 channelContainer.setMessage(message); |
| 702 } | 702 } |
| 703 }, null); | 703 }, null); |
| 704 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 704 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 705 new MessagePort[]{channel[1]}); | 705 new MessagePort[]{channel[1]}); |
| 706 channel[0].postMessage(HELLO, null); | 706 channel[0].postMessage(HELLO, null); |
| 707 } | 707 } |
| 708 }); | 708 }); |
| 709 // Wait for the asynchronous response from JS. | 709 // Wait for the asynchronous response from JS. |
| 710 channelContainer.waitForMessage(); | 710 channelContainer.waitForMessage(); |
| 711 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); | 711 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); |
| 712 } | 712 } |
| 713 | 713 |
| 714 // Verify that a message port can be used for message transfer when both | 714 // Verify that a message port can be used for message transfer when both |
| 715 // ports are owned by same Webview. | 715 // ports are owned by same Webview. |
| 716 @SmallTest | 716 @SmallTest |
| 717 @Feature({"AndroidWebView", "Android-PostMessage"}) | 717 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 718 public void testMessageChannelCommunicationWithinWebView() throws Throwable
{ | 718 public void testMessageChannelCommunicationWithinWebView() throws Throwable
{ |
| 719 final ChannelContainer channelContainer = new ChannelContainer(); | 719 final ChannelContainer channelContainer = new ChannelContainer(); |
| 720 loadPage(ECHO_PAGE); | 720 loadPage(ECHO_PAGE); |
| 721 runTestOnUiThread(new Runnable() { | 721 runTestOnUiThread(new Runnable() { |
| 722 @Override | 722 @Override |
| 723 public void run() { | 723 public void run() { |
| 724 MessagePort[] channel = mAwContents.createMessageChannel(); | 724 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 725 channel[1].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 725 channel[1].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 726 @Override | 726 @Override |
| 727 public void onMessage(String message, MessagePort[] sentPort
s) { | 727 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 728 channelContainer.setMessage(message); | 728 channelContainer.setMessage(message); |
| 729 } | 729 } |
| 730 }, null); | 730 }, null); |
| 731 channel[0].postMessage(HELLO, null); | 731 channel[0].postMessage(HELLO, null); |
| 732 } | 732 } |
| 733 }); | 733 }); |
| 734 // Wait for the asynchronous response from JS. | 734 // Wait for the asynchronous response from JS. |
| 735 channelContainer.waitForMessage(); | 735 channelContainer.waitForMessage(); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 782 @SmallTest | 782 @SmallTest |
| 783 @Feature({"AndroidWebView", "Android-PostMessage"}) | 783 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 784 public void testCanUseReceivedMessagePortFromJS() throws Throwable { | 784 public void testCanUseReceivedMessagePortFromJS() throws Throwable { |
| 785 loadPage(RECEIVE_JS_MESSAGE_CHANNEL_PAGE); | 785 loadPage(RECEIVE_JS_MESSAGE_CHANNEL_PAGE); |
| 786 runTestOnUiThread(new Runnable() { | 786 runTestOnUiThread(new Runnable() { |
| 787 @Override | 787 @Override |
| 788 public void run() { | 788 public void run() { |
| 789 MessagePort[] channel = mAwContents.createMessageChannel(); | 789 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 790 mAwContents.postMessageToFrame(null, "1", mWebServer.getBaseUrl(
), | 790 mAwContents.postMessageToFrame(null, "1", mWebServer.getBaseUrl(
), |
| 791 new MessagePort[]{channel[1]}); | 791 new MessagePort[]{channel[1]}); |
| 792 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 792 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 793 @Override | 793 @Override |
| 794 public void onMessage(String message, final MessagePort[] p)
{ | 794 public void onMessage(String message, final MessagePort[] p)
{ |
| 795 p[0].setWebEventHandler(new MessagePort.WebEventHandler(
) { | 795 p[0].setMessageCallback(new MessagePort.MessageCallback(
) { |
| 796 @Override | 796 @Override |
| 797 public void onMessage(String message, MessagePort[]
q) { | 797 public void onMessage(String message, MessagePort[]
q) { |
| 798 assertEquals("3", message); | 798 assertEquals("3", message); |
| 799 p[0].postMessage("4", null); | 799 p[0].postMessage("4", null); |
| 800 } | 800 } |
| 801 }, null); | 801 }, null); |
| 802 p[0].postMessage("2", null); | 802 p[0].postMessage("2", null); |
| 803 } | 803 } |
| 804 }, null); | 804 }, null); |
| 805 } | 805 } |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 842 } | 842 } |
| 843 @Override | 843 @Override |
| 844 public void close() { | 844 public void close() { |
| 845 mPort.close(); | 845 mPort.close(); |
| 846 } | 846 } |
| 847 @Override | 847 @Override |
| 848 public boolean isClosed() { | 848 public boolean isClosed() { |
| 849 return mPort.isClosed(); | 849 return mPort.isClosed(); |
| 850 } | 850 } |
| 851 @Override | 851 @Override |
| 852 public void setWebEventHandler(WebEventHandler webEventHandler, Handler
handler) { | 852 public void setMessageCallback(MessageCallback messageCallback, Handler
handler) { |
| 853 mPort.setWebEventHandler(webEventHandler, handler); | 853 mPort.setMessageCallback(messageCallback, handler); |
| 854 } | 854 } |
| 855 @Override | 855 @Override |
| 856 public void onMessage(String message, MessagePort[] sentPorts) { | 856 public void onMessage(String message, MessagePort[] sentPorts) { |
| 857 mPort.onMessage(message, sentPorts); | 857 mPort.onMessage(message, sentPorts); |
| 858 } | 858 } |
| 859 @Override | 859 @Override |
| 860 public void postMessage(String message, MessagePort[] sentPorts) throws | 860 public void postMessage(String message, MessagePort[] sentPorts) throws |
| 861 IllegalStateException { | 861 IllegalStateException { |
| 862 mPort.postMessage(message, sentPorts); | 862 mPort.postMessage(message, sentPorts); |
| 863 } | 863 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 975 triggerPopup(mAwContents, mContentsClient, mWebServer, MAIN_PAGE_FOR_POP
UP_TEST, ECHO_PAGE, | 975 triggerPopup(mAwContents, mContentsClient, mWebServer, MAIN_PAGE_FOR_POP
UP_TEST, ECHO_PAGE, |
| 976 POPUP_URL, "createPopup()"); | 976 POPUP_URL, "createPopup()"); |
| 977 connectPendingPopup(mAwContents); | 977 connectPendingPopup(mAwContents); |
| 978 final ChannelContainer channelContainer = new ChannelContainer(); | 978 final ChannelContainer channelContainer = new ChannelContainer(); |
| 979 | 979 |
| 980 runTestOnUiThread(new Runnable() { | 980 runTestOnUiThread(new Runnable() { |
| 981 @Override | 981 @Override |
| 982 public void run() { | 982 public void run() { |
| 983 MessagePort[] channel = mAwContents.createMessageChannel(); | 983 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 984 channelContainer.set(channel); | 984 channelContainer.set(channel); |
| 985 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 985 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 986 @Override | 986 @Override |
| 987 public void onMessage(String message, MessagePort[] sentPort
s) { | 987 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 988 channelContainer.setMessage(message); | 988 channelContainer.setMessage(message); |
| 989 } | 989 } |
| 990 }, null); | 990 }, null); |
| 991 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 991 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 992 new MessagePort[] {channel[1]}); | 992 new MessagePort[] {channel[1]}); |
| 993 channel[0].postMessage(HELLO, null); | 993 channel[0].postMessage(HELLO, null); |
| 994 } | 994 } |
| 995 }); | 995 }); |
| 996 channelContainer.waitForMessage(); | 996 channelContainer.waitForMessage(); |
| 997 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); | 997 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); |
| 998 } | 998 } |
| 999 | 999 |
| 1000 // Test if WebView can post a message from/to an iframe in a popup window. | 1000 // Test if WebView can post a message from/to an iframe in a popup window. |
| 1001 @SmallTest | 1001 @SmallTest |
| 1002 @Feature({"AndroidWebView", "Android-PostMessage"}) | 1002 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 1003 public void testPostMessageToIframeInsidePopup() throws Throwable { | 1003 public void testPostMessageToIframeInsidePopup() throws Throwable { |
| 1004 mWebServer.setResponse(IFRAME_URL, ECHO_PAGE, null); | 1004 mWebServer.setResponse(IFRAME_URL, ECHO_PAGE, null); |
| 1005 triggerPopup(mAwContents, mContentsClient, mWebServer, MAIN_PAGE_FOR_POP
UP_TEST, | 1005 triggerPopup(mAwContents, mContentsClient, mWebServer, MAIN_PAGE_FOR_POP
UP_TEST, |
| 1006 POPUP_PAGE_WITH_IFRAME, POPUP_URL, "createPopup()"); | 1006 POPUP_PAGE_WITH_IFRAME, POPUP_URL, "createPopup()"); |
| 1007 connectPendingPopup(mAwContents); | 1007 connectPendingPopup(mAwContents); |
| 1008 final ChannelContainer channelContainer = new ChannelContainer(); | 1008 final ChannelContainer channelContainer = new ChannelContainer(); |
| 1009 | 1009 |
| 1010 runTestOnUiThread(new Runnable() { | 1010 runTestOnUiThread(new Runnable() { |
| 1011 @Override | 1011 @Override |
| 1012 public void run() { | 1012 public void run() { |
| 1013 MessagePort[] channel = mAwContents.createMessageChannel(); | 1013 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 1014 channelContainer.set(channel); | 1014 channelContainer.set(channel); |
| 1015 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 1015 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 1016 @Override | 1016 @Override |
| 1017 public void onMessage(String message, MessagePort[] sentPort
s) { | 1017 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 1018 channelContainer.setMessage(message); | 1018 channelContainer.setMessage(message); |
| 1019 } | 1019 } |
| 1020 }, null); | 1020 }, null); |
| 1021 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 1021 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 1022 new MessagePort[] {channel[1]}); | 1022 new MessagePort[] {channel[1]}); |
| 1023 channel[0].postMessage(HELLO, null); | 1023 channel[0].postMessage(HELLO, null); |
| 1024 } | 1024 } |
| 1025 }); | 1025 }); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1048 @SmallTest | 1048 @SmallTest |
| 1049 @Feature({"AndroidWebView", "Android-PostMessage"}) | 1049 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 1050 public void testPostUnsupportedWebMessageToApp() throws Throwable { | 1050 public void testPostUnsupportedWebMessageToApp() throws Throwable { |
| 1051 loadPage(TEST_PAGE_FOR_UNSUPPORTED_MESSAGES); | 1051 loadPage(TEST_PAGE_FOR_UNSUPPORTED_MESSAGES); |
| 1052 final ChannelContainer channelContainer = new ChannelContainer(); | 1052 final ChannelContainer channelContainer = new ChannelContainer(); |
| 1053 runTestOnUiThread(new Runnable() { | 1053 runTestOnUiThread(new Runnable() { |
| 1054 @Override | 1054 @Override |
| 1055 public void run() { | 1055 public void run() { |
| 1056 MessagePort[] channel = mAwContents.createMessageChannel(); | 1056 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 1057 channelContainer.set(channel); | 1057 channelContainer.set(channel); |
| 1058 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 1058 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 1059 @Override | 1059 @Override |
| 1060 public void onMessage(String message, MessagePort[] sentPort
s) { | 1060 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 1061 channelContainer.setMessage(message); | 1061 channelContainer.setMessage(message); |
| 1062 } | 1062 } |
| 1063 }, null); | 1063 }, null); |
| 1064 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 1064 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 1065 new MessagePort[] {channel[1]}); | 1065 new MessagePort[] {channel[1]}); |
| 1066 } | 1066 } |
| 1067 }); | 1067 }); |
| 1068 channelContainer.waitForMessage(); | 1068 channelContainer.waitForMessage(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1084 @SmallTest | 1084 @SmallTest |
| 1085 @Feature({"AndroidWebView", "Android-PostMessage"}) | 1085 @Feature({"AndroidWebView", "Android-PostMessage"}) |
| 1086 public void testTransferEmptyPortsArray() throws Throwable { | 1086 public void testTransferEmptyPortsArray() throws Throwable { |
| 1087 loadPage(TEST_TRANSFER_EMPTY_PORTS); | 1087 loadPage(TEST_TRANSFER_EMPTY_PORTS); |
| 1088 final ChannelContainer channelContainer = new ChannelContainer(2); | 1088 final ChannelContainer channelContainer = new ChannelContainer(2); |
| 1089 runTestOnUiThread(new Runnable() { | 1089 runTestOnUiThread(new Runnable() { |
| 1090 @Override | 1090 @Override |
| 1091 public void run() { | 1091 public void run() { |
| 1092 MessagePort[] channel = mAwContents.createMessageChannel(); | 1092 MessagePort[] channel = mAwContents.createMessageChannel(); |
| 1093 channelContainer.set(channel); | 1093 channelContainer.set(channel); |
| 1094 channel[0].setWebEventHandler(new MessagePort.WebEventHandler()
{ | 1094 channel[0].setMessageCallback(new MessagePort.MessageCallback()
{ |
| 1095 @Override | 1095 @Override |
| 1096 public void onMessage(String message, MessagePort[] sentPort
s) { | 1096 public void onMessage(String message, MessagePort[] sentPort
s) { |
| 1097 channelContainer.setMessage(message); | 1097 channelContainer.setMessage(message); |
| 1098 } | 1098 } |
| 1099 }, null); | 1099 }, null); |
| 1100 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), | 1100 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer
.getBaseUrl(), |
| 1101 new MessagePort[] {channel[1]}); | 1101 new MessagePort[] {channel[1]}); |
| 1102 } | 1102 } |
| 1103 }); | 1103 }); |
| 1104 channelContainer.waitForMessage(); | 1104 channelContainer.waitForMessage(); |
| 1105 assertEquals("12", channelContainer.getMessage()); | 1105 assertEquals("12", channelContainer.getMessage()); |
| 1106 } | 1106 } |
| 1107 } | 1107 } |
| OLD | NEW |