| Index: shell/android/apk/src/org/chromium/mojo/shell/ShellService.java
|
| diff --git a/shell/android/apk/src/org/chromium/mojo/shell/ShellService.java b/shell/android/apk/src/org/chromium/mojo/shell/ShellService.java
|
| index 6faac51151b8b8151b84a2b1774622c4b7c36073..2f489fc1e5ba2cbe12bb6fb98c422d25b26847f2 100644
|
| --- a/shell/android/apk/src/org/chromium/mojo/shell/ShellService.java
|
| +++ b/shell/android/apk/src/org/chromium/mojo/shell/ShellService.java
|
| @@ -32,7 +32,6 @@ import java.io.FileReader;
|
| import java.io.IOException;
|
| import java.lang.ref.WeakReference;
|
| import java.util.ArrayList;
|
| -import java.util.Arrays;
|
| import java.util.List;
|
|
|
| /**
|
| @@ -160,7 +159,7 @@ public class ShellService extends Service {
|
| /**
|
| * Initializes the native system and starts the shell.
|
| **/
|
| - private void ensureStarted(Context applicationContext, String[] args) {
|
| + private void ensureStarted(Context applicationContext, List<String> args) {
|
| if (mInitialized) return;
|
| try {
|
| FileHelper.extractFromAssets(applicationContext, NETWORK_LIBRARY_APP,
|
| @@ -177,9 +176,27 @@ public class ShellService extends Service {
|
| argsList.add("--origin=" + DEFAULT_ORIGIN);
|
| argsList.add("--args-for=mojo:notifications " + R.mipmap.ic_launcher);
|
|
|
| - // Program name.
|
| + File defaultArgumentsFile = new File(
|
| + String.format("/data/local/tmp/%s.cmd", applicationContext.getPackageName()));
|
| + if (defaultArgumentsFile.isFile()) {
|
| + if (defaultArgumentsFile.canWrite()) {
|
| + Log.e(TAG, String.format("Command line arguments file (%s) is world writeable. "
|
| + + "The file will be ignored.",
|
| + defaultArgumentsFile.getAbsolutePath()));
|
| + } else {
|
| + List<String> defaultArguments = getArgsFromFile(defaultArgumentsFile);
|
| + if (defaultArguments.size() > 0) {
|
| + Log.w(TAG, String.format("Adding default arguments from %s:",
|
| + defaultArgumentsFile.getAbsolutePath()));
|
| + for (String arg : defaultArguments) {
|
| + Log.w(TAG, arg);
|
| + }
|
| + argsList.addAll(defaultArguments);
|
| + }
|
| + }
|
| + }
|
| if (args != null) {
|
| - argsList.addAll(Arrays.asList(args));
|
| + argsList.addAll(args);
|
| }
|
|
|
| nativeStart(applicationContext, applicationContext.getAssets(),
|
| @@ -194,7 +211,21 @@ public class ShellService extends Service {
|
| }
|
| }
|
|
|
| - private static String[] getArgsFromIntent(Intent intent) {
|
| + private static List<String> getArgsFromFile(File file) {
|
| + List<String> argsList = new ArrayList<String>();
|
| + try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
|
| + String line;
|
| + while ((line = bufferedReader.readLine()) != null) {
|
| + argsList.add(line);
|
| + }
|
| + return argsList;
|
| + } catch (IOException e) {
|
| + Log.w(TAG, e.getMessage(), e);
|
| + }
|
| + return new ArrayList<String>();
|
| + }
|
| +
|
| + private static List<String> getArgsFromIntent(Intent intent) {
|
| String argsFile = intent.getStringExtra("argsFile");
|
| if (argsFile != null) {
|
| File file = new File(argsFile);
|
| @@ -202,16 +233,7 @@ public class ShellService extends Service {
|
| return null;
|
| }
|
| try {
|
| - List<String> argsList = new ArrayList<String>();
|
| - try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
|
| - String line;
|
| - while ((line = bufferedReader.readLine()) != null) {
|
| - argsList.add(line);
|
| - }
|
| - return argsList.toArray(new String[argsList.size()]);
|
| - } catch (IOException e) {
|
| - Log.w(TAG, e.getMessage(), e);
|
| - }
|
| + return getArgsFromFile(file);
|
| } finally {
|
| if (!file.delete()) {
|
| Log.w(TAG, "Unable to delete args file.");
|
| @@ -223,7 +245,7 @@ public class ShellService extends Service {
|
|
|
| /**
|
| * Adds the given URL to the set of mojo applications to run on start. This must be called
|
| - * before {@link ShellService#ensureStarted(Context, String[])}
|
| + * before {@link ShellService#ensureStarted(Context, List)}
|
| */
|
| void addApplicationURL(String url) {
|
| nativeAddApplicationURL(url);
|
|
|