chrome_jni_registrar.cc revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
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 "chrome/browser/android/chrome_jni_registrar.h" 6 7#include "base/android/jni_android.h" 8#include "base/android/jni_registrar.h" 9#include "base/debug/trace_event.h" 10#include "chrome/browser/android/bookmarks_bridge.h" 11#include "chrome/browser/android/chrome_web_contents_delegate_android.h" 12#include "chrome/browser/android/chromium_application.h" 13#include "chrome/browser/android/content_view_util.h" 14#include "chrome/browser/android/dev_tools_server.h" 15#include "chrome/browser/android/favicon_helper.h" 16#include "chrome/browser/android/field_trial_helper.h" 17#include "chrome/browser/android/foreign_session_helper.h" 18#include "chrome/browser/android/intent_helper.h" 19#include "chrome/browser/android/most_visited_sites.h" 20#include "chrome/browser/android/omnibox/omnibox_prerender.h" 21#include "chrome/browser/android/provider/chrome_browser_provider.h" 22#include "chrome/browser/android/shortcut_helper.h" 23#include "chrome/browser/android/signin/signin_manager_android.h" 24#include "chrome/browser/android/tab_android.h" 25#include "chrome/browser/android/uma_utils.h" 26#include "chrome/browser/android/url_utilities.h" 27#include "chrome/browser/autofill/android/personal_data_manager_android.h" 28#include "chrome/browser/history/android/sqlite_cursor.h" 29#include "chrome/browser/invalidation/invalidation_controller_android.h" 30#include "chrome/browser/lifetime/application_lifetime_android.h" 31#include "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.h" 32#include "chrome/browser/profiles/profile_android.h" 33#include "chrome/browser/search_engines/template_url_service_android.h" 34#include "chrome/browser/signin/android_profile_oauth2_token_service.h" 35#include "chrome/browser/speech/tts_android.h" 36#include "chrome/browser/sync/profile_sync_service_android.h" 37#include "chrome/browser/ui/android/autofill/autofill_dialog_controller_android.h" 38#include "chrome/browser/ui/android/autofill/autofill_dialog_result.h" 39#include "chrome/browser/ui/android/autofill/autofill_popup_view_android.h" 40#include "chrome/browser/ui/android/chrome_http_auth_handler.h" 41#include "chrome/browser/ui/android/infobars/auto_login_infobar_delegate_android.h" 42#include "chrome/browser/ui/android/infobars/confirm_infobar.h" 43#include "chrome/browser/ui/android/infobars/infobar_android.h" 44#include "chrome/browser/ui/android/infobars/infobar_container_android.h" 45#include "chrome/browser/ui/android/infobars/translate_infobar.h" 46#include "chrome/browser/ui/android/javascript_app_modal_dialog_android.h" 47#include "chrome/browser/ui/android/navigation_popup.h" 48#include "chrome/browser/ui/android/ssl_client_certificate_request.h" 49#include "chrome/browser/ui/android/validation_message_bubble_android.h" 50#include "chrome/browser/ui/android/website_settings_popup_android.h" 51#include "components/autofill/core/browser/android/component_jni_registrar.h" 52#include "components/navigation_interception/component_jni_registrar.h" 53#include "components/web_contents_delegate_android/component_jni_registrar.h" 54 55bool RegisterCertificateViewer(JNIEnv* env); 56 57namespace chrome { 58namespace android { 59 60static base::android::RegistrationMethod kChromeRegisteredMethods[] = { 61 // Register JNI for components we depend on. 62 { "NavigationInterception", 63 navigation_interception::RegisterNavigationInterceptionJni }, 64 { "WebContentsDelegateAndroid", 65 web_contents_delegate_android::RegisterWebContentsDelegateAndroidJni }, 66 { "RegisterAuxiliaryProfileLoader", autofill::RegisterAutofillAndroidJni }, 67 // Register JNI for chrome classes. 68 { "AndroidProfileOAuth2TokenService", 69 AndroidProfileOAuth2TokenService::Register }, 70 { "ApplicationLifetime", RegisterApplicationLifetimeAndroid }, 71 { "AutofillDialogControllerAndroid", 72 autofill::AutofillDialogControllerAndroid:: 73 RegisterAutofillDialogControllerAndroid }, 74 { "AutofillDialogResult", 75 autofill::AutofillDialogResult::RegisterAutofillDialogResult }, 76 { "AutofillPopup", 77 autofill::AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid }, 78 {"AutoLoginDelegate", AutoLoginInfoBarDelegateAndroid::Register}, 79 { "BookmarksBridge", BookmarksBridge::RegisterBookmarksBridge }, 80 { "CertificateViewer", RegisterCertificateViewer }, 81 { "ChromeBrowserProvider", 82 ChromeBrowserProvider::RegisterChromeBrowserProvider }, 83 { "ChromeHttpAuthHandler", 84 ChromeHttpAuthHandler::RegisterChromeHttpAuthHandler }, 85 { "ChromeWebContentsDelegateAndroid", 86 RegisterChromeWebContentsDelegateAndroid }, 87 { "ChromiumApplication", 88 ChromiumApplication::RegisterBindings }, 89 {"ConfirmInfoBarDelegate", RegisterConfirmInfoBarDelegate}, 90 { "ContentViewUtil", RegisterContentViewUtil }, 91 { "DevToolsServer", RegisterDevToolsServer }, 92 { "InvalidationController", invalidation::RegisterInvalidationController }, 93 { "FaviconHelper", FaviconHelper::RegisterFaviconHelper }, 94 { "FieldTrialHelper", RegisterFieldTrialHelper }, 95 { "ForeignSessionHelper", 96 ForeignSessionHelper::RegisterForeignSessionHelper }, 97 {"InfoBarContainer", RegisterInfoBarContainer}, 98 { "ShortcutHelper", ShortcutHelper::RegisterShortcutHelper }, 99 { "IntentHelper", RegisterIntentHelper }, 100 { "JavascriptAppModalDialog", 101 JavascriptAppModalDialogAndroid::RegisterJavascriptAppModalDialog }, 102 { "MostVisitedSites", RegisterMostVisitedSites }, 103 {"NativeInfoBar", RegisterNativeInfoBar}, 104 { "NavigationPopup", NavigationPopup::RegisterNavigationPopup }, 105 { "OmniboxPrerender", RegisterOmniboxPrerender }, 106 { "PersonalDataManagerAndroid", 107 autofill::PersonalDataManagerAndroid::Register }, 108 { "ProfileAndroid", ProfileAndroid::RegisterProfileAndroid }, 109 { "ProfileSyncService", ProfileSyncServiceAndroid::Register }, 110 { "DataReductionProxySettings", DataReductionProxySettingsAndroid::Register }, 111 { "SigninManager", SigninManagerAndroid::Register }, 112 { "SqliteCursor", SQLiteCursor::RegisterSqliteCursor }, 113 { "SSLClientCertificateRequest", RegisterSSLClientCertificateRequestAndroid }, 114 { "StartupMetricUtils", RegisterStartupMetricUtils }, 115 { "TabAndroid", TabAndroid::RegisterTabAndroid }, 116 { "TemplateUrlServiceAndroid", TemplateUrlServiceAndroid::Register }, 117 { "TranslateInfoBarDelegate", RegisterTranslateInfoBarDelegate}, 118 { "TtsPlatformImpl", TtsPlatformImplAndroid::Register }, 119 {"UrlUtilities", RegisterUrlUtilities}, 120 { "ValidationMessageBubbleAndroid", 121 ValidationMessageBubbleAndroid::Register }, 122 { "WebsiteSettingsPopupAndroid", 123 WebsiteSettingsPopupAndroid::RegisterWebsiteSettingsPopupAndroid }, 124}; 125 126bool RegisterJni(JNIEnv* env) { 127 TRACE_EVENT0("startup", "chrome_android::RegisterJni"); 128 return RegisterNativeMethods(env, kChromeRegisteredMethods, 129 arraysize(kChromeRegisteredMethods)); 130} 131 132} // namespace android 133} // namespace chrome 134