15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/android/chrome_jni_registrar.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_android.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_registrar.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/debug/trace_event.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/android/chrome_web_contents_delegate_android.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/android/content_view_util.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/android/dev_tools_server.h" 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "chrome/browser/android/favicon_helper.h" 14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/android/field_trial_helper.h" 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "chrome/browser/android/foreign_session_helper.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/android/intent_helper.h" 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "chrome/browser/android/most_visited_sites.h" 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "chrome/browser/android/omnibox/omnibox_prerender.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/android/provider/chrome_browser_provider.h" 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/android/signin/signin_manager_android.h" 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/android/tab_android.h" 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/autofill/android/personal_data_manager_android.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/history/android/sqlite_cursor.h" 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/lifetime/application_lifetime_android.h" 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/profiles/profile_android.h" 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/search_engines/template_url_service_android.h" 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/signin/android_profile_oauth2_token_service.h" 2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/speech/tts_android.h" 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/sync/profile_sync_service_android.h" 304311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch#include "chrome/browser/ui/android/autofill/autofill_dialog_controller_android.h" 314311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch#include "chrome/browser/ui/android/autofill/autofill_dialog_result.h" 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/android/autofill/autofill_popup_view_android.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/android/chrome_http_auth_handler.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/android/javascript_app_modal_dialog_android.h" 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/android/navigation_popup.h" 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/android/ssl_client_certificate_request.h" 37868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/browser/ui/android/validation_message_bubble_android.h" 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/android/website_settings_popup_android.h" 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/android/component_jni_registrar.h" 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "components/navigation_interception/component_jni_registrar.h" 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "components/web_contents_delegate_android/component_jni_registrar.h" 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool RegisterCertificateViewer(JNIEnv* env); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome { 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static base::android::RegistrationMethod kChromeRegisteredMethods[] = { 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Register JNI for components we depend on. 5090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) { "NavigationInterception", 5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) navigation_interception::RegisterNavigationInterceptionJni }, 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "WebContentsDelegateAndroid", 53868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) web_contents_delegate_android::RegisterWebContentsDelegateAndroidJni }, 5490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) { "RegisterAuxiliaryProfileLoader", autofill::RegisterAutofillAndroidJni }, 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Register JNI for chrome classes. 567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch { "AndroidProfileOAuth2TokenService", 577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch AndroidProfileOAuth2TokenService::Register }, 5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) { "ApplicationLifetime", RegisterApplicationLifetimeAndroid }, 594311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch { "AutofillDialogControllerAndroid", 604311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch autofill::AutofillDialogControllerAndroid:: 614311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch RegisterAutofillDialogControllerAndroid }, 624311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch { "AutofillDialogResult", 634311e82a78ceafbe0585f51d4c8a86df9f21aa0dBen Murdoch autofill::AutofillDialogResult::RegisterAutofillDialogResult }, 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "AutofillPopup", 6590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) autofill::AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid }, 6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) { "CertificateViewer", RegisterCertificateViewer }, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "ChromeBrowserProvider", 6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ChromeBrowserProvider::RegisterChromeBrowserProvider }, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "ChromeHttpAuthHandler", 7090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ChromeHttpAuthHandler::RegisterChromeHttpAuthHandler }, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "ChromeWebContentsDelegateAndroid", 7290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) RegisterChromeWebContentsDelegateAndroid }, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "ContentViewUtil", RegisterContentViewUtil }, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "DevToolsServer", RegisterDevToolsServer }, 75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch { "FaviconHelper", FaviconHelper::RegisterFaviconHelper }, 76ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch { "FieldTrialHelper", RegisterFieldTrialHelper }, 77a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) { "ForeignSessionHelper", 78a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) ForeignSessionHelper::RegisterForeignSessionHelper }, 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "IntentHelper", RegisterIntentHelper }, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "JavascriptAppModalDialog", 8190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) JavascriptAppModalDialogAndroid::RegisterJavascriptAppModalDialog }, 82eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch { "MostVisitedSites", RegisterMostVisitedSites }, 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "NavigationPopup", NavigationPopup::RegisterNavigationPopup }, 84a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) { "OmniboxPrerender", RegisterOmniboxPrerender }, 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "PersonalDataManagerAndroid", 8690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) autofill::PersonalDataManagerAndroid::Register }, 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "ProfileAndroid", ProfileAndroid::RegisterProfileAndroid }, 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "ProfileSyncService", ProfileSyncServiceAndroid::Register }, 897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch { "SigninManager", SigninManagerAndroid::Register }, 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "SqliteCursor", SQLiteCursor::RegisterSqliteCursor }, 9190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) { "SSLClientCertificateRequest", RegisterSSLClientCertificateRequestAndroid }, 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { "TabAndroid", TabAndroid::RegisterTabAndroid }, 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "TemplateUrlServiceAndroid", TemplateUrlServiceAndroid::Register }, 9490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) { "TtsPlatformImpl", TtsPlatformImplAndroid::Register }, 95868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) { "ValidationMessageBubbleAndroid", 96868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ValidationMessageBubbleAndroid::Register }, 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { "WebsiteSettingsPopupAndroid", 9890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebsiteSettingsPopupAndroid::RegisterWebsiteSettingsPopupAndroid }, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool RegisterJni(JNIEnv* env) { 102c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TRACE_EVENT0("startup", "chrome_android::RegisterJni"); 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return RegisterNativeMethods(env, kChromeRegisteredMethods, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arraysize(kChromeRegisteredMethods)); 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace android 108eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace chrome 109