summaryrefslogtreecommitdiffstats
path: root/chrome/browser/android/chrome_jni_registrar.cc
blob: daf507a312ab87acb31d30796f9838bcbd702d40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/android/chrome_jni_registrar.h"

#include "base/android/jni_android.h"
#include "base/android/jni_registrar.h"
#include "base/trace_event/trace_event.h"
#include "chrome/browser/android/accessibility/font_size_prefs_android.h"
#include "chrome/browser/android/accessibility_util.h"
#include "chrome/browser/android/appmenu/app_menu_drag_helper.h"
#include "chrome/browser/android/banners/app_banner_infobar_delegate_android.h"
#include "chrome/browser/android/banners/app_banner_manager_android.h"
#include "chrome/browser/android/bookmark/edit_bookmark_helper.h"
#include "chrome/browser/android/bookmarks/bookmarks_bridge.h"
#include "chrome/browser/android/bookmarks/partner_bookmarks_reader.h"
#include "chrome/browser/android/chrome_application.h"
#include "chrome/browser/android/chrome_web_contents_delegate_android.h"
#include "chrome/browser/android/compositor/compositor_view.h"
#include "chrome/browser/android/compositor/layer_title_cache.h"
#include "chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.h"
#include "chrome/browser/android/compositor/scene_layer/reader_mode_scene_layer.h"
#include "chrome/browser/android/compositor/scene_layer/scene_layer.h"
#include "chrome/browser/android/compositor/scene_layer/static_tab_scene_layer.h"
#include "chrome/browser/android/compositor/scene_layer/tab_list_scene_layer.h"
#include "chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h"
#include "chrome/browser/android/compositor/tab_content_manager.h"
#include "chrome/browser/android/contextualsearch/contextual_search_manager.h"
#include "chrome/browser/android/contextualsearch/contextual_search_tab_helper.h"
#include "chrome/browser/android/cookies/cookies_fetcher.h"
#include "chrome/browser/android/dev_tools_server.h"
#include "chrome/browser/android/document/document_web_contents_delegate.h"
#include "chrome/browser/android/dom_distiller/external_feedback_reporter_android.h"
#include "chrome/browser/android/download/chrome_download_delegate.h"
#include "chrome/browser/android/favicon_helper.h"
#include "chrome/browser/android/feature_utilities.h"
#include "chrome/browser/android/feedback/connectivity_checker.h"
#include "chrome/browser/android/find_in_page/find_in_page_bridge.h"
#include "chrome/browser/android/foreign_session_helper.h"
#include "chrome/browser/android/fullscreen/fullscreen_infobar_delegate.h"
#include "chrome/browser/android/history_report/history_report_jni_bridge.h"
#include "chrome/browser/android/intent_helper.h"
#include "chrome/browser/android/java_exception_reporter.h"
#include "chrome/browser/android/large_icon_bridge.h"
#include "chrome/browser/android/location_settings_impl.h"
#include "chrome/browser/android/logo_bridge.h"
#include "chrome/browser/android/metrics/launch_metrics.h"
#include "chrome/browser/android/metrics/uma_session_stats.h"
#include "chrome/browser/android/metrics/uma_utils.h"
#include "chrome/browser/android/metrics/variations_session.h"
#include "chrome/browser/android/most_visited_sites.h"
#include "chrome/browser/android/new_tab_page_prefs.h"
#include "chrome/browser/android/offline_pages/offline_page_bridge.h"
#include "chrome/browser/android/omnibox/answers_image_bridge.h"
#include "chrome/browser/android/omnibox/autocomplete_controller_android.h"
#include "chrome/browser/android/omnibox/omnibox_prerender.h"
#include "chrome/browser/android/password_ui_view_android.h"
#include "chrome/browser/android/precache/precache_launcher.h"
#include "chrome/browser/android/preferences/autofill/autofill_profile_bridge.h"
#include "chrome/browser/android/preferences/pref_service_bridge.h"
#include "chrome/browser/android/preferences/website_preference_bridge.h"
#include "chrome/browser/android/profiles/profile_downloader_android.h"
#include "chrome/browser/android/provider/chrome_browser_provider.h"
#include "chrome/browser/android/recently_closed_tabs_bridge.h"
#include "chrome/browser/android/rlz/revenue_stats.h"
#include "chrome/browser/android/shortcut_helper.h"
#include "chrome/browser/android/signin/account_management_screen_helper.h"
#include "chrome/browser/android/signin/signin_manager_android.h"
#include "chrome/browser/android/tab/thumbnail_tab_helper_android.h"
#include "chrome/browser/android/tab_android.h"
#include "chrome/browser/android/tab_state.h"
#include "chrome/browser/android/url_utilities.h"
#include "chrome/browser/android/voice_search_tab_helper.h"
#include "chrome/browser/android/warmup_manager.h"
#include "chrome/browser/android/web_contents_factory.h"
#include "chrome/browser/autofill/android/personal_data_manager_android.h"
#include "chrome/browser/dom_distiller/dom_distiller_service_factory_android.h"
#include "chrome/browser/dom_distiller/tab_utils_android.h"
#include "chrome/browser/history/android/sqlite_cursor.h"
#include "chrome/browser/invalidation/invalidation_service_factory_android.h"
#include "chrome/browser/lifetime/application_lifetime_android.h"
#include "chrome/browser/media/android/remote/record_cast_action.h"
#include "chrome/browser/media/android/remote/remote_media_player_bridge.h"
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.h"
#include "chrome/browser/notifications/notification_ui_manager_android.h"
#include "chrome/browser/password_manager/credential_android.h"
#include "chrome/browser/permissions/permission_update_infobar_delegate_android.h"
#include "chrome/browser/prerender/external_prerender_handler_android.h"
#include "chrome/browser/profiles/profile_android.h"
#include "chrome/browser/search_engines/template_url_service_android.h"
#include "chrome/browser/signin/oauth2_token_service_delegate_android.h"
#include "chrome/browser/speech/tts_android.h"
#include "chrome/browser/ssl/connection_security_android.h"
#include "chrome/browser/supervised_user/child_accounts/child_account_feedback_reporter_android.h"
#include "chrome/browser/supervised_user/child_accounts/child_account_service_android.h"
#include "chrome/browser/sync/profile_sync_service_android.h"
#include "chrome/browser/ui/android/autofill/autofill_dialog_controller_android.h"
#include "chrome/browser/ui/android/autofill/autofill_dialog_result.h"
#include "chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.h"
#include "chrome/browser/ui/android/autofill/autofill_logger_android.h"
#include "chrome/browser/ui/android/autofill/autofill_popup_view_android.h"
#include "chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.h"
#include "chrome/browser/ui/android/autofill/credit_card_scanner_view_android.h"
#include "chrome/browser/ui/android/autofill/password_generation_popup_view_android.h"
#include "chrome/browser/ui/android/certificate_viewer_android.h"
#include "chrome/browser/ui/android/chrome_http_auth_handler.h"
#include "chrome/browser/ui/android/connection_info_popup_android.h"
#include "chrome/browser/ui/android/context_menu_helper.h"
#include "chrome/browser/ui/android/infobars/account_chooser_infobar.h"
#include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h"
#include "chrome/browser/ui/android/infobars/confirm_infobar.h"
#include "chrome/browser/ui/android/infobars/data_reduction_proxy_infobar.h"
#include "chrome/browser/ui/android/infobars/download_overwrite_infobar.h"
#include "chrome/browser/ui/android/infobars/generated_password_saved_infobar.h"
#include "chrome/browser/ui/android/infobars/infobar_android.h"
#include "chrome/browser/ui/android/infobars/infobar_container_android.h"
#include "chrome/browser/ui/android/infobars/save_password_infobar.h"
#include "chrome/browser/ui/android/infobars/translate_infobar.h"
#include "chrome/browser/ui/android/javascript_app_modal_dialog_android.h"
#include "chrome/browser/ui/android/navigation_popup.h"
#include "chrome/browser/ui/android/omnibox/omnibox_url_emphasizer.h"
#include "chrome/browser/ui/android/omnibox/omnibox_view_util.h"
#include "chrome/browser/ui/android/ssl_client_certificate_request.h"
#include "chrome/browser/ui/android/tab_model/single_tab_model.h"
#include "chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h"
#include "chrome/browser/ui/android/toolbar/toolbar_model_android.h"
#include "chrome/browser/ui/android/website_settings_popup_android.h"
#include "components/bookmarks/common/android/component_jni_registrar.h"
#include "components/dom_distiller/android/component_jni_registrar.h"
#include "components/gcm_driver/android/component_jni_registrar.h"
#include "components/invalidation/impl/android/component_jni_registrar.h"
#include "components/navigation_interception/component_jni_registrar.h"
#include "components/policy/core/browser/android/component_jni_registrar.h"
#include "components/safe_json/android/component_jni_registrar.h"
#include "components/service_tab_launcher/component_jni_registrar.h"
#include "components/signin/core/browser/android/component_jni_registrar.h"
#include "components/variations/android/component_jni_registrar.h"
#include "components/web_contents_delegate_android/component_jni_registrar.h"

