summaryrefslogtreecommitdiffstats
path: root/android_webview/java
diff options
context:
space:
mode:
authordgn <dgn@chromium.org>2015-12-10 13:10:21 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-10 21:12:16 +0000
commit172f720710be2008df620438736d19224f0ebcc4 (patch)
treeafd0ad32349b4013d66f361fbaa876675cc48b2d /android_webview/java
parent7b4457e06c7b1e4f8a6b2fa1268948d8a4a2b439 (diff)
downloadchromium_src-172f720710be2008df620438736d19224f0ebcc4.zip
chromium_src-172f720710be2008df620438736d19224f0ebcc4.tar.gz
chromium_src-172f720710be2008df620438736d19224f0ebcc4.tar.bz2
Move some calls from the Android UI thread to the Chrome one
Some callbacks (from AsyncTasks, broadcasts reciever and other sources) are received on the Android UI thread but the code expects to run on the Chrome UI thread. BUG=568602 TBR=atwilson@chromium.org Review URL: https://codereview.chromium.org/1514903002 Cr-Commit-Position: refs/heads/master@{#364476}
Diffstat (limited to 'android_webview/java')
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwContents.java7
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java29
2 files changed, 22 insertions, 14 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index ebebc65..1bcf5fa 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -640,7 +640,12 @@ public class AwContents implements SmartClipProvider,
if (isDestroyed(NO_WARN)) return;
boolean visibleRectEmpty = getGlobalVisibleRect().isEmpty();
final boolean visible = mIsViewVisible && mIsWindowVisible && !visibleRectEmpty;
- nativeTrimMemory(mNativeAwContents, level, visible);
+ ThreadUtils.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ nativeTrimMemory(mNativeAwContents, level, visible);
+ }
+ });
}
@Override
diff --git a/android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java b/android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java
index 85944b9..f42b25d 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java
@@ -15,6 +15,7 @@ import android.os.Handler;
import android.util.Log;
import org.chromium.base.CommandLine;
+import org.chromium.base.ThreadUtils;
import java.lang.reflect.Field;
@@ -108,21 +109,23 @@ public final class AwDataReductionProxyManager {
private static void applyDataReductionProxySettingsAsync(
final Context context, final String key) {
- AsyncTask<Void, Void, Boolean> task = new AsyncTask<Void, Void, Boolean>() {
+ AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
@Override
- protected Boolean doInBackground(Void... params) {
- return isDataReductionProxyEnabled(context);
+ public void run() {
+ final boolean enabled = isDataReductionProxyEnabled(context);
+
+ ThreadUtils.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ if (enabled) {
+ // Set the data reduction proxy key.
+ AwContentsStatics.setDataReductionProxyKey(key);
+ }
+ AwContentsStatics.setDataReductionProxyEnabled(enabled);
+ }
+ });
}
- @Override
- protected void onPostExecute(Boolean enabled) {
- if (enabled) {
- // Set the data reduction proxy key.
- AwContentsStatics.setDataReductionProxyKey(key);
- }
- AwContentsStatics.setDataReductionProxyEnabled(enabled);
- }
- };
- task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ });
}
private static boolean isDataReductionProxyEnabled(Context context) {