Index: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java |
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java |
index c7079ed0fe7470742d4d5504efdd74217cac7dce..292d637fb5d49671c35d118bc8b0f650edd7f7f7 100644 |
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java |
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java |
@@ -5,6 +5,8 @@ |
package org.chromium.content.browser.test.util; |
+import android.os.Handler; |
+import android.os.Message; |
import android.util.Log; |
import org.chromium.content.browser.ContentView; |
@@ -81,8 +83,7 @@ public class TestCallbackHelperContainer { |
} |
public static class OnEvaluateJavaScriptResultHelper extends CallbackHelper { |
- private volatile Integer mRequestId; |
- private volatile Integer mId; |
+ private boolean mRequestSent; |
private String mJsonResult; |
/** |
@@ -91,14 +92,23 @@ public class TestCallbackHelperContainer { |
* @param code A JavaScript code to be evaluated. |
*/ |
public void evaluateJavaScript(ContentViewCore contentViewCore, String code) { |
- setRequestId(contentViewCore.evaluateJavaScript(code)); |
+ assert !mRequestSent; |
+ Message message = Message.obtain(new Handler() { |
+ @Override |
+ public void handleMessage(Message msg) { |
+ notifyCalled(msg.obj); |
joth
2013/01/05 00:54:42
will need to cast:
notifyCalled((String) msg.obj);
Avi (use Gerrit)
2013/01/05 01:03:34
Already fixed in my local copy.
|
+ } |
+ }); |
+ contentViewCore.evaluateJavaScript(code, message); |
+ mRequestSent = true; |
+ mJsonResult = null; |
} |
/** |
* Returns true if the evaluation started by evaluateJavaScript() has completed. |
*/ |
public boolean hasValue() { |
- return mId != null; |
+ return mJsonResult != null; |
} |
/** |
@@ -109,7 +119,8 @@ public class TestCallbackHelperContainer { |
public String getJsonResultAndClear() { |
assert hasValue(); |
String result = mJsonResult; |
- setRequestId(null); |
+ mRequestSent = false; |
+ mJsonResult = null; |
return result; |
} |
@@ -141,21 +152,8 @@ public class TestCallbackHelperContainer { |
return hasValue(); |
} |
- private void setRequestId(Integer requestId) { |
- mRequestId = requestId; |
- mId = null; |
- mJsonResult = null; |
- } |
- |
- public void notifyCalled(int id, String jsonResult) { |
- if (mRequestId == null) { |
- Log.w("TestCallbackHelperContainer", |
- "Received JavaScript eval result when request id was not set"); |
- return; |
- } |
- if (id != mRequestId.intValue()) return; |
- assert mId == null; |
- mId = Integer.valueOf(id); |
+ public void notifyCalled(String jsonResult) { |
+ assert !hasValue(); |
mJsonResult = jsonResult; |
notifyCalled(); |
} |