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