chrome_jni_registrar.cc revision 3551c9c881056c480085172ff9840cab31610854
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/content_view_util.h" 13#include "chrome/browser/android/dev_tools_server.h" 14#include "chrome/browser/android/favicon_helper.h" 15#include "chrome/browser/android/field_trial_helper.h" 16#include "chrome/browser/android/foreign_session_helper.h" 17#include "chrome/browser/android/intent_helper.h" 18#include "chrome/browser/android/most_visited_sites.h" 19#include "chrome/browser/android/omnibox/omnibox_prerender.h" 20#include "chrome/browser/android/provider/chrome_browser_provider.h" 21#include "chrome/browser/android/shortcut_helper.h" 22#include "chrome/browser/android/signin/signin_manager_android.h" 23#include "chrome/browser/android/tab_android.h" 24#include "chrome/browser/autofill/android/personal_data_manager_android.h" 25#include "chrome/browser/history/android/sqlite_cursor.h" 26#include "chrome/browser/lifetime/application_lifetime_android.h" 27#include "chrome/browser/profiles/profile_android.h" 28#include "chrome/browser/search_engines/template_url_service_android.h" 29#include "chrome/browser/signin/android_profile_oauth2_token_service.h" 30#include "chrome/browser/speech/tts_android.h" 31#include "chrome/browser/sync/profile_sync_service_android.h" 32#include "chrome/browser/ui/android/autofill/autofill_dialog_controller_android.h" 33#include "chrome/browser/ui/android/autofill/autofill_dialog_result.h" 34#include "chrome/browser/ui/android/autofill/autofill_popup_view_android.h" 35#include "chrome/browser/ui/android/chrome_http_auth_handler.h" 36#include "chrome/browser/ui/android/javascript_app_modal_dialog_android.h" 37#include "chrome/browser/ui/android/navigation_popup.h" 38#include "chrome/browser/ui/android/ssl_client_certificate_request.h" 39#include "chrome/browser/ui/android/validation_message_bubble_android.h" 40#include "chrome/browser/ui/android/website_settings_popup_android.h" 41#include "components/autofill/core/browser/android/component_jni_registrar.h" 42#include "components/navigation_interception/component_jni_registrar.h" 43#include "components/web_contents_delegate_android/component_jni_registrar.h" 44 45bool RegisterCertificateViewer(JNIEnv* env); 46 47namespace chrome { 48namespace android { 49 50static base::android::RegistrationMethod kChromeRegisteredMethods[] = { 51 // Register JNI for components we depend on. 52 { "NavigationInterception", 53 navigation_interception::RegisterNavigationInterceptionJni }, 54 { "WebContentsDelegateAndroid", 55 web_contents_delegate_android::RegisterWebContentsDelegateAndroidJni }, 56 { "RegisterAuxiliaryProfileLoader", autofill::RegisterAutofillAndroidJni }, 57 // Register JNI for chrome classes. 58 { "AndroidProfileOAuth2TokenService", 59 AndroidProfileOAuth2TokenService::Register }, 60 { "ApplicationLifetime", RegisterApplicationLifetimeAndroid }, 61 { "AutofillDialogControllerAndroid", 62 autofill::AutofillDialogControllerAndroid:: 63 RegisterAutofillDialogControllerAndroid }, 64 { "AutofillDialogResult", 65 autofill::AutofillDialogResult::RegisterAutofillDialogResult }, 66 { "AutofillPopup", 67 autofill::AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid }, 68 { "BookmarksBridge", BookmarksBridge::RegisterBookmarksBridge }, 69 { "CertificateViewer", RegisterCertificateViewer }, 70 { "ChromeBrowserProvider", 71 ChromeBrowserProvider::RegisterChromeBrowserProvider }, 72 { "ChromeHttpAuthHandler", 73 ChromeHttpAuthHandler::RegisterChromeHttpAuthHandler }, 74 { "ChromeWebContentsDelegateAndroid", 75 RegisterChromeWebContentsDelegateAndroid }, 76 { "ContentViewUtil", RegisterContentViewUtil }, 77 { "DevToolsServer", RegisterDevToolsServer }, 78 { "FaviconHelper", FaviconHelper::RegisterFaviconHelper }, 79 { "FieldTrialHelper", RegisterFieldTrialHelper }, 80 { "ForeignSessionHelper", 81 ForeignSessionHelper::RegisterForeignSessionHelper }, 82 { "ShortcutHelper", ShortcutHelper::RegisterShortcutHelper }, 83 { "IntentHelper", RegisterIntentHelper }, 84 { "JavascriptAppModalDialog", 85 JavascriptAppModalDialogAndroid::RegisterJavascriptAppModalDialog }, 86 { "MostVisitedSites", RegisterMostVisitedSites }, 87 { "NavigationPopup", NavigationPopup::RegisterNavigationPopup }, 88 { "OmniboxPrerender", RegisterOmniboxPrerender }, 89 { "PersonalDataManagerAndroid", 90 autofill::PersonalDataManagerAndroid::Register }, 91 { "ProfileAndroid", ProfileAndroid::RegisterProfileAndroid }, 92 { "ProfileSyncService", ProfileSyncServiceAndroid::Register }, 93 { "SigninManager", SigninManagerAndroid::Register }, 94 { "SqliteCursor", SQLiteCursor::RegisterSqliteCursor }, 95 { "SSLClientCertificateRequest", RegisterSSLClientCertificateRequestAndroid }, 96 { "TabAndroid", TabAndroid::RegisterTabAndroid }, 97 { "TemplateUrlServiceAndroid", TemplateUrlServiceAndroid::Register }, 98 { "TtsPlatformImpl", TtsPlatformImplAndroid::Register }, 99 { "ValidationMessageBubbleAndroid", 100 ValidationMessageBubbleAndroid::Register }, 101 { "WebsiteSettingsPopupAndroid", 102 WebsiteSettingsPopupAndroid::RegisterWebsiteSettingsPopupAndroid }, 103}; 104 105bool RegisterJni(JNIEnv* env) { 106 TRACE_EVENT0("startup", "chrome_android::RegisterJni"); 107 return RegisterNativeMethods(env, kChromeRegisteredMethods, 108 arraysize(kChromeRegisteredMethods)); 109} 110 111} // namespace android 112} // namespace chrome 113