Index: android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java |
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java |
index b7fb06b95604bf6e1b142f2741731eb1ae1a8c55..279e0b922748483a2e2c7b2c5c1eb2ba502d2d6b 100644 |
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java |
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java |
@@ -49,6 +49,7 @@ import org.chromium.android_webview.AwSettings; |
import org.chromium.android_webview.HttpAuthDatabase; |
import org.chromium.android_webview.PlatformServiceBridge; |
import org.chromium.android_webview.ResourcesContextWrapperFactory; |
+import org.chromium.android_webview.command_line.CommandLineUtil; |
import org.chromium.base.BuildConfig; |
import org.chromium.base.CommandLine; |
import org.chromium.base.ContextUtils; |
@@ -83,7 +84,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { |
private static final String CHROMIUM_PREFS_NAME = "WebViewChromiumPrefs"; |
private static final String VERSION_CODE_PREF = "lastVersionCodeUsed"; |
- private static final String COMMAND_LINE_FILE = "/data/local/tmp/webview-command-line"; |
private static final String HTTP_AUTH_DATABASE_FILE = "http_auth.db"; |
private class WebViewChromiumRunQueue { |
@@ -215,10 +215,10 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { |
// WebView needs to make sure to always use the wrapped application context. |
ContextUtils.initApplicationContext(ResourcesContextWrapperFactory.get(ctx)); |
- if (isBuildDebuggable()) { |
+ if (CommandLineUtil.isBuildDebuggable()) { |
// Suppress the StrictMode violation as this codepath is only hit on debuggable builds. |
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); |
- CommandLine.initFromFile(COMMAND_LINE_FILE); |
+ CommandLine.initFromFile(CommandLineUtil.WEBVIEW_COMMAND_LINE_FILE); |
StrictMode.setThreadPolicy(oldPolicy); |
} else { |
CommandLine.init(null); |
@@ -270,10 +270,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { |
} |
} |
- private static boolean isBuildDebuggable() { |
- return !Build.TYPE.equals("user"); |
- } |
- |
/** |
* Both versionCodes should be from a WebView provider package implemented by Chromium. |
* VersionCodes from other kinds of packages won't make any sense in this method. |
@@ -406,7 +402,27 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { |
final boolean isExternalService = true; |
AwBrowserProcess.configureChildProcessLauncher(webViewPackageName, isExternalService); |
AwBrowserProcess.start(); |
- AwBrowserProcess.handleMinidumps(webViewPackageName); |
+ |
+ boolean enableMinidumpUploadingForTesting = CommandLine.getInstance().hasSwitch( |
+ CommandLineUtil.CRASH_UPLOADS_ENABLED_FOR_TESTING_SWITCH); |
sgurun-gerrit only
2017/01/24 08:58:49
Is this only for convenience, to ease the manual t
gsennton
2017/01/24 10:41:47
It's also useful for devices that do not have the
sgurun-gerrit only
2017/01/24 18:55:27
I think we should be a little bit stingy while add
gsennton
2017/01/25 10:35:13
Which flag are we talking about here now? Are you
|
+ if (enableMinidumpUploadingForTesting) { |
+ AwBrowserProcess.handleMinidumps(webViewPackageName, true /* enabled */); |
+ } else { |
+ // Copy minidumps if Android Checkbox is toggled on. |
gsennton
2017/01/23 18:33:53
TODO merge this with the queryMetricsSetting call
sgurun-gerrit only
2017/01/24 08:58:49
+1
gsennton
2017/01/24 10:41:47
Why aren't we checking canUseGms() in the call bel
sgurun-gerrit only
2017/01/24 18:55:27
you need to check for canUseGms() only if you don'
gsennton
2017/01/25 10:35:13
Done.
|
+ PlatformServiceBridge platformServiceBridge = |
+ PlatformServiceBridge.getInstance(context); |
+ if (platformServiceBridge.canUseGms()) { |
+ platformServiceBridge.queryMetricsSetting(new ValueCallback<Boolean>() { |
+ @Override |
+ public void onReceiveValue(Boolean enabled) { |
+ AwBrowserProcess.handleMinidumps(webViewPackageName, enabled); |
+ } |
+ }); |
+ } else { |
+ // Gms is not available - don't copy minidumps. |
+ AwBrowserProcess.handleMinidumps(webViewPackageName, false /* enabled */); |
+ } |
+ } |
PlatformServiceBridge.getInstance(context) |
.queryMetricsSetting(new ValueCallback<Boolean>() { |
@@ -416,7 +432,7 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { |
} |
}); |
- if (isBuildDebuggable()) { |
+ if (CommandLineUtil.isBuildDebuggable()) { |
setWebContentsDebuggingEnabled(true); |
} |
@@ -512,7 +528,7 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { |
@Override |
public void setWebContentsDebuggingEnabled(boolean enable) { |
// Web Contents debugging is always enabled on debug builds. |
- if (!isBuildDebuggable()) { |
+ if (!CommandLineUtil.isBuildDebuggable()) { |
WebViewChromiumFactoryProvider.this.setWebContentsDebuggingEnabled( |
enable); |
} |