| Index: android_webview/java/src/org/chromium/android_webview/command_line/CommandLineUtil.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/command_line/CommandLineUtil.java b/android_webview/java/src/org/chromium/android_webview/command_line/CommandLineUtil.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e05c30955a9b7518d4728d74dd4532f2578561db
|
| --- /dev/null
|
| +++ b/android_webview/java/src/org/chromium/android_webview/command_line/CommandLineUtil.java
|
| @@ -0,0 +1,50 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.android_webview.command_line;
|
| +
|
| +import android.os.Build;
|
| +import android.os.StrictMode;
|
| +
|
| +import org.chromium.base.CommandLine;
|
| +import org.chromium.base.annotations.SuppressFBWarnings;
|
| +
|
| +/**
|
| + * Utility class for WebView's CommandLine - this is compiled into a separate target that can be
|
| + * reached from WebView's separate minidump-uploading Services.
|
| + */
|
| +public class CommandLineUtil {
|
| + private CommandLineUtil() {}
|
| +
|
| + public static final String WEBVIEW_COMMAND_LINE_FILE = "/data/local/tmp/webview-command-line";
|
| +
|
| + // same switch as kEnableCrashReporterForTesting in //base/base_switches.h
|
| + public static final String CRASH_UPLOADS_ENABLED_FOR_TESTING_SWITCH =
|
| + "enable-crash-reporter-for-testing";
|
| +
|
| + public static boolean isBuildDebuggable() {
|
| + return !Build.TYPE.equals("user");
|
| + }
|
| +
|
| + /**
|
| + * Initialize the CommandLine for WebView - this should be initialized on the same thread where
|
| + * we subsequently access CommandLine.
|
| + */
|
| + @SuppressFBWarnings("DMI_HARDCODED_ABSOLUTE_FILENAME")
|
| + public static void initCommandLine() {
|
| + if (isBuildDebuggable()) {
|
| + // Suppress the StrictMode violation as this codepath is only hit on debuggable builds.
|
| + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
|
| + CommandLine.initFromFile(CommandLineUtil.WEBVIEW_COMMAND_LINE_FILE);
|
| + StrictMode.setThreadPolicy(oldPolicy);
|
| + } else {
|
| + CommandLine.init(null);
|
| + }
|
| + }
|
| +
|
| + public static void initCommandLineIfNotInitialized() {
|
| + if (CommandLine.isInitialized()) return;
|
| + initCommandLine();
|
| + }
|
| +}
|
|
|