Index: base/android/java/src/org/chromium/base/library_loader/Linker.java |
diff --git a/base/android/java/src/org/chromium/base/library_loader/Linker.java b/base/android/java/src/org/chromium/base/library_loader/Linker.java |
index e17ba6dc0de61b91f8978e22587fbce3cd7fd5c9..1a04df3e5fd9461470894b98c07aacae9631d172 100644 |
--- a/base/android/java/src/org/chromium/base/library_loader/Linker.java |
+++ b/base/android/java/src/org/chromium/base/library_loader/Linker.java |
@@ -11,6 +11,7 @@ import android.os.Parcelable; |
import android.util.Log; |
import org.chromium.base.SysUtils; |
+import org.chromium.base.ThreadUtils; |
import java.io.File; |
import java.io.FileInputStream; |
@@ -842,6 +843,29 @@ public class Linker { |
} |
/** |
+ * Move activity from the native thread to the main UI thread. |
+ * Called from native code on its own thread. Posts a callback from |
+ * the UI thread back to native code. |
+ * |
+ * @param opaque Opaque argument. |
+ */ |
+ public static void PostCallbackOnMainThread(final long opaque) { |
bulach
2014/04/15 13:58:14
nit: s/Post/post/
simonb1
2014/04/17 14:45:43
Done.
|
+ ThreadUtils.postOnUiThread(new Runnable() { |
bulach
2014/04/15 13:58:14
nit: java, 4 space indent, 8 for continuations
simonb1
2014/04/17 14:45:43
Done.
|
+ @Override |
+ public void run() { |
+ nativeReceiveCallbackFromMainThread(opaque); |
bulach
2014/04/15 13:58:14
nit: perhaps "runCallbackOnUiThread" ?
simonb1
2014/04/17 14:45:43
Done.
|
+ } |
+ }); |
+ } |
+ |
+ /** |
+ * Native method to receive callbacks from the main UI thread. |
+ * Supplied by the crazy linker and called by PostCallbackOnMainThread. |
+ * @param opaque Opaque crazy linker arguments. |
+ */ |
+ private static native void nativeReceiveCallbackFromMainThread(long opaque); |
+ |
+ /** |
* Native method used to load a library. |
* @param library Platform specific library name (e.g. libfoo.so) |
* @param loadAddress Explicit load address, or 0 for randomized one. |