| Index: content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
|
| diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
|
| index 6745a4085c73ae196401f1cc6449d8efa068f284..768f4c63931f53c337275ab01f634a48fb99009c 100644
|
| --- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
|
| +++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
|
| @@ -172,15 +172,27 @@ public class JavaBridgeBasicsTest extends JavaBridgeTestBase {
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Android-JavaBridge"})
|
| public void testRemovalNotReflectedUntilReload() throws Throwable {
|
| - injectObjectAndReload(new Object(), "testObject");
|
| + injectObjectAndReload(new Object() {
|
| + public void method() {
|
| + mTestController.setStringValue("I'm here");
|
| + }
|
| + }, "testObject");
|
| assertEquals("object", executeJavaScriptAndGetStringResult("typeof testObject"));
|
| + executeJavaScript("testObject.method()");
|
| + assertEquals("I'm here", mTestController.waitForStringValue());
|
| runTestOnUiThread(new Runnable() {
|
| @Override
|
| public void run() {
|
| getContentViewCore().removeJavascriptInterface("testObject");
|
| }
|
| });
|
| + // Check that the Java object is being held by the Java bridge, thus it's not
|
| + // collected. Note that despite that what JavaDoc says about invoking "gc()", both Dalvik
|
| + // and ART actually run the collector if called via Runtime.
|
| + Runtime.getRuntime().gc();
|
| assertEquals("object", executeJavaScriptAndGetStringResult("typeof testObject"));
|
| + executeJavaScript("testObject.method()");
|
| + assertEquals("I'm here", mTestController.waitForStringValue());
|
| synchronousPageReload();
|
| assertEquals("undefined", executeJavaScriptAndGetStringResult("typeof testObject"));
|
| }
|
|
|