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

Unified Diff: shell/android/apk/src/org/chromium/mojo/shell/ShellService.java

Issue 1460213002: Add default file for command line arguments. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Follow live discussion Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/devtools/common/devtoolslib/android_shell.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « mojo/devtools/common/devtoolslib/android_shell.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698