OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/shell/standalone/android/android_handler.h" | 5 #include "mojo/shell/standalone/android/android_handler.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/android/context_utils.h" | 10 #include "base/android/context_utils.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 namespace { | 34 namespace { |
35 | 35 |
36 // This function loads the application library, sets the application context and | 36 // This function loads the application library, sets the application context and |
37 // thunks and calls into the application MojoMain. To ensure that the thunks are | 37 // thunks and calls into the application MojoMain. To ensure that the thunks are |
38 // set correctly we keep it in the Mojo shell .so and pass the function pointer | 38 // set correctly we keep it in the Mojo shell .so and pass the function pointer |
39 // to the helper libbootstrap.so. | 39 // to the helper libbootstrap.so. |
40 void RunAndroidApplication(JNIEnv* env, | 40 void RunAndroidApplication(JNIEnv* env, |
41 jobject j_context, | 41 jobject j_context, |
42 const base::FilePath& app_path, | 42 const base::FilePath& app_path, |
43 jint j_handle) { | 43 jint j_handle) { |
44 InterfaceRequest<Application> application_request = | 44 InterfaceRequest<mojom::Application> application_request = |
45 MakeRequest<Application>(MakeScopedHandle(MessagePipeHandle(j_handle))); | 45 MakeRequest<mojom::Application>( |
| 46 MakeScopedHandle(MessagePipeHandle(j_handle))); |
46 | 47 |
47 // Load the library, so that we can set the application context there if | 48 // Load the library, so that we can set the application context there if |
48 // needed. | 49 // needed. |
49 // TODO(vtl): We'd use a ScopedNativeLibrary, but it doesn't have .get()! | 50 // TODO(vtl): We'd use a ScopedNativeLibrary, but it doesn't have .get()! |
50 base::NativeLibrary app_library = LoadNativeApplication(app_path); | 51 base::NativeLibrary app_library = LoadNativeApplication(app_path); |
51 if (!app_library) | 52 if (!app_library) |
52 return; | 53 return; |
53 | 54 |
54 // Set the application context if needed. Most applications will need to | 55 // Set the application context if needed. Most applications will need to |
55 // access the Android ApplicationContext in which they are run. If the | 56 // access the Android ApplicationContext in which they are run. If the |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 return true; | 126 return true; |
126 } | 127 } |
127 | 128 |
128 } // namespace | 129 } // namespace |
129 | 130 |
130 AndroidHandler::AndroidHandler() : content_handler_factory_(this) {} | 131 AndroidHandler::AndroidHandler() : content_handler_factory_(this) {} |
131 | 132 |
132 AndroidHandler::~AndroidHandler() {} | 133 AndroidHandler::~AndroidHandler() {} |
133 | 134 |
134 void AndroidHandler::RunApplication( | 135 void AndroidHandler::RunApplication( |
135 InterfaceRequest<Application> application_request, | 136 InterfaceRequest<mojom::Application> application_request, |
136 URLResponsePtr response) { | 137 URLResponsePtr response) { |
137 JNIEnv* env = AttachCurrentThread(); | 138 JNIEnv* env = AttachCurrentThread(); |
138 RunAndroidApplicationFn run_android_application_fn = &RunAndroidApplication; | 139 RunAndroidApplicationFn run_android_application_fn = &RunAndroidApplication; |
139 if (!response->url.is_null()) { | 140 if (!response->url.is_null()) { |
140 base::FilePath internal_app_path; | 141 base::FilePath internal_app_path; |
141 base::FilePath path_to_mojo; | 142 base::FilePath path_to_mojo; |
142 if (IsCachedApp(env, GURL(response->url.get()), &internal_app_path, | 143 if (IsCachedApp(env, GURL(response->url.get()), &internal_app_path, |
143 &path_to_mojo)) { | 144 &path_to_mojo)) { |
144 ScopedJavaLocalRef<jstring> j_internal_app_path( | 145 ScopedJavaLocalRef<jstring> j_internal_app_path( |
145 ConvertUTF8ToJavaString(env, internal_app_path.value())); | 146 ConvertUTF8ToJavaString(env, internal_app_path.value())); |
(...skipping 25 matching lines...) Expand all Loading... |
171 connection->AddService(&content_handler_factory_); | 172 connection->AddService(&content_handler_factory_); |
172 return true; | 173 return true; |
173 } | 174 } |
174 | 175 |
175 bool RegisterAndroidHandlerJni(JNIEnv* env) { | 176 bool RegisterAndroidHandlerJni(JNIEnv* env) { |
176 return RegisterNativesImpl(env); | 177 return RegisterNativesImpl(env); |
177 } | 178 } |
178 | 179 |
179 } // namespace shell | 180 } // namespace shell |
180 } // namespace mojo | 181 } // namespace mojo |
OLD | NEW |