1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/browser/android/browser_jni_registrar.h"
6
7#include "base/android/jni_android.h"
8#include "base/android/jni_registrar.h"
9#include "content/browser/accessibility/browser_accessibility_android.h"
10#include "content/browser/accessibility/browser_accessibility_manager_android.h"
11#include "content/browser/android/browser_startup_controller.h"
12#include "content/browser/android/child_process_launcher_android.h"
13#include "content/browser/android/content_readback_handler.h"
14#include "content/browser/android/content_settings.h"
15#include "content/browser/android/content_video_view.h"
16#include "content/browser/android/content_view_core_impl.h"
17#include "content/browser/android/content_view_render_view.h"
18#include "content/browser/android/content_view_statics.h"
19#include "content/browser/android/date_time_chooser_android.h"
20#include "content/browser/android/download_controller_android_impl.h"
21#include "content/browser/android/interstitial_page_delegate_android.h"
22#include "content/browser/android/java/java_bound_object.h"
23#include "content/browser/android/load_url_params.h"
24#include "content/browser/android/surface_texture_peer_browser_impl.h"
25#include "content/browser/android/tracing_controller_android.h"
26#include "content/browser/android/web_contents_observer_android.h"
27#include "content/browser/battery_status/battery_status_manager.h"
28#include "content/browser/device_sensors/sensor_manager_android.h"
29#include "content/browser/frame_host/navigation_controller_android.h"
30#include "content/browser/gamepad/gamepad_platform_data_fetcher_android.h"
31#include "content/browser/geolocation/location_api_adapter_android.h"
32#include "content/browser/media/android/media_drm_credential_manager.h"
33#include "content/browser/media/android/media_resource_getter_impl.h"
34#include "content/browser/power_save_blocker_android.h"
35#include "content/browser/renderer_host/ime_adapter_android.h"
36#include "content/browser/renderer_host/input/motion_event_android.h"
37#include "content/browser/renderer_host/input/synthetic_gesture_target_android.h"
38#include "content/browser/screen_orientation/screen_orientation_provider_android.h"
39#include "content/browser/speech/speech_recognizer_impl_android.h"
40#include "content/browser/time_zone_monitor_android.h"
41#include "content/browser/vibration/vibration_provider_android.h"
42#include "content/browser/web_contents/web_contents_android.h"
43
44using content::SurfaceTexturePeerBrowserImpl;
45
46namespace {
47base::android::RegistrationMethod kContentRegisteredMethods[] = {
48    {"AndroidLocationApiAdapter",
49     content::AndroidLocationApiAdapter::RegisterGeolocationService},
50    {"BatteryStatusManager",
51     content::BatteryStatusManager::Register},
52    {"BrowserAccessibilityManager",
53     content::RegisterBrowserAccessibilityManager},
54    {"BrowserStartupController", content::RegisterBrowserStartupController},
55    {"ChildProcessLauncher", content::RegisterChildProcessLauncher},
56    {"ContentReadbackHandler",
57     content::ContentReadbackHandler::RegisterContentReadbackHandler},
58    {"ContentSettings", content::ContentSettings::RegisterContentSettings},
59    {"ContentVideoView", content::ContentVideoView::RegisterContentVideoView},
60    {"ContentViewCore", content::RegisterContentViewCore},
61    {"ContentViewRenderView",
62     content::ContentViewRenderView::RegisterContentViewRenderView},
63    {"DateTimePickerAndroid", content::RegisterDateTimeChooserAndroid},
64    {"DownloadControllerAndroidImpl",
65     content::DownloadControllerAndroidImpl::RegisterDownloadController},
66    {"GamepadList", content::GamepadPlatformDataFetcherAndroid::
67                        RegisterGamepadPlatformDataFetcherAndroid},
68    {"InterstitialPageDelegateAndroid",
69     content::InterstitialPageDelegateAndroid::
70         RegisterInterstitialPageDelegateAndroid},
71    {"LoadUrlParams", content::RegisterLoadUrlParams},
72    {"MediaDrmCredentialManager",
73     content::MediaDrmCredentialManager::RegisterMediaDrmCredentialManager},
74    {"MediaResourceGetterImpl",
75     content::MediaResourceGetterImpl::RegisterMediaResourceGetter},
76    {"MotionEventAndroid",
77     content::MotionEventAndroid::RegisterMotionEventAndroid},
78    {"NavigationControllerAndroid",
79     content::NavigationControllerAndroid::Register},
80    {"PowerSaveBlock", content::RegisterPowerSaveBlocker},
81    {"RegisterImeAdapter", content::RegisterImeAdapter},
82    {"ScreenOrientationProvider",
83     content::ScreenOrientationProviderAndroid::Register},
84    {"SensorManagerAndroid", content::SensorManagerAndroid::Register},
85    {"SpeechRecognizerImplAndroid",
86     content::SpeechRecognizerImplAndroid::RegisterSpeechRecognizer},
87    {"TimeZoneMonitorAndroid", content::TimeZoneMonitorAndroid::Register},
88    {"TouchEventSynthesizer",
89     content::SyntheticGestureTargetAndroid::RegisterTouchEventSynthesizer},
90    {"TracingControllerAndroid", content::RegisterTracingControllerAndroid},
91    {"VibrationProvider", content::VibrationProviderAndroid::Register},
92    {"WebContentsAndroid", content::WebContentsAndroid::Register},
93    {"WebContentsObserverAndroid", content::RegisterWebContentsObserverAndroid},
94    {"WebViewStatics", content::RegisterWebViewStatics},
95};
96
97}  // namespace
98
99namespace content {
100namespace android {
101
102bool RegisterBrowserJni(JNIEnv* env) {
103  return RegisterNativeMethods(env, kContentRegisteredMethods,
104                               arraysize(kContentRegisteredMethods));
105}
106
107}  // namespace android
108}  // namespace content
109