#if defined(ENABLE_PRINTING) && !defined(ENABLE_PRINT_PREVIEW)
#include "printing/printing_context_android.h"
#endif

namespace chrome {
namespace android {

static base::android::RegistrationMethod kChromeRegisteredMethods[] = {
    // Register JNI for components we depend on.
    {"AppMenuDragHelper", RegisterAppMenuDragHelper},
    {"Bookmarks", bookmarks::android::RegisterBookmarks},
    {"DomDistiller", dom_distiller::android::RegisterDomDistiller},
    {"ChromeDownloadDelegate", RegisterChromeDownloadDelegate},
    {"GCMDriver", gcm::android::RegisterGCMDriverJni},
    {"Invalidation", invalidation::android::RegisterInvalidationJni},
    {"NavigationInterception",
     navigation_interception::RegisterNavigationInterceptionJni},
    {"Policy", policy::android::RegisterPolicy},
    {"SafeJson", safe_json::android::RegisterSafeJsonJni},
    {"Signin", signin::android::RegisterSigninJni},
    {"WebContentsDelegateAndroid",
     web_contents_delegate_android::RegisterWebContentsDelegateAndroidJni},
    // Register JNI for chrome classes.
    {"AccessibilityUtils", AccessibilityUtil::Register},
    {"AccountChooserInfoBar", RegisterAccountChooserInfoBar},
    {"AccountManagementScreenHelper", AccountManagementScreenHelper::Register},
    {"AnswersImageBridge", RegisterAnswersImageBridge},
    {"AppBannerInfoBarAndroid", RegisterAppBannerInfoBarAndroid},
    {"AppBannerInfoBarDelegateAndroid",
     banners::RegisterAppBannerInfoBarDelegateAndroid},
    {"AppBannerManagerAndroid", banners::AppBannerManagerAndroid::Register},
    {"ApplicationLifetime", RegisterApplicationLifetimeAndroid},
    {"AutocompleteControllerAndroid", RegisterAutocompleteControllerAndroid},
    {"AutofillDialogControllerAndroid",
     autofill::AutofillDialogControllerAndroid::
         RegisterAutofillDialogControllerAndroid},
    {"AutofillDialogResult",
     autofill::AutofillDialogResult::RegisterAutofillDialogResult},
    {"AutofillKeyboardAccessory", autofill::AutofillKeyboardAccessoryView::
                                      RegisterAutofillKeyboardAccessoryView},
    {"AutofillLoggerAndroid", autofill::AutofillLoggerAndroid::Register},
    {"AutofillPopup",
     autofill::AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid},
    {"AutofillProfileBridge", autofill::RegisterAutofillProfileBridge},
    {"BookmarksBridge", BookmarksBridge::RegisterBookmarksBridge},
    {"CardUnmaskPrompt", autofill::CardUnmaskPromptViewAndroid::Register},
    {"CertificateViewer", RegisterCertificateViewer},
    {"ChildAccountFeedbackReporter", RegisterChildAccountFeedbackReporter},
    {"ChildAccountService", RegisterChildAccountService},
    {"ChromeApplication", ChromeApplication::RegisterBindings},
    {"ChromeBrowserProvider",
     ChromeBrowserProvider::RegisterChromeBrowserProvider},
    {"ChromeHttpAuthHandler",
     ChromeHttpAuthHandler::RegisterChromeHttpAuthHandler},
    {"ChromeWebContentsDelegateAndroid",
     RegisterChromeWebContentsDelegateAndroid},
    {"CompositorView", RegisterCompositorView},
    {"ConfirmInfoBarDelegate", RegisterConfirmInfoBarDelegate},
    {"ConnectionInfoPopupAndroid",
     ConnectionInfoPopupAndroid::RegisterConnectionInfoPopupAndroid},
    {"ConnectionSecurity", RegisterConnectionSecurityAndroid},
    {"ConnectivityChecker", RegisterConnectivityChecker},
    {"ContextMenuHelper", RegisterContextMenuHelper},
    {"ContextualSearchManager", RegisterContextualSearchManager},
    {"ContextualSearchSceneLayer", RegisterContextualSearchSceneLayer},
    {"ContextualSearchTabHelper", RegisterContextualSearchTabHelper},
    {"CookiesFetcher", RegisterCookiesFetcher},
    {"Credential", RegisterCredential},
    {"CreditCardScanner", autofill::CreditCardScannerViewAndroid::Register},
    {"DataReductionProxyInfoBarDelegate", DataReductionProxyInfoBar::Register},
    {"DataReductionProxySettings", DataReductionProxySettingsAndroid::Register},
    {"DevToolsServer", RegisterDevToolsServer},
    {"DocumentWebContentsDelegate", DocumentWebContentsDelegate::Register},
    {"DomDistillerServiceFactory",
     dom_distiller::android::DomDistillerServiceFactoryAndroid::Register},
    {"DomDistillerTabUtils", RegisterDomDistillerTabUtils},
    {"DownloadOverwriteInfoBarDelegate",
     RegisterDownloadOverwriteInfoBarDelegate},
    {"EditBookmarkHelper", RegisterEditBookmarkHelper},
    {"ExternalPrerenderRequestHandler",
     prerender::ExternalPrerenderHandlerAndroid::
         RegisterExternalPrerenderHandlerAndroid},
    {"FaviconHelper", FaviconHelper::RegisterFaviconHelper},
    {"FeatureUtilities", RegisterFeatureUtilities},
    {"FeedbackReporter", dom_distiller::android::RegisterFeedbackReporter},
    {"FindInPageBridge", FindInPageBridge::RegisterFindInPageBridge},
    {"FontSizePrefsAndroid", FontSizePrefsAndroid::Register},
    {"ForeignSessionHelper",
     ForeignSessionHelper::RegisterForeignSessionHelper},
    {"FullscreenInfoBarDelegate",
     FullscreenInfoBarDelegate::RegisterFullscreenInfoBarDelegate},
    {"GeneratedPasswordSavedInfoBarDelegate",
     RegisterGeneratedPasswordSavedInfoBarDelegate},
    {"HistoryReportJniBridge", history_report::RegisterHistoryReportJniBridge},
    {"InfoBarContainer", RegisterInfoBarContainer},
    {"InvalidationServiceFactory",
     invalidation::InvalidationServiceFactoryAndroid::Register},
    {"ShortcutHelper", ShortcutHelper::RegisterShortcutHelper},
    {"IntentHelper", RegisterIntentHelper},
    {"JavaExceptionReporter", RegisterJavaExceptionReporterJni},
    {"JavascriptAppModalDialog",
     JavascriptAppModalDialogAndroid::RegisterJavascriptAppModalDialog},
    {"LargeIconBridge", LargeIconBridge::RegisterLargeIconBridge},
    {"LaunchMetrics", metrics::RegisterLaunchMetrics},
    {"LayerTitleCache", chrome::android::RegisterLayerTitleCache},
    {"LocationSettings", LocationSettingsImpl::Register},
    {"LogoBridge", RegisterLogoBridge},
    {"MostVisitedSites", MostVisitedSites::Register},
    {"NativeInfoBar", RegisterNativeInfoBar},
    {"NavigationPopup", NavigationPopup::RegisterNavigationPopup},
    {"NewTabPagePrefs", NewTabPagePrefs::RegisterNewTabPagePrefs},
    {"NotificationUIManager",
     NotificationUIManagerAndroid::RegisterNotificationUIManager},
    {"OAuth2TokenServiceDelegateAndroid",
     OAuth2TokenServiceDelegateAndroid::Register},
    {"OfflinePageBridge", offline_pages::android::RegisterOfflinePageBridge},
    {"OmniboxPrerender", RegisterOmniboxPrerender},
    {"OmniboxUrlEmphasizer",
     OmniboxUrlEmphasizer::RegisterOmniboxUrlEmphasizer},
    {"OmniboxViewUtil", OmniboxViewUtil::RegisterOmniboxViewUtil},
    {"PartnerBookmarksReader",
     PartnerBookmarksReader::RegisterPartnerBookmarksReader},
    {"PasswordGenerationPopup",
     autofill::PasswordGenerationPopupViewAndroid::Register},
    {"PasswordUIViewAndroid",
     PasswordUIViewAndroid::RegisterPasswordUIViewAndroid},
    {"PermissionUpdateInfoBarDelegate",
     PermissionUpdateInfoBarDelegate::RegisterPermissionUpdateInfoBarDelegate},
    {"PersonalDataManagerAndroid",
     autofill::PersonalDataManagerAndroid::Register},
    {"PrecacheLauncher", RegisterPrecacheLauncher},
    {"PrefServiceBridge", PrefServiceBridge::RegisterPrefServiceBridge},
    {"ProfileAndroid", ProfileAndroid::RegisterProfileAndroid},
    {"ProfileDownloader", RegisterProfileDownloader},
    {"ProfileSyncService", ProfileSyncServiceAndroid::Register},
    {"ReaderModeSceneLayer", RegisterReaderModeSceneLayer},
    {"RecentlyClosedBridge", RecentlyClosedTabsBridge::Register},
    {"RecordCastAction", remote_media::RegisterRecordCastAction},
    {"RemoteMediaPlayerBridge",
     remote_media::RemoteMediaPlayerBridge::RegisterRemoteMediaPlayerBridge},
    {"RevenueStats", RegisterRevenueStats},
    {"SavePasswordInfoBar", SavePasswordInfoBar::Register},
    {"SceneLayer", chrome::android::RegisterSceneLayer},
    {"ServiceTabLauncher", service_tab_launcher::RegisterServiceTabLauncherJni},
    {"SigninManager", SigninManagerAndroid::Register},
    {"SingleTabModel", RegisterSingleTabModel},
    {"SqliteCursor", SQLiteCursor::RegisterSqliteCursor},
    {"SSLClientCertificateRequest", RegisterSSLClientCertificateRequestAndroid},
    {"StartupMetricUtils", RegisterStartupMetricUtils},
    {"StaticTabSceneLayer", chrome::android::RegisterStaticTabSceneLayer},
    {"TabAndroid", TabAndroid::RegisterTabAndroid},
    {"TabContentManager", chrome::android::RegisterTabContentManager},
    {"TabListSceneLayer", RegisterTabListSceneLayer},
    {"TabModelJniBridge", TabModelJniBridge::Register},
    {"TabState", RegisterTabState},
    {"TabStripSceneLayer", RegisterTabStripSceneLayer},
    {"TemplateUrlServiceAndroid", TemplateUrlServiceAndroid::Register},
    {"ThumbnailTabHelperAndroid", RegisterThumbnailTabHelperAndroid},
    {"ToolbarModelAndroid", ToolbarModelAndroid::RegisterToolbarModelAndroid},
    {"TranslateInfoBarDelegate", RegisterTranslateInfoBarDelegate},
    {"TtsPlatformImpl", TtsPlatformImplAndroid::Register},
    {"UmaSessionStats", RegisterUmaSessionStats},
    {"UrlUtilities", RegisterUrlUtilities},
    {"Variations", variations::android::RegisterVariations},
    {"VariationsSession", chrome::android::RegisterVariationsSession},
    {"WarmupManager", RegisterWarmupManager},
    {"WebContentsFactory", RegisterWebContentsFactory},
    {"WebsitePreferenceBridge", RegisterWebsitePreferenceBridge},
    {"WebsiteSettingsPopupAndroid",
     WebsiteSettingsPopupAndroid::RegisterWebsiteSettingsPopupAndroid},
#if defined(ENABLE_PRINTING) && !defined(ENABLE_PRINT_PREVIEW)
    {"PrintingContext",
     printing::PrintingContextAndroid::RegisterPrintingContext},
#endif
};

bool RegisterBrowserJNI(JNIEnv* env) {
  TRACE_EVENT0("startup", "chrome_android::RegisterJni");
  return RegisterNativeMethods(env, kChromeRegisteredMethods,
                               arraysize(kChromeRegisteredMethods));
}

}  // namespace android
}  // namespace chrome