diff options
author | dgn <dgn@chromium.org> | 2015-12-10 13:10:21 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-10 21:12:16 +0000 |
commit | 172f720710be2008df620438736d19224f0ebcc4 (patch) | |
tree | afd0ad32349b4013d66f361fbaa876675cc48b2d /android_webview/java | |
parent | 7b4457e06c7b1e4f8a6b2fa1268948d8a4a2b439 (diff) | |
download | chromium_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.java | 7 | ||||
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java | 29 |
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) { |