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 "components/cronet/android/cronet_library_loader.h" | 5 #include "components/cronet/android/cronet_library_loader.h" |
6 | 6 |
7 #include <jni.h> | 7 #include <jni.h> |
| 8 #include <vector> |
8 | 9 |
9 #include "base/android/base_jni_onload.h" | 10 #include "base/android/base_jni_onload.h" |
10 #include "base/android/base_jni_registrar.h" | 11 #include "base/android/base_jni_registrar.h" |
11 #include "base/android/jni_android.h" | 12 #include "base/android/jni_android.h" |
12 #include "base/android/jni_registrar.h" | 13 #include "base/android/jni_registrar.h" |
13 #include "base/android/jni_utils.h" | 14 #include "base/android/jni_utils.h" |
14 #include "base/android/library_loader/library_loader_hooks.h" | 15 #include "base/android/library_loader/library_loader_hooks.h" |
15 #include "base/command_line.h" | 16 #include "base/command_line.h" |
16 #include "base/logging.h" | 17 #include "base/logging.h" |
17 #include "base/macros.h" | 18 #include "base/macros.h" |
18 #include "base/message_loop/message_loop.h" | 19 #include "base/message_loop/message_loop.h" |
19 #include "components/cronet/android/chromium_url_request.h" | 20 #include "components/cronet/android/chromium_url_request.h" |
20 #include "components/cronet/android/chromium_url_request_context.h" | 21 #include "components/cronet/android/chromium_url_request_context.h" |
21 #include "components/cronet/android/cronet_bidirectional_stream_adapter.h" | 22 #include "components/cronet/android/cronet_bidirectional_stream_adapter.h" |
22 #include "components/cronet/android/cronet_upload_data_stream_adapter.h" | 23 #include "components/cronet/android/cronet_upload_data_stream_adapter.h" |
23 #include "components/cronet/android/cronet_url_request_adapter.h" | 24 #include "components/cronet/android/cronet_url_request_adapter.h" |
24 #include "components/cronet/android/cronet_url_request_context_adapter.h" | 25 #include "components/cronet/android/cronet_url_request_context_adapter.h" |
25 #include "components/cronet/version.h" | 26 #include "components/cronet/version.h" |
26 #include "jni/CronetLibraryLoader_jni.h" | 27 #include "jni/CronetLibraryLoader_jni.h" |
27 #include "net/android/net_jni_registrar.h" | 28 #include "net/android/net_jni_registrar.h" |
28 #include "net/android/network_change_notifier_factory_android.h" | 29 #include "net/android/network_change_notifier_factory_android.h" |
29 #include "net/base/network_change_notifier.h" | 30 #include "net/base/network_change_notifier.h" |
| 31 #include "url/url_features.h" |
30 #include "url/url_util.h" | 32 #include "url/url_util.h" |
31 | 33 |
32 #if defined(USE_ICU_ALTERNATIVES_ON_ANDROID) | 34 #if BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES) |
33 #include "url/android/url_jni_registrar.h" // nogncheck | 35 #include "url/android/url_jni_registrar.h" // nogncheck |
34 #else | 36 #else |
35 #include "base/i18n/icu_util.h" | 37 #include "base/i18n/icu_util.h" |
36 #endif | 38 #endif |
37 | 39 |
38 namespace cronet { | 40 namespace cronet { |
39 namespace { | 41 namespace { |
40 | 42 |
41 const base::android::RegistrationMethod kCronetRegisteredMethods[] = { | 43 const base::android::RegistrationMethod kCronetRegisteredMethods[] = { |
42 {"BaseAndroid", base::android::RegisterJni}, | 44 {"BaseAndroid", base::android::RegisterJni}, |
43 {"ChromiumUrlRequest", ChromiumUrlRequestRegisterJni}, | 45 {"ChromiumUrlRequest", ChromiumUrlRequestRegisterJni}, |
44 {"ChromiumUrlRequestContext", ChromiumUrlRequestContextRegisterJni}, | 46 {"ChromiumUrlRequestContext", ChromiumUrlRequestContextRegisterJni}, |
45 {"CronetBidirectionalStreamAdapter", | 47 {"CronetBidirectionalStreamAdapter", |
46 CronetBidirectionalStreamAdapter::RegisterJni}, | 48 CronetBidirectionalStreamAdapter::RegisterJni}, |
47 {"CronetLibraryLoader", RegisterNativesImpl}, | 49 {"CronetLibraryLoader", RegisterNativesImpl}, |
48 {"CronetUploadDataStreamAdapter", CronetUploadDataStreamAdapterRegisterJni}, | 50 {"CronetUploadDataStreamAdapter", CronetUploadDataStreamAdapterRegisterJni}, |
49 {"CronetUrlRequestAdapter", CronetUrlRequestAdapterRegisterJni}, | 51 {"CronetUrlRequestAdapter", CronetUrlRequestAdapterRegisterJni}, |
50 {"CronetUrlRequestContextAdapter", | 52 {"CronetUrlRequestContextAdapter", |
51 CronetUrlRequestContextAdapterRegisterJni}, | 53 CronetUrlRequestContextAdapterRegisterJni}, |
52 {"NetAndroid", net::android::RegisterJni}, | 54 {"NetAndroid", net::android::RegisterJni}, |
53 #if defined(USE_ICU_ALTERNATIVES_ON_ANDROID) | 55 #if BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES) |
54 {"UrlAndroid", url::android::RegisterJni}, | 56 {"UrlAndroid", url::android::RegisterJni}, |
55 #endif | 57 #endif |
56 }; | 58 }; |
57 | 59 |
58 // MessageLoop on the main thread, which is where objects that receive Java | 60 // MessageLoop on the main thread, which is where objects that receive Java |
59 // notifications generally live. | 61 // notifications generally live. |
60 base::MessageLoop* g_main_message_loop = nullptr; | 62 base::MessageLoop* g_main_message_loop = nullptr; |
61 | 63 |
62 net::NetworkChangeNotifier* g_network_change_notifier = nullptr; | 64 net::NetworkChangeNotifier* g_network_change_notifier = nullptr; |
63 | 65 |
(...skipping 20 matching lines...) Expand all Loading... |
84 return -1; | 86 return -1; |
85 } | 87 } |
86 return JNI_VERSION_1_6; | 88 return JNI_VERSION_1_6; |
87 } | 89 } |
88 | 90 |
89 void CronetOnUnLoad(JavaVM* jvm, void* reserved) { | 91 void CronetOnUnLoad(JavaVM* jvm, void* reserved) { |
90 base::android::LibraryLoaderExitHook(); | 92 base::android::LibraryLoaderExitHook(); |
91 } | 93 } |
92 | 94 |
93 void CronetInitOnMainThread(JNIEnv* env, const JavaParamRef<jclass>& jcaller) { | 95 void CronetInitOnMainThread(JNIEnv* env, const JavaParamRef<jclass>& jcaller) { |
94 #if !defined(USE_ICU_ALTERNATIVES_ON_ANDROID) | 96 #if !BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES) |
95 base::i18n::InitializeICU(); | 97 base::i18n::InitializeICU(); |
96 #endif | 98 #endif |
97 | 99 |
98 // TODO(bengr): Remove once Data Reduction Proxy no longer needs this for | 100 // TODO(bengr): Remove once Data Reduction Proxy no longer needs this for |
99 // configuration information. | 101 // configuration information. |
100 base::CommandLine::Init(0, nullptr); | 102 base::CommandLine::Init(0, nullptr); |
101 DCHECK(!base::MessageLoop::current()); | 103 DCHECK(!base::MessageLoop::current()); |
102 DCHECK(!g_main_message_loop); | 104 DCHECK(!g_main_message_loop); |
103 g_main_message_loop = new base::MessageLoopForUI(); | 105 g_main_message_loop = new base::MessageLoopForUI(); |
104 base::MessageLoopForUI::current()->Start(); | 106 base::MessageLoopForUI::current()->Start(); |
105 DCHECK(!g_network_change_notifier); | 107 DCHECK(!g_network_change_notifier); |
106 net::NetworkChangeNotifier::SetFactory( | 108 net::NetworkChangeNotifier::SetFactory( |
107 new net::NetworkChangeNotifierFactoryAndroid()); | 109 new net::NetworkChangeNotifierFactoryAndroid()); |
108 g_network_change_notifier = net::NetworkChangeNotifier::Create(); | 110 g_network_change_notifier = net::NetworkChangeNotifier::Create(); |
109 } | 111 } |
110 | 112 |
111 ScopedJavaLocalRef<jstring> GetCronetVersion( | 113 ScopedJavaLocalRef<jstring> GetCronetVersion( |
112 JNIEnv* env, | 114 JNIEnv* env, |
113 const JavaParamRef<jclass>& jcaller) { | 115 const JavaParamRef<jclass>& jcaller) { |
114 return base::android::ConvertUTF8ToJavaString(env, CRONET_VERSION); | 116 return base::android::ConvertUTF8ToJavaString(env, CRONET_VERSION); |
115 } | 117 } |
116 | 118 |
117 } // namespace cronet | 119 } // namespace cronet |
OLD | NEW |