OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "base/android/command_line_android.h" | 5 #include "base/android/command_line_android.h" |
6 | 6 |
7 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 base::android::AppendJavaStringArrayToStringVector(env, array, &vec); | 24 base::android::AppendJavaStringArrayToStringVector(env, array, &vec); |
25 if (!includes_program) | 25 if (!includes_program) |
26 vec.insert(vec.begin(), ""); | 26 vec.insert(vec.begin(), ""); |
27 CommandLine extra_command_line(vec); | 27 CommandLine extra_command_line(vec); |
28 CommandLine::ForCurrentProcess()->AppendArguments(extra_command_line, | 28 CommandLine::ForCurrentProcess()->AppendArguments(extra_command_line, |
29 includes_program); | 29 includes_program); |
30 } | 30 } |
31 | 31 |
32 } // namespace | 32 } // namespace |
33 | 33 |
34 static void Reset(JNIEnv* env, jclass clazz) { | 34 static void Reset(JNIEnv* env, const JavaParamRef<jclass>& clazz) { |
35 CommandLine::Reset(); | 35 CommandLine::Reset(); |
36 } | 36 } |
37 | 37 |
38 static jboolean HasSwitch(JNIEnv* env, jclass clazz, jstring jswitch) { | 38 static jboolean HasSwitch(JNIEnv* env, |
| 39 const JavaParamRef<jclass>& clazz, |
| 40 const JavaParamRef<jstring>& jswitch) { |
39 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); | 41 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); |
40 return CommandLine::ForCurrentProcess()->HasSwitch(switch_string); | 42 return CommandLine::ForCurrentProcess()->HasSwitch(switch_string); |
41 } | 43 } |
42 | 44 |
43 static ScopedJavaLocalRef<jstring> GetSwitchValue(JNIEnv* env, | 45 static ScopedJavaLocalRef<jstring> GetSwitchValue( |
44 jclass clazz, | 46 JNIEnv* env, |
45 jstring jswitch) { | 47 const JavaParamRef<jclass>& clazz, |
| 48 const JavaParamRef<jstring>& jswitch) { |
46 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); | 49 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); |
47 std::string value(CommandLine::ForCurrentProcess()->GetSwitchValueNative( | 50 std::string value(CommandLine::ForCurrentProcess()->GetSwitchValueNative( |
48 switch_string)); | 51 switch_string)); |
49 if (value.empty()) | 52 if (value.empty()) |
50 return ScopedJavaLocalRef<jstring>(); | 53 return ScopedJavaLocalRef<jstring>(); |
51 return ConvertUTF8ToJavaString(env, value); | 54 return ConvertUTF8ToJavaString(env, value); |
52 } | 55 } |
53 | 56 |
54 static void AppendSwitch(JNIEnv* env, jclass clazz, jstring jswitch) { | 57 static void AppendSwitch(JNIEnv* env, |
| 58 const JavaParamRef<jclass>& clazz, |
| 59 const JavaParamRef<jstring>& jswitch) { |
55 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); | 60 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); |
56 CommandLine::ForCurrentProcess()->AppendSwitch(switch_string); | 61 CommandLine::ForCurrentProcess()->AppendSwitch(switch_string); |
57 } | 62 } |
58 | 63 |
59 static void AppendSwitchWithValue(JNIEnv* env, jclass clazz, | 64 static void AppendSwitchWithValue(JNIEnv* env, |
60 jstring jswitch, jstring jvalue) { | 65 const JavaParamRef<jclass>& clazz, |
| 66 const JavaParamRef<jstring>& jswitch, |
| 67 const JavaParamRef<jstring>& jvalue) { |
61 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); | 68 std::string switch_string(ConvertJavaStringToUTF8(env, jswitch)); |
62 std::string value_string (ConvertJavaStringToUTF8(env, jvalue)); | 69 std::string value_string (ConvertJavaStringToUTF8(env, jvalue)); |
63 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switch_string, | 70 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switch_string, |
64 value_string); | 71 value_string); |
65 } | 72 } |
66 | 73 |
67 static void AppendSwitchesAndArguments(JNIEnv* env, jclass clazz, | 74 static void AppendSwitchesAndArguments( |
68 jobjectArray array) { | 75 JNIEnv* env, |
| 76 const JavaParamRef<jclass>& clazz, |
| 77 const JavaParamRef<jobjectArray>& array) { |
69 AppendJavaStringArrayToCommandLine(env, array, false); | 78 AppendJavaStringArrayToCommandLine(env, array, false); |
70 } | 79 } |
71 | 80 |
72 namespace base { | 81 namespace base { |
73 namespace android { | 82 namespace android { |
74 | 83 |
75 void InitNativeCommandLineFromJavaArray(JNIEnv* env, jobjectArray array) { | 84 void InitNativeCommandLineFromJavaArray(JNIEnv* env, jobjectArray array) { |
76 // TODO(port): Make an overload of Init() that takes StringVector rather than | 85 // TODO(port): Make an overload of Init() that takes StringVector rather than |
77 // have to round-trip via AppendArguments. | 86 // have to round-trip via AppendArguments. |
78 CommandLine::Init(0, NULL); | 87 CommandLine::Init(0, NULL); |
79 AppendJavaStringArrayToCommandLine(env, array, true); | 88 AppendJavaStringArrayToCommandLine(env, array, true); |
80 } | 89 } |
81 | 90 |
82 bool RegisterCommandLine(JNIEnv* env) { | 91 bool RegisterCommandLine(JNIEnv* env) { |
83 return RegisterNativesImpl(env); | 92 return RegisterNativesImpl(env); |
84 } | 93 } |
85 | 94 |
86 } // namespace android | 95 } // namespace android |
87 } // namespace base | 96 } // namespace base |
OLD | NEW |