Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/PostMessageTest.java

Issue 929393003: Rename some postmessage API to make it more meaningful. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address code review Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « android_webview/java/src/org/chromium/android_webview/MessagePort.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.test.suitebuilder.annotation.SmallTest; 8 import android.test.suitebuilder.annotation.SmallTest;
9 9
10 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; 10 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 @Feature({"AndroidWebView", "Android-PostMessage"}) 315 @Feature({"AndroidWebView", "Android-PostMessage"})
316 public void testReceiveMessageInBackgroundThread() throws Throwable { 316 public void testReceiveMessageInBackgroundThread() throws Throwable {
317 loadPage(TEST_PAGE); 317 loadPage(TEST_PAGE);
318 final ChannelContainer channelContainer = new ChannelContainer(); 318 final ChannelContainer channelContainer = new ChannelContainer();
319 runTestOnUiThread(new Runnable() { 319 runTestOnUiThread(new Runnable() {
320 @Override 320 @Override
321 public void run() { 321 public void run() {
322 MessagePort[] channel = mAwContents.createMessageChannel(); 322 MessagePort[] channel = mAwContents.createMessageChannel();
323 // verify communication from JS to Java. 323 // verify communication from JS to Java.
324 channelContainer.set(channel); 324 channelContainer.set(channel);
325 channel[0].setMessageHandler(new MessagePort.MessageHandler() { 325 channel[0].setWebEventHandler(new MessagePort.WebEventHandler() {
326 @Override 326 @Override
327 public void onMessage(String message) { 327 public void onMessage(String message) {
328 channelContainer.setMessage(message); 328 channelContainer.setMessage(message);
329 } 329 }
330 }); 330 });
331 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(), 331 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(),
332 new MessagePort[]{channel[1]}); 332 new MessagePort[]{channel[1]});
333 } 333 }
334 }); 334 });
335 mMessageObject.waitForMessage(); 335 mMessageObject.waitForMessage();
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 public MessagePort[] call() { 397 public MessagePort[] call() {
398 return mAwContents.createMessageChannel(); 398 return mAwContents.createMessageChannel();
399 } 399 }
400 }); 400 });
401 401
402 waitUntilPortReady(channel[0]); 402 waitUntilPortReady(channel[0]);
403 waitUntilPortReady(channel[1]); 403 waitUntilPortReady(channel[1]);
404 runTestOnUiThread(new Runnable() { 404 runTestOnUiThread(new Runnable() {
405 @Override 405 @Override
406 public void run() { 406 public void run() {
407 channel[0].setMessageHandler(new MessagePort.MessageHandler() { 407 channel[0].setWebEventHandler(new MessagePort.WebEventHandler() {
408 @Override 408 @Override
409 public void onMessage(String message) { 409 public void onMessage(String message) {
410 channelContainer.setMessage(message); 410 channelContainer.setMessage(message);
411 } 411 }
412 }); 412 });
413 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(), 413 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(),
414 new MessagePort[]{channel[1]}); 414 new MessagePort[]{channel[1]});
415 channel[0].postMessage(HELLO, null); 415 channel[0].postMessage(HELLO, null);
416 } 416 }
417 }); 417 });
418 // wait for the asynchronous response from JS 418 // wait for the asynchronous response from JS
419 channelContainer.waitForMessage(); 419 channelContainer.waitForMessage();
420 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); 420 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage());
421 } 421 }
422 422
423 // Verify that a message port can be used immediately (even if it is in 423 // Verify that a message port can be used immediately (even if it is in
424 // pending state) after creation. In particular make sure the message port c an be 424 // pending state) after creation. In particular make sure the message port c an be
425 // transferred to JS and full communication can happen on it. 425 // transferred to JS and full communication can happen on it.
426 // Do this by sending a message to JS and let it echo'ing the message with 426 // Do this by sending a message to JS and let it echo'ing the message with
427 // some text prepended to it. 427 // some text prepended to it.
428 @SmallTest 428 @SmallTest
429 @Feature({"AndroidWebView", "Android-PostMessage"}) 429 @Feature({"AndroidWebView", "Android-PostMessage"})
430 public void testMessageChannelUsingPendingPort() throws Throwable { 430 public void testMessageChannelUsingPendingPort() throws Throwable {
431 final ChannelContainer channelContainer = new ChannelContainer(); 431 final ChannelContainer channelContainer = new ChannelContainer();
432 loadPage(ECHO_PAGE); 432 loadPage(ECHO_PAGE);
433 runTestOnUiThread(new Runnable() { 433 runTestOnUiThread(new Runnable() {
434 @Override 434 @Override
435 public void run() { 435 public void run() {
436 MessagePort[] channel = mAwContents.createMessageChannel(); 436 MessagePort[] channel = mAwContents.createMessageChannel();
437 channel[0].setMessageHandler(new MessagePort.MessageHandler() { 437 channel[0].setWebEventHandler(new MessagePort.WebEventHandler() {
438 @Override 438 @Override
439 public void onMessage(String message) { 439 public void onMessage(String message) {
440 channelContainer.setMessage(message); 440 channelContainer.setMessage(message);
441 } 441 }
442 }); 442 });
443 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(), 443 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(),
444 new MessagePort[]{channel[1]}); 444 new MessagePort[]{channel[1]});
445 channel[0].postMessage(HELLO, null); 445 channel[0].postMessage(HELLO, null);
446 } 446 }
447 }); 447 });
448 // Wait for the asynchronous response from JS. 448 // Wait for the asynchronous response from JS.
449 channelContainer.waitForMessage(); 449 channelContainer.waitForMessage();
450 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage()); 450 assertEquals(HELLO + JS_MESSAGE, channelContainer.getMessage());
451 } 451 }
452 452
453 // Verify that a message port can be used for message transfer when both 453 // Verify that a message port can be used for message transfer when both
454 // ports are owned by same Webview. 454 // ports are owned by same Webview.
455 @SmallTest 455 @SmallTest
456 @Feature({"AndroidWebView", "Android-PostMessage"}) 456 @Feature({"AndroidWebView", "Android-PostMessage"})
457 public void testMessageChannelCommunicationWithinWebView() throws Throwable { 457 public void testMessageChannelCommunicationWithinWebView() throws Throwable {
458 final ChannelContainer channelContainer = new ChannelContainer(); 458 final ChannelContainer channelContainer = new ChannelContainer();
459 loadPage(ECHO_PAGE); 459 loadPage(ECHO_PAGE);
460 runTestOnUiThread(new Runnable() { 460 runTestOnUiThread(new Runnable() {
461 @Override 461 @Override
462 public void run() { 462 public void run() {
463 MessagePort[] channel = mAwContents.createMessageChannel(); 463 MessagePort[] channel = mAwContents.createMessageChannel();
464 channel[1].setMessageHandler(new MessagePort.MessageHandler() { 464 channel[1].setWebEventHandler(new MessagePort.WebEventHandler() {
465 @Override 465 @Override
466 public void onMessage(String message) { 466 public void onMessage(String message) {
467 channelContainer.setMessage(message); 467 channelContainer.setMessage(message);
468 } 468 }
469 }); 469 });
470 channel[0].postMessage(HELLO, null); 470 channel[0].postMessage(HELLO, null);
471 } 471 }
472 }); 472 });
473 // Wait for the asynchronous response from JS. 473 // Wait for the asynchronous response from JS.
474 channelContainer.waitForMessage(); 474 channelContainer.waitForMessage();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 } 559 }
560 @Override 560 @Override
561 public void close() { 561 public void close() {
562 mPort.close(); 562 mPort.close();
563 } 563 }
564 @Override 564 @Override
565 public boolean isClosed() { 565 public boolean isClosed() {
566 return mPort.isClosed(); 566 return mPort.isClosed();
567 } 567 }
568 @Override 568 @Override
569 public void setMessageHandler(MessageHandler handler) { 569 public void setWebEventHandler(WebEventHandler handler) {
570 mPort.setMessageHandler(handler); 570 mPort.setWebEventHandler(handler);
571 } 571 }
572 @Override 572 @Override
573 public void onMessage(String message) { 573 public void onMessage(String message) {
574 mPort.onMessage(message); 574 mPort.onMessage(message);
575 } 575 }
576 @Override 576 @Override
577 public void postMessage(String message, MessagePort[] msgPorts) throws 577 public void postMessage(String message, MessagePort[] msgPorts) throws
578 IllegalStateException { 578 IllegalStateException {
579 mPort.postMessage(message, msgPorts); 579 mPort.postMessage(message, msgPorts);
580 } 580 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 public void run() { 651 public void run() {
652 MessagePort[] channel = mAwContents.createMessageChannel(); 652 MessagePort[] channel = mAwContents.createMessageChannel();
653 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(), 653 mAwContents.postMessageToFrame(null, WEBVIEW_MESSAGE, mWebServer .getBaseUrl(),
654 new MessagePort[]{channel[0], channel[1]}); 654 new MessagePort[]{channel[0], channel[1]});
655 } 655 }
656 }); 656 });
657 mMessageObject.waitForMessage(); 657 mMessageObject.waitForMessage();
658 assertEquals(WORKER_MESSAGE, mMessageObject.getData()); 658 assertEquals(WORKER_MESSAGE, mMessageObject.getData());
659 } 659 }
660 } 660 }
OLDNEW
« no previous file with comments | « android_webview/java/src/org/chromium/android_webview/MessagePort.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698