Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java

Issue 1514903002: Move some calls from the Android UI thread to the Chrome one (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pass findbug Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.android_webview; 5 package org.chromium.android_webview;
6 6
7 import android.content.ContentResolver; 7 import android.content.ContentResolver;
8 import android.content.Context; 8 import android.content.Context;
9 import android.database.ContentObserver; 9 import android.database.ContentObserver;
10 import android.database.Cursor; 10 import android.database.Cursor;
11 import android.database.SQLException; 11 import android.database.SQLException;
12 import android.net.Uri; 12 import android.net.Uri;
13 import android.os.AsyncTask; 13 import android.os.AsyncTask;
14 import android.os.Handler; 14 import android.os.Handler;
15 import android.util.Log; 15 import android.util.Log;
16 16
17 import org.chromium.base.CommandLine; 17 import org.chromium.base.CommandLine;
18 import org.chromium.base.ThreadUtils;
18 19
19 import java.lang.reflect.Field; 20 import java.lang.reflect.Field;
20 21
21 /** 22 /**
22 * Controls data reduction proxy. 23 * Controls data reduction proxy.
23 */ 24 */
24 public final class AwDataReductionProxyManager { 25 public final class AwDataReductionProxyManager {
25 // The setting Uri. Used when querying GoogleSettings. 26 // The setting Uri. Used when querying GoogleSettings.
26 // TODO: This GoogleSettings Uri does not exist yet! 27 // TODO: This GoogleSettings Uri does not exist yet!
27 private static final Uri CONTENT_URI = Uri.parse("content://com.google.setti ngs/partner"); 28 private static final Uri CONTENT_URI = Uri.parse("content://com.google.setti ngs/partner");
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 } catch (IllegalAccessException ex) { 102 } catch (IllegalAccessException ex) {
102 Log.e(TAG, "No DRP key due to exception:" + ex); 103 Log.e(TAG, "No DRP key due to exception:" + ex);
103 } catch (NullPointerException ex) { 104 } catch (NullPointerException ex) {
104 Log.e(TAG, "No DRP key due to exception:" + ex); 105 Log.e(TAG, "No DRP key due to exception:" + ex);
105 } 106 }
106 return null; 107 return null;
107 } 108 }
108 109
109 private static void applyDataReductionProxySettingsAsync( 110 private static void applyDataReductionProxySettingsAsync(
110 final Context context, final String key) { 111 final Context context, final String key) {
111 AsyncTask<Void, Void, Boolean> task = new AsyncTask<Void, Void, Boolean> () { 112 AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
112 @Override 113 @Override
113 protected Boolean doInBackground(Void... params) { 114 public void run() {
114 return isDataReductionProxyEnabled(context); 115 final boolean enabled = isDataReductionProxyEnabled(context);
116
117 ThreadUtils.runOnUiThread(new Runnable() {
118 @Override
119 public void run() {
120 if (enabled) {
121 // Set the data reduction proxy key.
122 AwContentsStatics.setDataReductionProxyKey(key);
123 }
124 AwContentsStatics.setDataReductionProxyEnabled(enabled);
125 }
126 });
115 } 127 }
116 @Override 128 });
117 protected void onPostExecute(Boolean enabled) {
118 if (enabled) {
119 // Set the data reduction proxy key.
120 AwContentsStatics.setDataReductionProxyKey(key);
121 }
122 AwContentsStatics.setDataReductionProxyEnabled(enabled);
123 }
124 };
125 task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
126 } 129 }
127 130
128 private static boolean isDataReductionProxyEnabled(Context context) { 131 private static boolean isDataReductionProxyEnabled(Context context) {
129 return getProxySetting(context.getContentResolver(), WEBVIEW_DATA_REDUCT ION_PROXY) != 0; 132 return getProxySetting(context.getContentResolver(), WEBVIEW_DATA_REDUCT ION_PROXY) != 0;
130 } 133 }
131 134
132 // Read query setting from GoogleSettings. 135 // Read query setting from GoogleSettings.
133 private static int getProxySetting(ContentResolver resolver, String name) { 136 private static int getProxySetting(ContentResolver resolver, String name) {
134 String value = null; 137 String value = null;
135 Cursor c = null; 138 Cursor c = null;
(...skipping 11 matching lines...) Expand all
147 try { 150 try {
148 if (value != null) { 151 if (value != null) {
149 enabled = Integer.parseInt(value); 152 enabled = Integer.parseInt(value);
150 } 153 }
151 } catch (NumberFormatException e) { 154 } catch (NumberFormatException e) {
152 Log.e(TAG, "cannot parse" + value, e); 155 Log.e(TAG, "cannot parse" + value, e);
153 } 156 }
154 return enabled; 157 return enabled;
155 } 158 }
156 } 159 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698