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