Reland: Mass refactoring: Change JNI #includes to use full paths (chrome/, ui/).

This reverts commit ddef784f4b4520eb395dd6e77b46ef0c297c3676.

Reason for reland: Fixed wrong #include

Change-Id: I7b77503bc9b4f470322b5026c12ff4e4666ee551
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1673453
Reviewed-by: Eric Stevenson <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Commit-Queue: Andrew Grieve <[email protected]>
Cr-Commit-Position: refs/heads/master@{#671679}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 60751f1..2d7528c 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2229,7 +2229,6 @@
       "android/compositor/navigation_glow.cc",
       "android/compositor/navigation_glow.h",
       "android/compositor/resources/resource_factory.cc",
-      "android/compositor/resources/resource_factory.h",
       "android/compositor/resources/toolbar_resource.cc",
       "android/compositor/resources/toolbar_resource.h",
       "android/compositor/scene_layer/contextual_search_scene_layer.cc",
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index beb0b7d..a494420 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -1,6 +1,9 @@
 include_rules = [
   "+apps",
   "+cc/paint",
+  "+chrome/android/chrome_jni_headers",
+  "+chrome/android/features/autofill_assistant/jni_headers",
+  "+chrome/android/public/profiles/jni_headers",
   "+chrome/app",
   "+chrome/chrome_watcher",
   "+chrome/credential_provider/common",
@@ -44,7 +47,6 @@
   "+google_apis",
   "+google_update",
   "+installer_util_strings",  # For generated headers
-  "+jni",
   "+mash/public/mojom",
   "+media/media_buildflags.h",
   "+media/audio", # For media audio hang monitor.
diff --git a/chrome/browser/after_startup_task_utils_android.cc b/chrome/browser/after_startup_task_utils_android.cc
index 17881fcc..5be0177 100644
--- a/chrome/browser/after_startup_task_utils_android.cc
+++ b/chrome/browser/after_startup_task_utils_android.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/android/chrome_jni_headers/AfterStartupTaskUtils_jni.h"
 #include "chrome/browser/after_startup_task_utils.h"
-#include "jni/AfterStartupTaskUtils_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/DEPS b/chrome/browser/android/DEPS
index 0fe49540..0206149 100644
--- a/chrome/browser/android/DEPS
+++ b/chrome/browser/android/DEPS
@@ -2,6 +2,9 @@
   "-components/devtools_bridge",
   "+cc/layers/layer.h",
   "+chrome_jni_registration/chrome_jni_registration.h",
+  "+chrome/android/test_support_jni_headers",
+  "+chrome/lib/image_fetcher/public/android/jni_headers",
+  "+chrome/lib/util/public/android/jni_headers",
   "+device/vr/buildflags/buildflags.h",
   "+media/gpu",
   "+media/video",
diff --git a/chrome/browser/android/accessibility/font_size_prefs_android.cc b/chrome/browser/android/accessibility/font_size_prefs_android.cc
index 6ca4d88..a572fc7 100644
--- a/chrome/browser/android/accessibility/font_size_prefs_android.cc
+++ b/chrome/browser/android/accessibility/font_size_prefs_android.cc
@@ -6,12 +6,12 @@
 
 #include "base/bind.h"
 #include "base/observer_list.h"
+#include "chrome/android/chrome_jni_headers/FontSizePrefs_jni.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "components/prefs/pref_service.h"
-#include "jni/FontSizePrefs_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/android/app_hooks.cc b/chrome/browser/android/app_hooks.cc
index b4ca61a..680d708 100644
--- a/chrome/browser/android/app_hooks.cc
+++ b/chrome/browser/android/app_hooks.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/app_hooks.h"
 
 #include "base/android/jni_android.h"
-#include "jni/AppHooks_jni.h"
+#include "chrome/android/chrome_jni_headers/AppHooks_jni.h"
 
 using base::android::ScopedJavaLocalRef;
 
diff --git a/chrome/browser/android/autofill_assistant/assistant_form_delegate.cc b/chrome/browser/android/autofill_assistant/assistant_form_delegate.cc
index a17c3502..48c0618e 100644
--- a/chrome/browser/android/autofill_assistant/assistant_form_delegate.cc
+++ b/chrome/browser/android/autofill_assistant/assistant_form_delegate.cc
@@ -4,8 +4,8 @@
 
 #include "chrome/browser/android/autofill_assistant/assistant_form_delegate.h"
 
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantFormDelegate_jni.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android.h"
-#include "jni/AssistantFormDelegate_jni.h"
 
 using base::android::AttachCurrentThread;
 
diff --git a/chrome/browser/android/autofill_assistant/assistant_header_delegate.cc b/chrome/browser/android/autofill_assistant/assistant_header_delegate.cc
index f2d9b5e0..2b0adb0 100644
--- a/chrome/browser/android/autofill_assistant/assistant_header_delegate.cc
+++ b/chrome/browser/android/autofill_assistant/assistant_header_delegate.cc
@@ -4,8 +4,8 @@
 
 #include "chrome/browser/android/autofill_assistant/assistant_header_delegate.h"
 
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantHeaderDelegate_jni.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android.h"
-#include "jni/AssistantHeaderDelegate_jni.h"
 
 using base::android::AttachCurrentThread;
 
diff --git a/chrome/browser/android/autofill_assistant/assistant_overlay_delegate.cc b/chrome/browser/android/autofill_assistant/assistant_overlay_delegate.cc
index f0ddfbb4..91401cf 100644
--- a/chrome/browser/android/autofill_assistant/assistant_overlay_delegate.cc
+++ b/chrome/browser/android/autofill_assistant/assistant_overlay_delegate.cc
@@ -4,8 +4,8 @@
 
 #include "chrome/browser/android/autofill_assistant/assistant_overlay_delegate.h"
 
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantOverlayDelegate_jni.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android.h"
-#include "jni/AssistantOverlayDelegate_jni.h"
 
 using base::android::AttachCurrentThread;
 
diff --git a/chrome/browser/android/autofill_assistant/assistant_payment_request_delegate.cc b/chrome/browser/android/autofill_assistant/assistant_payment_request_delegate.cc
index 1e53230d..aebb1b9 100644
--- a/chrome/browser/android/autofill_assistant/assistant_payment_request_delegate.cc
+++ b/chrome/browser/android/autofill_assistant/assistant_payment_request_delegate.cc
@@ -8,11 +8,11 @@
 #include <utility>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantPaymentRequestDelegate_jni.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android.h"
 #include "chrome/browser/autofill/android/personal_data_manager_android.h"
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "jni/AssistantPaymentRequestDelegate_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/autofill_assistant/client_android.cc b/chrome/browser/android/autofill_assistant/client_android.cc
index 8e450ff..08c58be 100644
--- a/chrome/browser/android/autofill_assistant/client_android.cc
+++ b/chrome/browser/android/autofill_assistant/client_android.cc
@@ -17,6 +17,7 @@
 #include "base/no_destructor.h"
 #include "base/task/post_task.h"
 #include "base/time/default_tick_clock.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AutofillAssistantClient_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/autofill/android/personal_data_manager_android.h"
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
@@ -33,7 +34,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
 #include "google_apis/google_api_keys.h"
-#include "jni/AutofillAssistantClient_jni.h"
 #include "services/identity/public/cpp/identity_manager.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android.cc b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
index d931a43..140323d 100644
--- a/chrome/browser/android/autofill_assistant/ui_controller_android.cc
+++ b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
@@ -16,6 +16,17 @@
 #include "base/metrics/field_trial_params.h"
 #include "base/task/post_task.h"
 #include "base/time/time.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantDetailsModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantDetails_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantFormInput_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantFormModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantHeaderModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantInfoBoxModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantInfoBox_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantOverlayModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AssistantPaymentRequestModel_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers/AutofillAssistantUiController_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/autofill/android/personal_data_manager_android.h"
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
@@ -36,17 +47,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
 #include "google_apis/google_api_keys.h"
-#include "jni/AssistantDetailsModel_jni.h"
-#include "jni/AssistantDetails_jni.h"
-#include "jni/AssistantFormInput_jni.h"
-#include "jni/AssistantFormModel_jni.h"
-#include "jni/AssistantHeaderModel_jni.h"
-#include "jni/AssistantInfoBoxModel_jni.h"
-#include "jni/AssistantInfoBox_jni.h"
-#include "jni/AssistantModel_jni.h"
-#include "jni/AssistantOverlayModel_jni.h"
-#include "jni/AssistantPaymentRequestModel_jni.h"
-#include "jni/AutofillAssistantUiController_jni.h"
 #include "services/identity/public/cpp/identity_manager.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/android/background_sync_launcher_android.cc b/chrome/browser/android/background_sync_launcher_android.cc
index f9b61da2..cc6489e 100644
--- a/chrome/browser/android/background_sync_launcher_android.cc
+++ b/chrome/browser/android/background_sync_launcher_android.cc
@@ -10,15 +10,15 @@
 #include "base/barrier_closure.h"
 #include "base/bind.h"
 #include "base/feature_list.h"
+#include "chrome/android/chrome_jni_headers/BackgroundSyncBackgroundTaskScheduler_jni.h"
+#include "chrome/android/chrome_jni_headers/BackgroundSyncBackgroundTask_jni.h"
+#include "chrome/android/chrome_jni_headers/BackgroundSyncLauncher_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "content/public/browser/background_sync_context.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/BackgroundSyncBackgroundTaskScheduler_jni.h"
-#include "jni/BackgroundSyncBackgroundTask_jni.h"
-#include "jni/BackgroundSyncLauncher_jni.h"
 
 using content::BrowserThread;
 
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
index 6907232..fcf3af5 100644
--- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
@@ -15,6 +15,7 @@
 #include "base/containers/stack.h"
 #include "base/containers/stack_container.h"
 #include "base/i18n/string_compare.h"
+#include "chrome/android/chrome_jni_headers/BookmarkBridge_jni.h"
 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
 #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h"
 #include "chrome/browser/profiles/incognito_helpers.h"
@@ -34,7 +35,6 @@
 #include "components/undo/bookmark_undo_service.h"
 #include "components/undo/undo_manager.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/BookmarkBridge_jni.h"
 #include "services/identity/public/cpp/identity_manager.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc b/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
index b3aa3bf..4617da13 100644
--- a/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
+++ b/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
@@ -9,6 +9,7 @@
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/PartnerBookmarksReader_jni.h"
 #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/favicon/favicon_service_factory.h"
@@ -23,7 +24,6 @@
 #include "components/image_fetcher/core/image_fetcher.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/PartnerBookmarksReader_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/codec/png_codec.h"
 #include "ui/gfx/favicon_size.h"
diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/browser/android/bottombar/overlay_panel_content.cc
index d2af1412..eb30ffc 100644
--- a/chrome/browser/android/bottombar/overlay_panel_content.cc
+++ b/chrome/browser/android/bottombar/overlay_panel_content.cc
@@ -11,6 +11,7 @@
 #include "base/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/OverlayPanelContent_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -24,7 +25,6 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/browser_controls_state.h"
-#include "jni/OverlayPanelContent_jni.h"
 #include "net/url_request/url_fetcher_impl.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 #include "ui/android/view_android.h"
diff --git a/chrome/browser/android/browserservices/ukm_recorder.cc b/chrome/browser/android/browserservices/ukm_recorder.cc
index e95490f..a2b75f9 100644
--- a/chrome/browser/android/browserservices/ukm_recorder.cc
+++ b/chrome/browser/android/browserservices/ukm_recorder.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "services/metrics/public/cpp/ukm_recorder.h"
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/UkmRecorder_jni.h"
 #include "components/ukm/content/source_url_recorder.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/UkmRecorder_jni.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
-#include "services/metrics/public/cpp/ukm_recorder.h"
 
 namespace browserservices {
 
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
index 4091cdf..e17ba2b 100644
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
@@ -20,6 +20,7 @@
 #include "base/scoped_observer.h"
 #include "base/trace_event/trace_event.h"
 #include "base/values.h"
+#include "chrome/android/chrome_jni_headers/BrowsingDataBridge_jni.h"
 #include "chrome/browser/browsing_data/browsing_data_important_sites_util.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
 #include "chrome/browser/engagement/important_sites_util.h"
@@ -35,7 +36,6 @@
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browsing_data_filter_builder.h"
 #include "content/public/browser/browsing_data_remover.h"
-#include "jni/BrowsingDataBridge_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/browsing_data/browsing_data_counter_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_counter_bridge.cc
index a9887c10..0b90a69c 100644
--- a/chrome/browser/android/browsing_data/browsing_data_counter_bridge.cc
+++ b/chrome/browser/android/browsing_data/browsing_data_counter_bridge.cc
@@ -7,12 +7,12 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/trace_event/trace_event.h"
+#include "chrome/android/chrome_jni_headers/BrowsingDataCounterBridge_jni.h"
 #include "chrome/browser/browsing_data/counters/browsing_data_counter_factory.h"
 #include "chrome/browser/browsing_data/counters/browsing_data_counter_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/common/pref_names.h"
-#include "jni/BrowsingDataCounterBridge_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/browsing_data/url_filter_bridge.cc b/chrome/browser/android/browsing_data/url_filter_bridge.cc
index d012891..2f083ea 100644
--- a/chrome/browser/android/browsing_data/url_filter_bridge.cc
+++ b/chrome/browser/android/browsing_data/url_filter_bridge.cc
@@ -6,7 +6,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
-#include "jni/UrlFilterBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/UrlFilterBridge_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/chrome_backup_agent.cc b/chrome/browser/android/chrome_backup_agent.cc
index 9eb7208..524cffa 100644
--- a/chrome/browser/android/chrome_backup_agent.cc
+++ b/chrome/browser/android/chrome_backup_agent.cc
@@ -8,12 +8,12 @@
 
 #include "base/android/jni_array.h"
 #include "base/stl_util.h"
+#include "chrome/android/chrome_jni_headers/ChromeBackupAgent_jni.h"
 #include "chrome/browser/android/chrome_backup_agent.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/sync/base/pref_names.h"
-#include "jni/ChromeBackupAgent_jni.h"
 
 namespace {
 
diff --git a/chrome/browser/android/chrome_backup_watcher.cc b/chrome/browser/android/chrome_backup_watcher.cc
index d20b507..cd92b5c 100644
--- a/chrome/browser/android/chrome_backup_watcher.cc
+++ b/chrome/browser/android/chrome_backup_watcher.cc
@@ -4,9 +4,9 @@
 
 #include "chrome/browser/android/chrome_backup_watcher.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/ChromeBackupWatcher_jni.h"
 #include "chrome/browser/android/chrome_backup_agent.h"
 #include "chrome/browser/profiles/profile.h"
-#include "jni/ChromeBackupWatcher_jni.h"
 
 namespace android {
 
diff --git a/chrome/browser/android/chrome_context_util.cc b/chrome/browser/android/chrome_context_util.cc
index a55294d3..035c139 100644
--- a/chrome/browser/android/chrome_context_util.cc
+++ b/chrome/browser/android/chrome_context_util.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/chrome_context_util.h"
 
 #include "base/android/jni_android.h"
-#include "jni/ChromeContextUtil_jni.h"
+#include "chrome/android/chrome_jni_headers/ChromeContextUtil_jni.h"
 
 namespace chrome {
 namespace android {
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
index c8c8a9f..64ca1ad 100644
--- a/chrome/browser/android/chrome_feature_list.cc
+++ b/chrome/browser/android/chrome_feature_list.cc
@@ -12,6 +12,7 @@
 #include "base/feature_list.h"
 #include "base/metrics/field_trial_params.h"
 #include "base/stl_util.h"
+#include "chrome/android/chrome_jni_headers/ChromeFeatureList_jni.h"
 #include "chrome/common/chrome_features.h"
 #include "components/autofill/core/common/autofill_features.h"
 #include "components/autofill_assistant/browser/features.h"
@@ -34,7 +35,6 @@
 #include "components/translate/core/browser/translate_prefs.h"
 #include "components/unified_consent/feature.h"
 #include "content/public/common/content_features.h"
-#include "jni/ChromeFeatureList_jni.h"
 #include "media/base/media_switches.h"
 #include "services/device/public/cpp/device_features.h"
 #include "services/network/public/cpp/features.h"
diff --git a/chrome/browser/android/component_updater/background_task_update_scheduler.cc b/chrome/browser/android/component_updater/background_task_update_scheduler.cc
index 724d1b2..2efb5cde 100644
--- a/chrome/browser/android/component_updater/background_task_update_scheduler.cc
+++ b/chrome/browser/android/component_updater/background_task_update_scheduler.cc
@@ -6,7 +6,7 @@
 
 #include "base/bind.h"
 #include "base/threading/sequenced_task_runner_handle.h"
-#include "jni/UpdateScheduler_jni.h"
+#include "chrome/android/chrome_jni_headers/UpdateScheduler_jni.h"
 
 namespace component_updater {
 
diff --git a/chrome/browser/android/compositor/compositor_view.cc b/chrome/browser/android/compositor/compositor_view.cc
index 9368522..7871652 100644
--- a/chrome/browser/android/compositor/compositor_view.cc
+++ b/chrome/browser/android/compositor/compositor_view.cc
@@ -21,6 +21,7 @@
 #include "cc/layers/layer_collections.h"
 #include "cc/layers/solid_color_layer.h"
 #include "cc/layers/texture_layer.h"
+#include "chrome/android/chrome_jni_headers/CompositorView_jni.h"
 #include "chrome/browser/android/compositor/layer/toolbar_layer.h"
 #include "chrome/browser/android/compositor/layer_title_cache.h"
 #include "chrome/browser/android/compositor/scene_layer/scene_layer.h"
@@ -29,7 +30,6 @@
 #include "content/public/browser/child_process_data.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/process_type.h"
-#include "jni/CompositorView_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/android/resources/resource_manager.h"
 #include "ui/android/resources/ui_resource_provider.h"
diff --git a/chrome/browser/android/compositor/layer_title_cache.cc b/chrome/browser/android/compositor/layer_title_cache.cc
index 1a0f15a0..60bd07b 100644
--- a/chrome/browser/android/compositor/layer_title_cache.cc
+++ b/chrome/browser/android/compositor/layer_title_cache.cc
@@ -10,8 +10,8 @@
 
 #include "cc/layers/layer.h"
 #include "cc/layers/ui_resource_layer.h"
+#include "chrome/android/chrome_jni_headers/LayerTitleCache_jni.h"
 #include "chrome/browser/android/compositor/decoration_title.h"
-#include "jni/LayerTitleCache_jni.h"
 #include "ui/android/resources/resource_manager.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/geometry/point_f.h"
diff --git a/chrome/browser/android/compositor/navigation_glow.cc b/chrome/browser/android/compositor/navigation_glow.cc
index 12d5c73..c12b2c6 100644
--- a/chrome/browser/android/compositor/navigation_glow.cc
+++ b/chrome/browser/android/compositor/navigation_glow.cc
@@ -5,9 +5,9 @@
 #include "chrome/browser/android/compositor/navigation_glow.h"
 
 #include "base/android/build_info.h"
+#include "chrome/android/chrome_jni_headers/CompositorNavigationGlow_jni.h"
 #include "chrome/browser/android/compositor/scene_layer/scene_layer.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/CompositorNavigationGlow_jni.h"
 #include "ui/android/edge_effect.h"
 #include "ui/android/edge_effect_l.h"
 #include "ui/android/resources/resource_manager.h"
diff --git a/chrome/browser/android/compositor/resources/resource_factory.cc b/chrome/browser/android/compositor/resources/resource_factory.cc
index c51220a..539fdeae 100644
--- a/chrome/browser/android/compositor/resources/resource_factory.cc
+++ b/chrome/browser/android/compositor/resources/resource_factory.cc
@@ -2,10 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/android/compositor/resources/resource_factory.h"
-
+#include "chrome/android/chrome_jni_headers/ResourceFactory_jni.h"
 #include "chrome/browser/android/compositor/resources/toolbar_resource.h"
-#include "jni/ResourceFactory_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/compositor/resources/resource_factory.h b/chrome/browser/android/compositor/resources/resource_factory.h
deleted file mode 100644
index b0d5d002..0000000
--- a/chrome/browser/android/compositor/resources/resource_factory.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_ANDROID_COMPOSITOR_RESOURCES_RESOURCE_FACTORY_H_
-#define CHROME_BROWSER_ANDROID_COMPOSITOR_RESOURCES_RESOURCE_FACTORY_H_
-
-#include "base/android/jni_android.h"
-#include "jni/ResourceFactory_jni.h"
-
-using base::android::JavaParamRef;
-
-namespace android {
-
-jlong CreateToolbarContainerResource(JNIEnv* env,
-                                     const JavaParamRef<jclass>& clazz,
-                                     jint toolbar_left,
-                                     jint toolbar_top,
-                                     jint toolbar_right,
-                                     jint toolbar_bottom,
-                                     jint location_bar_left,
-                                     jint location_bar_top,
-                                     jint location_bar_right,
-                                     jint location_bar_bottom,
-                                     jint shadow_height);
-}  // namespace android
-
-#endif  // CHROME_BROWSER_ANDROID_COMPOSITOR_RESOURCES_RESOURCE_FACTORY_H_
diff --git a/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc
index 70137a5..1956b0d 100644
--- a/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc
@@ -8,13 +8,13 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "cc/layers/solid_color_layer.h"
+#include "chrome/android/chrome_jni_headers/ContextualSearchSceneLayer_jni.h"
 #include "chrome/browser/android/compositor/layer/contextual_search_layer.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "content/public/browser/android/compositor.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ContextualSearchSceneLayer_jni.h"
 #include "net/base/load_flags.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
diff --git a/chrome/browser/android/compositor/scene_layer/ephemeral_tab_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/ephemeral_tab_scene_layer.cc
index 2883bca..b30141e 100644
--- a/chrome/browser/android/compositor/scene_layer/ephemeral_tab_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/ephemeral_tab_scene_layer.cc
@@ -6,9 +6,9 @@
 
 #include "base/callback.h"
 #include "cc/layers/solid_color_layer.h"
+#include "chrome/android/chrome_jni_headers/EphemeralTabSceneLayer_jni.h"
 #include "chrome/browser/android/compositor/layer/ephemeral_tab_layer.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/EphemeralTabSceneLayer_jni.h"
 #include "ui/android/resources/resource_manager_impl.h"
 #include "ui/android/view_android.h"
 
diff --git a/chrome/browser/android/compositor/scene_layer/scene_layer.cc b/chrome/browser/android/compositor/scene_layer/scene_layer.cc
index 16f30af..f5af23e 100644
--- a/chrome/browser/android/compositor/scene_layer/scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/scene_layer.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/android/compositor/scene_layer/scene_layer.h"
 
 #include "cc/layers/layer.h"
+#include "chrome/android/chrome_jni_headers/SceneLayer_jni.h"
 #include "content/public/browser/android/compositor.h"
-#include "jni/SceneLayer_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc
index ac18fcc..72ae9ca 100644
--- a/chrome/browser/android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc
@@ -7,8 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "cc/layers/ui_resource_layer.h"
+#include "chrome/android/chrome_jni_headers/ScrollingBottomViewSceneLayer_jni.h"
 #include "content/public/browser/android/compositor.h"
-#include "jni/ScrollingBottomViewSceneLayer_jni.h"
 #include "ui/android/resources/resource_manager_impl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/compositor/scene_layer/static_tab_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/static_tab_scene_layer.cc
index 484bef4..0aa9654 100644
--- a/chrome/browser/android/compositor/scene_layer/static_tab_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/static_tab_scene_layer.cc
@@ -5,11 +5,11 @@
 #include "chrome/browser/android/compositor/scene_layer/static_tab_scene_layer.h"
 
 #include "cc/layers/layer.h"
+#include "chrome/android/chrome_jni_headers/StaticTabSceneLayer_jni.h"
 #include "chrome/browser/android/compositor/layer/content_layer.h"
 #include "chrome/browser/android/compositor/layer_title_cache.h"
 #include "chrome/browser/android/compositor/tab_content_manager.h"
 #include "content/public/browser/android/compositor.h"
-#include "jni/StaticTabSceneLayer_jni.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/android/resources/resource_manager_impl.h"
 
diff --git a/chrome/browser/android/compositor/scene_layer/tab_list_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_list_scene_layer.cc
index c6ac06f..191e2cf 100644
--- a/chrome/browser/android/compositor/scene_layer/tab_list_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/tab_list_scene_layer.cc
@@ -9,12 +9,12 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "cc/layers/picture_image_layer.h"
+#include "chrome/android/chrome_jni_headers/TabListSceneLayer_jni.h"
 #include "chrome/browser/android/compositor/layer/content_layer.h"
 #include "chrome/browser/android/compositor/layer/tab_layer.h"
 #include "chrome/browser/android/compositor/layer_title_cache.h"
 #include "chrome/browser/android/compositor/tab_content_manager.h"
 #include "content/public/browser/android/compositor.h"
-#include "jni/TabListSceneLayer_jni.h"
 #include "ui/android/resources/resource_manager_impl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
index 422c578..765e4da 100644
--- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
@@ -6,10 +6,10 @@
 
 #include "base/android/jni_android.h"
 #include "cc/resources/scoped_ui_resource.h"
+#include "chrome/android/chrome_jni_headers/TabStripSceneLayer_jni.h"
 #include "chrome/browser/android/compositor/layer/tab_handle_layer.h"
 #include "chrome/browser/android/compositor/layer_title_cache.h"
 #include "content/public/browser/android/compositor.h"
-#include "jni/TabStripSceneLayer_jni.h"
 #include "ui/android/resources/nine_patch_resource.h"
 #include "ui/android/resources/resource_manager_impl.h"
 #include "ui/gfx/transform.h"
diff --git a/chrome/browser/android/compositor/scene_layer/toolbar_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/toolbar_scene_layer.cc
index b21f00a..0152a06 100644
--- a/chrome/browser/android/compositor/scene_layer/toolbar_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/toolbar_scene_layer.cc
@@ -7,9 +7,9 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "cc/layers/solid_color_layer.h"
+#include "chrome/android/chrome_jni_headers/ToolbarSceneLayer_jni.h"
 #include "chrome/browser/android/compositor/layer/toolbar_layer.h"
 #include "content/public/browser/android/compositor.h"
-#include "jni/ToolbarSceneLayer_jni.h"
 #include "ui/android/resources/resource_manager_impl.h"
 #include "ui/gfx/android/java_bitmap.h"
 
diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/browser/android/compositor/tab_content_manager.cc
index 87cd5e40..be92bc2 100644
--- a/chrome/browser/android/compositor/tab_content_manager.cc
+++ b/chrome/browser/android/compositor/tab_content_manager.cc
@@ -18,6 +18,7 @@
 #include "base/bind_helpers.h"
 #include "base/macros.h"
 #include "cc/layers/layer.h"
+#include "chrome/android/chrome_jni_headers/TabContentManager_jni.h"
 #include "chrome/browser/android/compositor/layer/thumbnail_layer.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/android/thumbnail/thumbnail.h"
@@ -27,7 +28,6 @@
 #include "content/public/browser/render_widget_host.h"
 #include "content/public/browser/render_widget_host_view.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TabContentManager_jni.h"
 #include "skia/ext/image_operations.h"
 #include "ui/android/resources/ui_resource_provider.h"
 #include "ui/android/view_android.h"
diff --git a/chrome/browser/android/consent_auditor/consent_auditor_bridge.cc b/chrome/browser/android/consent_auditor/consent_auditor_bridge.cc
index 7338740..383160e 100644
--- a/chrome/browser/android/consent_auditor/consent_auditor_bridge.cc
+++ b/chrome/browser/android/consent_auditor/consent_auditor_bridge.cc
@@ -10,10 +10,10 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ConsentAuditorBridge_jni.h"
 #include "chrome/browser/consent_auditor/consent_auditor_factory.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/consent_auditor/consent_auditor.h"
-#include "jni/ConsentAuditorBridge_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/android/content/content_utils.cc
index 4334db0..fa28982 100644
--- a/chrome/browser/android/content/content_utils.cc
+++ b/chrome/browser/android/content/content_utils.cc
@@ -3,11 +3,11 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ContentUtils_jni.h"
 #include "chrome/browser/chrome_content_browser_client.h"
 #include "components/version_info/version_info.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/user_agent.h"
-#include "jni/ContentUtils_jni.h"
 
 static base::android::ScopedJavaLocalRef<jstring>
 JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) {
diff --git a/chrome/browser/android/contextualsearch/contextual_search_context.cc b/chrome/browser/android/contextualsearch/contextual_search_context.cc
index e84132b..b8d63f9c 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_context.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_context.cc
@@ -5,10 +5,10 @@
 #include <chrome/browser/android/contextualsearch/contextual_search_context.h>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ContextualSearchContext_jni.h"
 #include "components/translate/core/common/translate_constants.h"
 #include "components/translate/core/language_detection/language_detection_util.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/ContextualSearchContext_jni.h"
 
 ContextualSearchContext::ContextualSearchContext(JNIEnv* env, jobject obj)
     : can_resolve(false),
diff --git a/chrome/browser/android/contextualsearch/contextual_search_manager.cc b/chrome/browser/android/contextualsearch/contextual_search_manager.cc
index 64d4031..de1afa8 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_manager.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_manager.cc
@@ -13,6 +13,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/supports_user_data.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/ContextualSearchManager_jni.h"
 #include "chrome/browser/android/contextualsearch/contextual_search_delegate.h"
 #include "chrome/browser/android/contextualsearch/resolved_search_term.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -24,7 +25,6 @@
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "jni/ContextualSearchManager_jni.h"
 #include "net/url_request/url_fetcher_impl.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
diff --git a/chrome/browser/android/contextualsearch/contextual_search_preference_helper.cc b/chrome/browser/android/contextualsearch/contextual_search_preference_helper.cc
index 6302c15..6bd83ae54 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_preference_helper.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_preference_helper.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/android/contextualsearch/contextual_search_preference_helper.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ContextualSearchPreferenceHelper_jni.h"
 #include "components/contextual_search/core/browser/contextual_search_preference.h"
-#include "jni/ContextualSearchPreferenceHelper_jni.h"
 
 ContextualSearchPreferenceHelper::ContextualSearchPreferenceHelper(
     JNIEnv* env,
diff --git a/chrome/browser/android/contextualsearch/contextual_search_ranker_logger_impl.cc b/chrome/browser/android/contextualsearch/contextual_search_ranker_logger_impl.cc
index 64f8ae2b..f9f7cbdd 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_ranker_logger_impl.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_ranker_logger_impl.cc
@@ -8,6 +8,7 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/feature_list.h"
 #include "base/metrics/histogram_functions.h"
+#include "chrome/android/chrome_jni_headers/ContextualSearchRankerLoggerImpl_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/assist_ranker/assist_ranker_service_factory.h"
 #include "chrome/browser/browser_process.h"
@@ -18,7 +19,6 @@
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/ukm/content/source_url_recorder.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ContextualSearchRankerLoggerImpl_jni.h"
 
 namespace content {
 class BrowserContext;
diff --git a/chrome/browser/android/contextualsearch/contextual_search_tab_helper.cc b/chrome/browser/android/contextualsearch/contextual_search_tab_helper.cc
index 06078182..63aedd5 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_tab_helper.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_tab_helper.cc
@@ -8,13 +8,13 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "build/build_config.h"
+#include "chrome/android/chrome_jni_headers/ContextualSearchTabHelper_jni.h"
 #include "chrome/browser/android/contextualsearch/unhandled_tap_web_contents_observer.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ContextualSearchTabHelper_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/contextualsearch/ctr_suppression.cc b/chrome/browser/android/contextualsearch/ctr_suppression.cc
index aef4a43..f399ba8b 100644
--- a/chrome/browser/android/contextualsearch/ctr_suppression.cc
+++ b/chrome/browser/android/contextualsearch/ctr_suppression.cc
@@ -7,7 +7,7 @@
 
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
-#include "jni/CtrSuppression_jni.h"
+#include "chrome/android/chrome_jni_headers/CtrSuppression_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/contextualsearch/simple_search_term_resolver.cc b/chrome/browser/android/contextualsearch/simple_search_term_resolver.cc
index bfe8af7..456e22e 100644
--- a/chrome/browser/android/contextualsearch/simple_search_term_resolver.cc
+++ b/chrome/browser/android/contextualsearch/simple_search_term_resolver.cc
@@ -13,6 +13,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/supports_user_data.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/SimpleSearchTermResolver_jni.h"
 #include "chrome/browser/android/contextualsearch/contextual_search_delegate.h"
 #include "chrome/browser/android/contextualsearch/resolved_search_term.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -24,7 +25,6 @@
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "jni/SimpleSearchTermResolver_jni.h"
 #include "net/url_request/url_fetcher_impl.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
diff --git a/chrome/browser/android/cookies/cookies_fetcher_util.cc b/chrome/browser/android/cookies/cookies_fetcher_util.cc
index 6267b0c..fe1543a 100644
--- a/chrome/browser/android/cookies/cookies_fetcher_util.cc
+++ b/chrome/browser/android/cookies/cookies_fetcher_util.cc
@@ -7,12 +7,12 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/time/time.h"
+#include "chrome/android/public/profiles/jni_headers/CookiesFetcher_jni.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/common/content_switches.h"
-#include "jni/CookiesFetcher_jni.h"
 #include "net/url_request/url_request_context.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 
diff --git a/chrome/browser/android/crash/pure_java_exception_handler.cc b/chrome/browser/android/crash/pure_java_exception_handler.cc
index 42dc591..f75c048e 100644
--- a/chrome/browser/android/crash/pure_java_exception_handler.cc
+++ b/chrome/browser/android/crash/pure_java_exception_handler.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/android/crash/pure_java_exception_handler.h"
 
-#include "jni/PureJavaExceptionHandler_jni.h"
+#include "chrome/android/chrome_jni_headers/PureJavaExceptionHandler_jni.h"
 
 void UninstallPureJavaExceptionHandler() {
   Java_PureJavaExceptionHandler_uninstallHandler(
diff --git a/chrome/browser/android/customtabs/detached_resource_request_android.cc b/chrome/browser/android/customtabs/detached_resource_request_android.cc
index 57a5655..a187756b 100644
--- a/chrome/browser/android/customtabs/detached_resource_request_android.cc
+++ b/chrome/browser/android/customtabs/detached_resource_request_android.cc
@@ -7,11 +7,11 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/bind_helpers.h"
+#include "chrome/android/chrome_jni_headers/CustomTabsConnection_jni.h"
 #include "chrome/browser/android/customtabs/detached_resource_request.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "content/public/common/referrer.h"
-#include "jni/CustomTabsConnection_jni.h"
 #include "url/gurl.h"
 
 namespace customtabs {
diff --git a/chrome/browser/android/customtabs/dynamicmodule/module_metrics.cc b/chrome/browser/android/customtabs/dynamicmodule/module_metrics.cc
index c2e6d7d..7cb16ce2 100644
--- a/chrome/browser/android/customtabs/dynamicmodule/module_metrics.cc
+++ b/chrome/browser/android/customtabs/dynamicmodule/module_metrics.cc
@@ -11,7 +11,7 @@
 #include "base/android/jni_string.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/process/process_handle.h"
-#include "jni/ModuleMetrics_jni.h"
+#include "chrome/android/chrome_jni_headers/ModuleMetrics_jni.h"
 #include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h"
 #include "services/resource_coordinator/public/mojom/memory_instrumentation/memory_instrumentation.mojom.h"
 
diff --git a/chrome/browser/android/customtabs/origin_verifier.cc b/chrome/browser/android/customtabs/origin_verifier.cc
index d5a434c8..73c8082 100644
--- a/chrome/browser/android/customtabs/origin_verifier.cc
+++ b/chrome/browser/android/customtabs/origin_verifier.cc
@@ -9,13 +9,13 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/OriginVerifier_jni.h"
 #include "chrome/browser/android/digital_asset_links/digital_asset_links_handler.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/OriginVerifier_jni.h"
 #include "services/network/public/cpp/simple_url_loader.h"
 
 using base::android::ConvertJavaStringToUTF16;
diff --git a/chrome/browser/android/devtools_server.cc b/chrome/browser/android/devtools_server.cc
index f5619fec..15e6cecd 100644
--- a/chrome/browser/android/devtools_server.cc
+++ b/chrome/browser/android/devtools_server.cc
@@ -19,6 +19,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/DevToolsServer_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -38,7 +39,6 @@
 #include "content/public/common/content_switches.h"
 #include "content/public/common/url_constants.h"
 #include "content/public/common/user_agent.h"
-#include "jni/DevToolsServer_jni.h"
 #include "net/base/net_errors.h"
 #include "net/socket/unix_domain_server_socket_posix.h"
 #include "net/url_request/url_request_context_getter.h"
diff --git a/chrome/browser/android/document/document_web_contents_delegate.cc b/chrome/browser/android/document/document_web_contents_delegate.cc
index d1f5c65..3b75d30 100644
--- a/chrome/browser/android/document/document_web_contents_delegate.cc
+++ b/chrome/browser/android/document/document_web_contents_delegate.cc
@@ -4,9 +4,9 @@
 
 #include "chrome/browser/android/document/document_web_contents_delegate.h"
 
+#include "chrome/android/chrome_jni_headers/DocumentWebContentsDelegate_jni.h"
 #include "components/embedder_support/android/delegate/web_contents_delegate_android.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/DocumentWebContentsDelegate_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/dom_distiller/distiller_ui_handle_android.cc b/chrome/browser/android/dom_distiller/distiller_ui_handle_android.cc
index 26274dd..fa3154e 100644
--- a/chrome/browser/android/dom_distiller/distiller_ui_handle_android.cc
+++ b/chrome/browser/android/dom_distiller/distiller_ui_handle_android.cc
@@ -5,10 +5,10 @@
 #include "chrome/browser/android/dom_distiller/distiller_ui_handle_android.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/DomDistillerUIUtils_jni.h"
 #include "chrome/browser/ui/android/view_android_helper.h"
 #include "components/dom_distiller/core/url_utils.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/DomDistillerUIUtils_jni.h"
 #include "ui/android/window_android.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/android/download/download_controller.cc b/chrome/browser/android/download/download_controller.cc
index 04504b4..76b0fe0a 100644
--- a/chrome/browser/android/download/download_controller.cc
+++ b/chrome/browser/android/download/download_controller.cc
@@ -17,6 +17,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/synchronization/lock.h"
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/DownloadController_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/android/download/dangerous_download_infobar_delegate.h"
 #include "chrome/browser/android/download/download_manager_service.h"
@@ -44,7 +45,6 @@
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/common/referrer.h"
-#include "jni/DownloadController_jni.h"
 #include "net/base/filename_util.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "ui/android/view_android.h"
diff --git a/chrome/browser/android/download/download_location_dialog_bridge_impl.cc b/chrome/browser/android/download/download_location_dialog_bridge_impl.cc
index 9cff337..2b2015b 100644
--- a/chrome/browser/android/download/download_location_dialog_bridge_impl.cc
+++ b/chrome/browser/android/download/download_location_dialog_bridge_impl.cc
@@ -7,8 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/DownloadLocationDialogBridge_jni.h"
 #include "chrome/browser/android/download/download_controller.h"
-#include "jni/DownloadLocationDialogBridge_jni.h"
 #include "ui/android/window_android.h"
 
 DownloadLocationDialogBridgeImpl::DownloadLocationDialogBridgeImpl()
diff --git a/chrome/browser/android/download/download_manager_bridge.cc b/chrome/browser/android/download/download_manager_bridge.cc
index a0f7423..c2a64c8 100644
--- a/chrome/browser/android/download/download_manager_bridge.cc
+++ b/chrome/browser/android/download/download_manager_bridge.cc
@@ -10,9 +10,9 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/feature_list.h"
+#include "chrome/android/chrome_jni_headers/DownloadManagerBridge_jni.h"
 #include "components/download/public/common/download_features.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/DownloadManagerBridge_jni.h"
 #include "url/gurl.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/download/download_manager_service.cc b/chrome/browser/android/download/download_manager_service.cc
index ea7e740..128f0b6e 100644
--- a/chrome/browser/android/download/download_manager_service.cc
+++ b/chrome/browser/android/download/download_manager_service.cc
@@ -16,6 +16,9 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/DownloadInfo_jni.h"
+#include "chrome/android/chrome_jni_headers/DownloadItem_jni.h"
+#include "chrome/android/chrome_jni_headers/DownloadManagerService_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/android/download/download_controller.h"
 #include "chrome/browser/android/download/download_utils.h"
@@ -43,9 +46,6 @@
 #include "content/public/browser/network_service_instance.h"
 #include "content/public/browser/notification_service.h"
 #include "content/public/browser/system_connector.h"
-#include "jni/DownloadInfo_jni.h"
-#include "jni/DownloadItem_jni.h"
-#include "jni/DownloadManagerService_jni.h"
 #include "third_party/blink/public/common/mime_util/mime_util.h"
 #include "url/origin.h"
 
diff --git a/chrome/browser/android/download/download_media_parser_bridge.cc b/chrome/browser/android/download/download_media_parser_bridge.cc
index 754b1e0..7ac2b957 100644
--- a/chrome/browser/android/download/download_media_parser_bridge.cc
+++ b/chrome/browser/android/download/download_media_parser_bridge.cc
@@ -9,8 +9,8 @@
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/task/post_task.h"
-#include "jni/DownloadMediaData_jni.h"
-#include "jni/DownloadMediaParserBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/DownloadMediaData_jni.h"
+#include "chrome/android/chrome_jni_headers/DownloadMediaParserBridge_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
 
diff --git a/chrome/browser/android/download/download_utils.cc b/chrome/browser/android/download/download_utils.cc
index ede353c..928185b 100644
--- a/chrome/browser/android/download/download_utils.cc
+++ b/chrome/browser/android/download/download_utils.cc
@@ -9,6 +9,7 @@
 #include "base/android/jni_string.h"
 #include "base/metrics/field_trial_params.h"
 #include "base/strings/string_number_conversions.h"
+#include "chrome/android/chrome_jni_headers/DownloadUtils_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/download/offline_item_utils.h"
 #include "chrome/browser/profiles/profile.h"
@@ -16,7 +17,6 @@
 #include "components/download/public/common/download_utils.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/download_item_utils.h"
-#include "jni/DownloadUtils_jni.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/android/download/items/offline_content_aggregator_factory_android.cc b/chrome/browser/android/download/items/offline_content_aggregator_factory_android.cc
index e65630fa..58ddb33 100644
--- a/chrome/browser/android/download/items/offline_content_aggregator_factory_android.cc
+++ b/chrome/browser/android/download/items/offline_content_aggregator_factory_android.cc
@@ -4,12 +4,12 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/OfflineContentAggregatorFactory_jni.h"
 #include "chrome/browser/offline_items_collection/offline_content_aggregator_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/offline_items_collection/core/android/offline_content_aggregator_bridge.h"
 #include "components/offline_items_collection/core/offline_content_aggregator.h"
-#include "jni/OfflineContentAggregatorFactory_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/download/rename_utils.cc b/chrome/browser/android/download/rename_utils.cc
index 1a846e5..742ef5e 100644
--- a/chrome/browser/android/download/rename_utils.cc
+++ b/chrome/browser/android/download/rename_utils.cc
@@ -4,7 +4,7 @@
 
 #include "base/android/jni_string.h"
 #include "base/files/file_path.h"
-#include "jni/RenameUtils_jni.h"
+#include "chrome/android/chrome_jni_headers/RenameUtils_jni.h"
 
 using base::android::ConvertUTF8ToJavaString;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/download/service/download_background_task.cc b/chrome/browser/android/download/service/download_background_task.cc
index 2e233d4d..3b54f6b 100644
--- a/chrome/browser/android/download/service/download_background_task.cc
+++ b/chrome/browser/android/download/service/download_background_task.cc
@@ -5,6 +5,7 @@
 #include "base/android/callback_android.h"
 #include "base/bind.h"
 #include "base/callback_forward.h"
+#include "chrome/android/chrome_jni_headers/DownloadBackgroundTask_jni.h"
 #include "chrome/browser/android/download/download_manager_service.h"
 #include "chrome/browser/android/profile_key_util.h"
 #include "chrome/browser/download/download_service_factory.h"
@@ -12,7 +13,6 @@
 #include "components/download/public/background_service/download_service.h"
 #include "components/download/public/common/auto_resumption_handler.h"
 #include "content/public/browser/browser_context.h"
-#include "jni/DownloadBackgroundTask_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/download/service/download_task_scheduler.cc b/chrome/browser/android/download/service/download_task_scheduler.cc
index cc53312..7f4770c 100644
--- a/chrome/browser/android/download/service/download_task_scheduler.cc
+++ b/chrome/browser/android/download/service/download_task_scheduler.cc
@@ -6,7 +6,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/trace_event/trace_event.h"
-#include "jni/DownloadTaskScheduler_jni.h"
+#include "chrome/android/chrome_jni_headers/DownloadTaskScheduler_jni.h"
 
 namespace download {
 namespace android {
diff --git a/chrome/browser/android/explore_sites/explore_sites_bridge.cc b/chrome/browser/android/explore_sites/explore_sites_bridge.cc
index 0db7013..893e40d6 100644
--- a/chrome/browser/android/explore_sites/explore_sites_bridge.cc
+++ b/chrome/browser/android/explore_sites/explore_sites_bridge.cc
@@ -13,6 +13,9 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/ExploreSitesBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/ExploreSitesCategory_jni.h"
+#include "chrome/android/chrome_jni_headers/ExploreSitesSite_jni.h"
 #include "chrome/browser/android/explore_sites/explore_sites_bridge.h"
 #include "chrome/browser/android/explore_sites/explore_sites_feature.h"
 #include "chrome/browser/android/explore_sites/explore_sites_service.h"
@@ -22,9 +25,6 @@
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/language/core/browser/pref_names.h"
 #include "components/prefs/pref_service.h"
-#include "jni/ExploreSitesBridge_jni.h"
-#include "jni/ExploreSitesCategory_jni.h"
-#include "jni/ExploreSitesSite_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 
 namespace explore_sites {
diff --git a/chrome/browser/android/explore_sites/explore_sites_bridge_experimental.cc b/chrome/browser/android/explore_sites/explore_sites_bridge_experimental.cc
index 9bead57..2c9a09a 100644
--- a/chrome/browser/android/explore_sites/explore_sites_bridge_experimental.cc
+++ b/chrome/browser/android/explore_sites/explore_sites_bridge_experimental.cc
@@ -11,6 +11,8 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/ExploreSitesBridgeExperimental_jni.h"
+#include "chrome/android/chrome_jni_headers/ExploreSitesCategoryTile_jni.h"
 #include "chrome/browser/android/explore_sites/catalog.h"
 #include "chrome/browser/android/explore_sites/catalog.pb.h"
 #include "chrome/browser/android/explore_sites/ntp_json_fetcher.h"
@@ -21,8 +23,6 @@
 #include "components/image_fetcher/core/image_fetcher.h"
 #include "components/image_fetcher/core/image_fetcher_impl.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/ExploreSitesBridgeExperimental_jni.h"
-#include "jni/ExploreSitesCategoryTile_jni.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/simple_url_loader.h"
diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/favicon_helper.cc
index db70943..988a2586 100644
--- a/chrome/browser/android/favicon_helper.cc
+++ b/chrome/browser/android/favicon_helper.cc
@@ -16,6 +16,7 @@
 #include "base/bind.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/FaviconHelper_jni.h"
 #include "chrome/browser/favicon/favicon_request_handler_factory.h"
 #include "chrome/browser/favicon/favicon_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -30,7 +31,6 @@
 #include "components/sync_sessions/open_tabs_ui_delegate.h"
 #include "components/sync_sessions/session_sync_service.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/FaviconHelper_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/codec/png_codec.h"
diff --git a/chrome/browser/android/feature_engagement/tracker_factory_android.cc b/chrome/browser/android/feature_engagement/tracker_factory_android.cc
index a3fe513..20fcd1e9 100644
--- a/chrome/browser/android/feature_engagement/tracker_factory_android.cc
+++ b/chrome/browser/android/feature_engagement/tracker_factory_android.cc
@@ -3,11 +3,11 @@
 // found in the LICENSE file.
 
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/TrackerFactory_jni.h"
 #include "chrome/browser/feature_engagement/tracker_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feature_engagement/public/tracker.h"
-#include "jni/TrackerFactory_jni.h"
 
 static base::android::ScopedJavaLocalRef<jobject>
 JNI_TrackerFactory_GetTrackerForProfile(
diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/android/feature_utilities.cc
index 126b17c..0a2ab01b 100644
--- a/chrome/browser/android/feature_utilities.cc
+++ b/chrome/browser/android/feature_utilities.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/android/feature_utilities.h"
 
-#include "jni/FeatureUtilities_jni.h"
+#include "chrome/android/chrome_jni_headers/FeatureUtilities_jni.h"
 
 #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h"
 #include "chrome/browser/profiles/profile_manager.h"
diff --git a/chrome/browser/android/feed/feed_content_bridge.cc b/chrome/browser/android/feed/feed_content_bridge.cc
index 6a76b7fd..e20165d 100644
--- a/chrome/browser/android/feed/feed_content_bridge.cc
+++ b/chrome/browser/android/feed/feed_content_bridge.cc
@@ -15,13 +15,13 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/FeedContentBridge_jni.h"
 #include "chrome/browser/android/feed/feed_host_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/content/feed_host_service.h"
 #include "components/feed/core/feed_content_database.h"
 #include "components/feed/core/feed_content_mutation.h"
-#include "jni/FeedContentBridge_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
 
diff --git a/chrome/browser/android/feed/feed_debugging_bridge.cc b/chrome/browser/android/feed/feed_debugging_bridge.cc
index 5d6f501..305d9ef1 100644
--- a/chrome/browser/android/feed/feed_debugging_bridge.cc
+++ b/chrome/browser/android/feed/feed_debugging_bridge.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/feed/feed_debugging_bridge.h"
 
 #include "base/android/jni_string.h"
-#include "jni/FeedDebuggingBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/FeedDebuggingBridge_jni.h"
 #include "url/gurl.h"
 
 namespace feed {
diff --git a/chrome/browser/android/feed/feed_journal_bridge.cc b/chrome/browser/android/feed/feed_journal_bridge.cc
index db7295b..7a373c5 100644
--- a/chrome/browser/android/feed/feed_journal_bridge.cc
+++ b/chrome/browser/android/feed/feed_journal_bridge.cc
@@ -15,13 +15,13 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/FeedJournalBridge_jni.h"
 #include "chrome/browser/android/feed/feed_host_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/content/feed_host_service.h"
 #include "components/feed/core/feed_journal_database.h"
 #include "components/feed/core/feed_journal_mutation.h"
-#include "jni/FeedJournalBridge_jni.h"
 
 namespace feed {
 
diff --git a/chrome/browser/android/feed/feed_lifecycle_bridge.cc b/chrome/browser/android/feed/feed_lifecycle_bridge.cc
index 30d260ec..6e844cc 100644
--- a/chrome/browser/android/feed/feed_lifecycle_bridge.cc
+++ b/chrome/browser/android/feed/feed_lifecycle_bridge.cc
@@ -6,12 +6,12 @@
 
 #include "base/android/jni_android.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/FeedLifecycleBridge_jni.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/feed_feature_list.h"
 #include "components/history/core/browser/history_service.h"
-#include "jni/FeedLifecycleBridge_jni.h"
 
 using base::android::JavaRef;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/feed/feed_logging_bridge.cc b/chrome/browser/android/feed/feed_logging_bridge.cc
index e29fe06..a29ff7f 100644
--- a/chrome/browser/android/feed/feed_logging_bridge.cc
+++ b/chrome/browser/android/feed/feed_logging_bridge.cc
@@ -10,12 +10,12 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/FeedLoggingBridge_jni.h"
 #include "chrome/browser/android/feed/feed_host_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/content/feed_host_service.h"
 #include "components/feed/core/feed_logging_metrics.h"
-#include "jni/FeedLoggingBridge_jni.h"
 
 namespace feed {
 
diff --git a/chrome/browser/android/feed/feed_network_bridge.cc b/chrome/browser/android/feed/feed_network_bridge.cc
index c2a7742..70642a0 100644
--- a/chrome/browser/android/feed/feed_network_bridge.cc
+++ b/chrome/browser/android/feed/feed_network_bridge.cc
@@ -13,12 +13,12 @@
 #include "base/bind.h"
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/trace_event.h"
+#include "chrome/android/chrome_jni_headers/FeedNetworkBridge_jni.h"
 #include "chrome/browser/android/feed/feed_host_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/content/feed_host_service.h"
 #include "components/feed/core/feed_networking_host.h"
-#include "jni/FeedNetworkBridge_jni.h"
 
 using base::android::ConvertJavaStringToUTF8;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/feed/feed_offline_bridge.cc b/chrome/browser/android/feed/feed_offline_bridge.cc
index 66072cb..664fd053 100644
--- a/chrome/browser/android/feed/feed_offline_bridge.cc
+++ b/chrome/browser/android/feed/feed_offline_bridge.cc
@@ -14,12 +14,12 @@
 #include "base/bind.h"
 #include "base/optional.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/FeedOfflineBridge_jni.h"
 #include "chrome/browser/android/feed/feed_host_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/content/feed_host_service.h"
 #include "components/feed/core/content_metadata.h"
-#include "jni/FeedOfflineBridge_jni.h"
 
 using base::android::JavaRef;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/feed/feed_scheduler_bridge.cc b/chrome/browser/android/feed/feed_scheduler_bridge.cc
index e9ad48b9..0360a58 100644
--- a/chrome/browser/android/feed/feed_scheduler_bridge.cc
+++ b/chrome/browser/android/feed/feed_scheduler_bridge.cc
@@ -10,11 +10,11 @@
 #include "base/android/jni_android.h"
 #include "base/bind.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/FeedSchedulerBridge_jni.h"
 #include "chrome/browser/android/feed/feed_host_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/feed/content/feed_host_service.h"
-#include "jni/FeedSchedulerBridge_jni.h"
 
 using base::android::JavaRef;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/feedback/connectivity_checker.cc b/chrome/browser/android/feedback/connectivity_checker.cc
index ac9cbea..030a0edd 100644
--- a/chrome/browser/android/feedback/connectivity_checker.cc
+++ b/chrome/browser/android/feedback/connectivity_checker.cc
@@ -11,10 +11,10 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
+#include "chrome/android/chrome_jni_headers/ConnectivityChecker_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/ConnectivityChecker_jni.h"
 #include "net/base/load_flags.h"
 #include "net/http/http_status_code.h"
 #include "services/network/public/cpp/resource_request.h"
diff --git a/chrome/browser/android/feedback/process_id_feedback_source.cc b/chrome/browser/android/feedback/process_id_feedback_source.cc
index e66abf8..20318bd 100644
--- a/chrome/browser/android/feedback/process_id_feedback_source.cc
+++ b/chrome/browser/android/feedback/process_id_feedback_source.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/android/feedback/process_id_feedback_source.h"
 
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/ProcessIdFeedbackSource_jni.h"
 #include "content/public/browser/browser_task_traits.h"
-#include "jni/ProcessIdFeedbackSource_jni.h"
 
 #include "base/android/jni_array.h"
 #include "base/bind.h"
diff --git a/chrome/browser/android/feedback/screenshot_task.cc b/chrome/browser/android/feedback/screenshot_task.cc
index cf87a05..875eb38 100644
--- a/chrome/browser/android/feedback/screenshot_task.cc
+++ b/chrome/browser/android/feedback/screenshot_task.cc
@@ -7,7 +7,7 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/memory/ref_counted_memory.h"
-#include "jni/ScreenshotTask_jni.h"
+#include "chrome/android/chrome_jni_headers/ScreenshotTask_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/android/window_android.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/chrome/browser/android/feedback/system_info_feedback_source.cc b/chrome/browser/android/feedback/system_info_feedback_source.cc
index fec73455..ba47635 100644
--- a/chrome/browser/android/feedback/system_info_feedback_source.cc
+++ b/chrome/browser/android/feedback/system_info_feedback_source.cc
@@ -6,9 +6,9 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/system/sys_info.h"
+#include "chrome/android/chrome_jni_headers/SystemInfoFeedbackSource_jni.h"
 #include "content/public/browser/gpu_data_manager.h"
 #include "gpu/config/gpu_info.h"
-#include "jni/SystemInfoFeedbackSource_jni.h"
 
 using base::android::ConvertUTF8ToJavaString;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/find_in_page/find_in_page_bridge.cc b/chrome/browser/android/find_in_page/find_in_page_bridge.cc
index e9fef6a..84b237df 100644
--- a/chrome/browser/android/find_in_page/find_in_page_bridge.cc
+++ b/chrome/browser/android/find_in_page/find_in_page_bridge.cc
@@ -5,9 +5,9 @@
 #include "chrome/browser/android/find_in_page/find_in_page_bridge.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/FindInPageBridge_jni.h"
 #include "chrome/browser/ui/find_bar/find_tab_helper.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/FindInPageBridge_jni.h"
 
 using base::android::ConvertUTF16ToJavaString;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/foreign_session_helper.cc b/chrome/browser/android/foreign_session_helper.cc
index a2c62865..ce3928e 100644
--- a/chrome/browser/android/foreign_session_helper.cc
+++ b/chrome/browser/android/foreign_session_helper.cc
@@ -9,6 +9,7 @@
 
 #include "base/android/jni_string.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/ForeignSessionHelper_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/profiles/profile_android.h"
@@ -28,7 +29,6 @@
 #include "content/public/browser/notification_service.h"
 #include "content/public/browser/notification_source.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ForeignSessionHelper_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaGlobalRef;
diff --git a/chrome/browser/android/headers_classifier.cc b/chrome/browser/android/headers_classifier.cc
index 58301dc..c935a34 100644
--- a/chrome/browser/android/headers_classifier.cc
+++ b/chrome/browser/android/headers_classifier.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_string.h"
-#include "jni/IntentHeadersRecorder_jni.h"
+#include "chrome/android/chrome_jni_headers/IntentHeadersRecorder_jni.h"
 #include "services/network/public/cpp/cors/cors.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/history/browsing_history_bridge.cc b/chrome/browser/android/history/browsing_history_bridge.cc
index 5d16650..d6bd48b 100644
--- a/chrome/browser/android/history/browsing_history_bridge.cc
+++ b/chrome/browser/android/history/browsing_history_bridge.cc
@@ -12,13 +12,13 @@
 #include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/BrowsingHistoryBridge_jni.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/sync/profile_sync_service_factory.h"
 #include "components/history/core/browser/browsing_history_service.h"
 #include "components/keyed_service/core/service_access_type.h"
 #include "components/url_formatter/url_formatter.h"
-#include "jni/BrowsingHistoryBridge_jni.h"
 
 using history::BrowsingHistoryService;
 
diff --git a/chrome/browser/android/history/history_deletion_bridge.cc b/chrome/browser/android/history/history_deletion_bridge.cc
index bce4453..e1d8036 100644
--- a/chrome/browser/android/history/history_deletion_bridge.cc
+++ b/chrome/browser/android/history/history_deletion_bridge.cc
@@ -7,12 +7,12 @@
 #include <string>
 #include <vector>
 
+#include "chrome/android/chrome_jni_headers/HistoryDeletionBridge_jni.h"
 #include "chrome/browser/android/history/history_deletion_info.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "components/history/core/browser/history_service.h"
-#include "jni/HistoryDeletionBridge_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/android/history/history_deletion_info.cc b/chrome/browser/android/history/history_deletion_info.cc
index 73264433..ff78d78 100644
--- a/chrome/browser/android/history/history_deletion_info.cc
+++ b/chrome/browser/android/history/history_deletion_info.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/android/history/history_deletion_info.h"
 
 #include "base/android/jni_array.h"
+#include "chrome/android/chrome_jni_headers/HistoryDeletionInfo_jni.h"
 #include "components/history/core/browser/history_types.h"
-#include "jni/HistoryDeletionInfo_jni.h"
 
 using base::android::ScopedJavaLocalRef;
 
diff --git a/chrome/browser/android/history_report/history_report_jni_bridge.cc b/chrome/browser/android/history_report/history_report_jni_bridge.cc
index 1c41dc1..90222e0 100644
--- a/chrome/browser/android/history_report/history_report_jni_bridge.cc
+++ b/chrome/browser/android/history_report/history_report_jni_bridge.cc
@@ -13,6 +13,7 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/HistoryReportJniBridge_jni.h"
 #include "chrome/browser/android/history_report/data_observer.h"
 #include "chrome/browser/android/history_report/data_provider.h"
 #include "chrome/browser/android/history_report/delta_file_commons.h"
@@ -27,7 +28,6 @@
 #include "components/bookmarks/browser/bookmark_model.h"
 #include "components/history/core/browser/history_service.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/HistoryReportJniBridge_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/image_fetcher/image_fetcher_bridge.cc b/chrome/browser/android/image_fetcher/image_fetcher_bridge.cc
index 6ec9662..184de0a 100644
--- a/chrome/browser/android/image_fetcher/image_fetcher_bridge.cc
+++ b/chrome/browser/android/image_fetcher/image_fetcher_bridge.cc
@@ -16,11 +16,11 @@
 #include "chrome/browser/image_fetcher/image_fetcher_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
+#include "chrome/lib/image_fetcher/public/android/jni_headers/ImageFetcherBridge_jni.h"
 #include "components/image_fetcher/core/cache/image_cache.h"
 #include "components/image_fetcher/core/image_fetcher.h"
 #include "components/image_fetcher/core/image_fetcher_metrics_reporter.h"
 #include "components/image_fetcher/core/image_fetcher_service.h"
-#include "jni/ImageFetcherBridge_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
 
diff --git a/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc b/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc
index c707052..d6a8f3ef1 100644
--- a/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc
+++ b/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc
@@ -9,13 +9,13 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/metrics/user_metrics.h"
+#include "chrome/android/chrome_jni_headers/InstantAppsInfoBarDelegate_jni.h"
 #include "chrome/browser/android/instantapps/instant_apps_settings.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/ui/android/infobars/instant_apps_infobar.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/InstantAppsInfoBarDelegate_jni.h"
 #include "ui/base/page_transition_types.h"
 
 namespace {
diff --git a/chrome/browser/android/instantapps/instant_apps_settings.cc b/chrome/browser/android/instantapps/instant_apps_settings.cc
index 044126fe..63e75f4 100644
--- a/chrome/browser/android/instantapps/instant_apps_settings.cc
+++ b/chrome/browser/android/instantapps/instant_apps_settings.cc
@@ -9,10 +9,10 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/time/time.h"
 #include "base/values.h"
+#include "chrome/android/chrome_jni_headers/InstantAppsSettings_jni.h"
 #include "chrome/browser/banners/app_banner_settings_helper.h"
 #include "chrome/browser/installable/installable_logging.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/InstantAppsSettings_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/intent_helper.cc b/chrome/browser/android/intent_helper.cc
index 187d1ec..2811d8c 100644
--- a/chrome/browser/android/intent_helper.cc
+++ b/chrome/browser/android/intent_helper.cc
@@ -9,7 +9,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
-#include "jni/IntentHelper_jni.h"
+#include "chrome/android/chrome_jni_headers/IntentHelper_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertUTF16ToJavaString;
diff --git a/chrome/browser/android/intercept_navigation_delegate_impl.cc b/chrome/browser/android/intercept_navigation_delegate_impl.cc
index 76722b7f..d654b01 100644
--- a/chrome/browser/android/intercept_navigation_delegate_impl.cc
+++ b/chrome/browser/android/intercept_navigation_delegate_impl.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/android/chrome_jni_headers/InterceptNavigationDelegateImpl_jni.h"
 #include "components/navigation_interception/intercept_navigation_delegate.h"
 #include "components/navigation_interception/navigation_params.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/InterceptNavigationDelegateImpl_jni.h"
 #include "net/base/escape.h"
 
 namespace {
diff --git a/chrome/browser/android/large_icon_bridge.cc b/chrome/browser/android/large_icon_bridge.cc
index fbd7d6f..b413f6e 100644
--- a/chrome/browser/android/large_icon_bridge.cc
+++ b/chrome/browser/android/large_icon_bridge.cc
@@ -11,13 +11,13 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/LargeIconBridge_jni.h"
 #include "chrome/browser/favicon/large_icon_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/favicon/core/large_icon_service.h"
 #include "components/favicon_base/fallback_icon_style.h"
 #include "components/favicon_base/favicon_types.h"
-#include "jni/LargeIconBridge_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/codec/png_codec.h"
diff --git a/chrome/browser/android/locale/locale_manager.cc b/chrome/browser/android/locale/locale_manager.cc
index 89f1af3..36a3754 100644
--- a/chrome/browser/android/locale/locale_manager.cc
+++ b/chrome/browser/android/locale/locale_manager.cc
@@ -6,8 +6,8 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/LocaleManager_jni.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
-#include "jni/LocaleManager_jni.h"
 #include "url/gurl.h"
 
 // static
diff --git a/chrome/browser/android/locale/locale_template_url_loader.cc b/chrome/browser/android/locale/locale_template_url_loader.cc
index cc0accf7..30926be 100644
--- a/chrome/browser/android/locale/locale_template_url_loader.cc
+++ b/chrome/browser/android/locale/locale_template_url_loader.cc
@@ -6,6 +6,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/android/jni_weak_ref.h"
+#include "chrome/android/chrome_jni_headers/LocaleTemplateUrlLoader_jni.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/search_engines/template_url_service_factory.h"
 #include "components/search_engines/prepopulated_engines.h"
@@ -13,7 +14,6 @@
 #include "components/search_engines/template_url_prepopulate_data.h"
 #include "components/search_engines/template_url_service.h"
 #include "components/search_engines/util.h"
-#include "jni/LocaleTemplateUrlLoader_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaGlobalRef;
diff --git a/chrome/browser/android/location_settings_impl.cc b/chrome/browser/android/location_settings_impl.cc
index 41cb5467..a623325c 100644
--- a/chrome/browser/android/location_settings_impl.cc
+++ b/chrome/browser/android/location_settings_impl.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/android/location_settings_impl.h"
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/LocationSettings_jni.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/LocationSettings_jni.h"
 
 using base::android::AttachCurrentThread;
 
diff --git a/chrome/browser/android/logo_bridge.cc b/chrome/browser/android/logo_bridge.cc
index 4cb8c89..12ab566 100644
--- a/chrome/browser/android/logo_bridge.cc
+++ b/chrome/browser/android/logo_bridge.cc
@@ -12,13 +12,13 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/LogoBridge_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/search_provider_logos/logo_service_factory.h"
 #include "components/search_provider_logos/logo_observer.h"
 #include "components/search_provider_logos/logo_service.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/LogoBridge_jni.h"
 #include "net/http/http_status_code.h"
 #include "services/network/public/cpp/resource_response_info.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
diff --git a/chrome/browser/android/metrics/BUILD.gn b/chrome/browser/android/metrics/BUILD.gn
index 7c005ea7..cdb8fca 100644
--- a/chrome/browser/android/metrics/BUILD.gn
+++ b/chrome/browser/android/metrics/BUILD.gn
@@ -22,7 +22,6 @@
     sources = [
       "../../../android/java/src/org/chromium/chrome/browser/metrics/UkmUtilsForTest.java",
     ]
-    jni_package = "chrome"
   }
 
   android_library("ukm_utils_java") {
diff --git a/chrome/browser/android/metrics/launch_metrics.cc b/chrome/browser/android/metrics/launch_metrics.cc
index 9a9f0b18..204ed37 100644
--- a/chrome/browser/android/metrics/launch_metrics.cc
+++ b/chrome/browser/android/metrics/launch_metrics.cc
@@ -5,6 +5,7 @@
 #include "base/android/jni_string.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/LaunchMetrics_jni.h"
 #include "chrome/browser/android/shortcut_info.h"
 #include "chrome/browser/banners/app_banner_settings_helper.h"
 #include "chrome/browser/browser_process.h"
@@ -14,7 +15,6 @@
 #include "components/rappor/public/rappor_utils.h"
 #include "components/rappor/rappor_service_impl.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/LaunchMetrics_jni.h"
 #include "third_party/blink/public/common/manifest/web_display_mode.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/android/metrics/ukm_utils_for_test.cc b/chrome/browser/android/metrics/ukm_utils_for_test.cc
index 1ae6ea6..c30dbca 100644
--- a/chrome/browser/android/metrics/ukm_utils_for_test.cc
+++ b/chrome/browser/android/metrics/ukm_utils_for_test.cc
@@ -4,10 +4,10 @@
 
 #include "base/android/jni_string.h"
 #include "base/stl_util.h"
+#include "chrome/browser/android/metrics/jni_headers/UkmUtilsForTest_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "components/metrics_services_manager/metrics_services_manager.h"
 #include "components/ukm/ukm_service.h"
-#include "jni/UkmUtilsForTest_jni.h"
 
 #include "chrome/browser/android/metrics/ukm_utils_for_test.h"
 
diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browser/android/metrics/uma_session_stats.cc
index c55ed7b..b2d6529 100644
--- a/chrome/browser/android/metrics/uma_session_stats.cc
+++ b/chrome/browser/android/metrics/uma_session_stats.cc
@@ -13,6 +13,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
+#include "chrome/android/chrome_jni_headers/UmaSessionStats_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/android/metrics/android_profile_session_durations_service.h"
 #include "chrome/browser/android/metrics/android_profile_session_durations_service_factory.h"
@@ -29,7 +30,6 @@
 #include "components/variations/hashing.h"
 #include "components/variations/variations_associated_data.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/UmaSessionStats_jni.h"
 
 using base::android::ConvertJavaStringToUTF8;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/metrics/uma_utils.cc b/chrome/browser/android/metrics/uma_utils.cc
index 7228d1d..767e0894 100644
--- a/chrome/browser/android/metrics/uma_utils.cc
+++ b/chrome/browser/android/metrics/uma_utils.cc
@@ -6,10 +6,10 @@
 
 #include <stdint.h>
 
+#include "chrome/android/chrome_jni_headers/UmaUtils_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/metrics/chrome_metrics_services_manager_client.h"
 #include "components/metrics/metrics_reporting_default_state.h"
-#include "jni/UmaUtils_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/metrics/variations_session.cc b/chrome/browser/android/metrics/variations_session.cc
index 8b34186..23daabdb 100644
--- a/chrome/browser/android/metrics/variations_session.cc
+++ b/chrome/browser/android/metrics/variations_session.cc
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/VariationsSession_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "components/variations/service/variations_service.h"
-#include "jni/VariationsSession_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/mojo/chrome_interface_registrar_android.cc b/chrome/browser/android/mojo/chrome_interface_registrar_android.cc
index f04effc0..5ed987e 100644
--- a/chrome/browser/android/mojo/chrome_interface_registrar_android.cc
+++ b/chrome/browser/android/mojo/chrome_interface_registrar_android.cc
@@ -7,7 +7,7 @@
 #include <jni.h>
 
 #include "base/android/jni_android.h"
-#include "jni/ChromeInterfaceRegistrar_jni.h"
+#include "chrome/android/chrome_jni_headers/ChromeInterfaceRegistrar_jni.h"
 
 void RegisterChromeJavaMojoInterfaces() {
   Java_ChromeInterfaceRegistrar_registerMojoInterfaces(
diff --git a/chrome/browser/android/net/nqe/network_quality_provider.cc b/chrome/browser/android/net/nqe/network_quality_provider.cc
index 4ceffda..3933070 100644
--- a/chrome/browser/android/net/nqe/network_quality_provider.cc
+++ b/chrome/browser/android/net/nqe/network_quality_provider.cc
@@ -5,10 +5,10 @@
 #include "chrome/browser/android/net/nqe/network_quality_provider.h"
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/NetworkQualityProvider_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/network_quality_observer_factory.h"
-#include "jni/NetworkQualityProvider_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
index 160c72d..f27bfd7 100644
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
@@ -16,6 +16,8 @@
 #include "base/bind.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/MostVisitedSitesBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/MostVisitedSites_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.h"
@@ -27,8 +29,6 @@
 #include "components/ntp_tiles/most_visited_sites.h"
 #include "components/ntp_tiles/section_type.h"
 #include "components/rappor/rappor_service_impl.h"
-#include "jni/MostVisitedSitesBridge_jni.h"
-#include "jni/MostVisitedSites_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/android/ntp/ntp_snippets_bridge.cc b/chrome/browser/android/ntp/ntp_snippets_bridge.cc
index 6be3886..e0538d1 100644
--- a/chrome/browser/android/ntp/ntp_snippets_bridge.cc
+++ b/chrome/browser/android/ntp/ntp_snippets_bridge.cc
@@ -18,6 +18,7 @@
 #include "base/callback.h"
 #include "base/feature_list.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/SnippetsBridge_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/android/ntp/get_remote_suggestions_scheduler.h"
 #include "chrome/browser/history/history_service_factory.h"
@@ -30,7 +31,6 @@
 #include "components/ntp_snippets/pref_names.h"
 #include "components/ntp_snippets/remote/remote_suggestions_provider.h"
 #include "components/ntp_snippets/remote/remote_suggestions_scheduler.h"
-#include "jni/SnippetsBridge_jni.h"
 #include "ui/base/window_open_disposition.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
diff --git a/chrome/browser/android/ntp/ntp_snippets_launcher.cc b/chrome/browser/android/ntp/ntp_snippets_launcher.cc
index b2476800..22503020 100644
--- a/chrome/browser/android/ntp/ntp_snippets_launcher.cc
+++ b/chrome/browser/android/ntp/ntp_snippets_launcher.cc
@@ -4,8 +4,8 @@
 
 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h"
 
+#include "chrome/android/chrome_jni_headers/SnippetsLauncher_jni.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/SnippetsLauncher_jni.h"
 
 using content::BrowserThread;
 
diff --git a/chrome/browser/android/ntp/recent_tabs_page_prefs.cc b/chrome/browser/android/ntp/recent_tabs_page_prefs.cc
index da0224d..d81a78b 100644
--- a/chrome/browser/android/ntp/recent_tabs_page_prefs.cc
+++ b/chrome/browser/android/ntp/recent_tabs_page_prefs.cc
@@ -7,12 +7,12 @@
 #include <jni.h>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/RecentTabsPagePrefs_jni.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/common/pref_names.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
-#include "jni/RecentTabsPagePrefs_jni.h"
 
 using base::android::ConvertJavaStringToUTF8;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/ntp/suggestions_event_reporter_bridge.cc b/chrome/browser/android/ntp/suggestions_event_reporter_bridge.cc
index 2305142..34213161c 100644
--- a/chrome/browser/android/ntp/suggestions_event_reporter_bridge.cc
+++ b/chrome/browser/android/ntp/suggestions_event_reporter_bridge.cc
@@ -9,6 +9,7 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/SuggestionsEventReporterBridge_jni.h"
 #include "chrome/browser/android/ntp/get_remote_suggestions_scheduler.h"
 #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -17,7 +18,6 @@
 #include "components/ntp_snippets/content_suggestions_service.h"
 #include "components/ntp_snippets/remote/remote_suggestions_scheduler.h"
 #include "components/ntp_snippets/user_classifier.h"
-#include "jni/SuggestionsEventReporterBridge_jni.h"
 #include "net/base/network_change_notifier.h"
 #include "ui/base/window_open_disposition.h"
 
diff --git a/chrome/browser/android/omnibox/autocomplete_controller_android.cc b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
index 8a3f3bb..b348ced9 100644
--- a/chrome/browser/android/omnibox/autocomplete_controller_android.cc
+++ b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
@@ -17,6 +17,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
+#include "chrome/android/chrome_jni_headers/AutocompleteController_jni.h"
 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
 #include "chrome/browser/autocomplete/chrome_autocomplete_provider_client.h"
 #include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h"
@@ -52,7 +53,6 @@
 #include "components/url_formatter/url_formatter.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/url_constants.h"
-#include "jni/AutocompleteController_jni.h"
 #include "net/base/escape.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "third_party/metrics_proto/omnibox_event.pb.h"
diff --git a/chrome/browser/android/omnibox/omnibox_prerender.cc b/chrome/browser/android/omnibox/omnibox_prerender.cc
index 59808cd..efe2d590 100644
--- a/chrome/browser/android/omnibox/omnibox_prerender.cc
+++ b/chrome/browser/android/omnibox/omnibox_prerender.cc
@@ -6,6 +6,7 @@
 
 #include "base/android/jni_string.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/OmniboxPrerender_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/predictors/autocomplete_action_predictor.h"
 #include "chrome/browser/predictors/autocomplete_action_predictor_factory.h"
@@ -14,7 +15,6 @@
 #include "components/omnibox/browser/autocomplete_match.h"
 #include "components/omnibox/browser/autocomplete_result.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/OmniboxPrerender_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/oom_intervention/near_oom_monitor.cc b/chrome/browser/android/oom_intervention/near_oom_monitor.cc
index 72f96b1..97cd11a 100644
--- a/chrome/browser/android/oom_intervention/near_oom_monitor.cc
+++ b/chrome/browser/android/oom_intervention/near_oom_monitor.cc
@@ -7,8 +7,8 @@
 #include "base/bind.h"
 #include "base/system/sys_info.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/NearOomMonitor_jni.h"
 #include "chrome/browser/android/oom_intervention/oom_intervention_config.h"
-#include "jni/NearOomMonitor_jni.h"
 
 namespace {
 
diff --git a/chrome/browser/android/partner_browser_customizations.cc b/chrome/browser/android/partner_browser_customizations.cc
index fb53ca59..1d581ae 100644
--- a/chrome/browser/android/partner_browser_customizations.cc
+++ b/chrome/browser/android/partner_browser_customizations.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/partner_browser_customizations.h"
 
 #include "base/android/jni_android.h"
-#include "jni/PartnerBrowserCustomizations_jni.h"
+#include "chrome/android/chrome_jni_headers/PartnerBrowserCustomizations_jni.h"
 
 namespace chrome {
 namespace android {
diff --git a/chrome/browser/android/password_ui_view_android.cc b/chrome/browser/android/password_ui_view_android.cc
index fc679b5..2b10041 100644
--- a/chrome/browser/android/password_ui_view_android.cc
+++ b/chrome/browser/android/password_ui_view_android.cc
@@ -23,6 +23,7 @@
 #include "base/strings/string_piece.h"
 #include "base/task/post_task.h"
 #include "base/threading/scoped_blocking_call.h"
+#include "chrome/android/chrome_jni_headers/PasswordUIView_jni.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/autofill/core/common/password_form.h"
@@ -30,7 +31,6 @@
 #include "components/password_manager/core/browser/password_ui_utils.h"
 #include "components/password_manager/core/browser/ui/credential_provider_interface.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/PasswordUIView_jni.h"
 #include "ui/base/l10n/l10n_util.h"
 
 using base::android::ConvertUTF16ToJavaString;
diff --git a/chrome/browser/android/payments/service_worker_payment_app_bridge.cc b/chrome/browser/android/payments/service_worker_payment_app_bridge.cc
index d980c32e..b4274247 100644
--- a/chrome/browser/android/payments/service_worker_payment_app_bridge.cc
+++ b/chrome/browser/android/payments/service_worker_payment_app_bridge.cc
@@ -12,6 +12,7 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/macros.h"
+#include "chrome/android/chrome_jni_headers/ServiceWorkerPaymentAppBridge_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/web_data_service_factory.h"
@@ -22,7 +23,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/payment_app_provider.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ServiceWorkerPaymentAppBridge_jni.h"
 #include "third_party/blink/public/mojom/payments/payment_app.mojom.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "url/origin.h"
diff --git a/chrome/browser/android/photo_picker_sandbox_bridge.cc b/chrome/browser/android/photo_picker_sandbox_bridge.cc
index d5888b5..5c26961 100644
--- a/chrome/browser/android/photo_picker_sandbox_bridge.cc
+++ b/chrome/browser/android/photo_picker_sandbox_bridge.cc
@@ -6,7 +6,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/metrics/histogram_macros.h"
-#include "jni/DecoderService_jni.h"
+#include "chrome/android/chrome_jni_headers/DecoderService_jni.h"
 #include "sandbox/linux/seccomp-bpf-helpers/seccomp_starter_android.h"
 #include "sandbox/sandbox_buildflags.h"
 
diff --git a/chrome/browser/android/policy/policy_auditor.cc b/chrome/browser/android/policy/policy_auditor.cc
index dae43388..1150791b 100644
--- a/chrome/browser/android/policy/policy_auditor.cc
+++ b/chrome/browser/android/policy/policy_auditor.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/android/chrome_jni_headers/PolicyAuditor_jni.h"
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/ssl_status.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PolicyAuditor_jni.h"
 #include "net/cert/cert_status_flags.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/preferences/autofill/autofill_profile_bridge.cc b/chrome/browser/android/preferences/autofill/autofill_profile_bridge.cc
index da961c9..7c31f6c 100644
--- a/chrome/browser/android/preferences/autofill/autofill_profile_bridge.cc
+++ b/chrome/browser/android/preferences/autofill/autofill_profile_bridge.cc
@@ -7,9 +7,9 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/AutofillProfileBridge_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "components/autofill/core/browser/geo/autofill_country.h"
-#include "jni/AutofillProfileBridge_jni.h"
 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_field.h"
 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_metadata.h"
 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui.h"
diff --git a/chrome/browser/android/preferences/pref_change_registrar_android.cc b/chrome/browser/android/preferences/pref_change_registrar_android.cc
index 32cb2a0e..a42f5e0 100644
--- a/chrome/browser/android/preferences/pref_change_registrar_android.cc
+++ b/chrome/browser/android/preferences/pref_change_registrar_android.cc
@@ -7,9 +7,9 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/PrefChangeRegistrar_jni.h"
 #include "chrome/browser/android/preferences/pref_service_bridge.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "jni/PrefChangeRegistrar_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertJavaStringToUTF8;
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
index bc9712b..c3eb492 100644
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
@@ -25,6 +25,7 @@
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
+#include "chrome/android/chrome_jni_headers/PrefServiceBridge_jni.h"
 #include "chrome/browser/android/preferences/prefs.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -54,7 +55,6 @@
 #include "components/version_info/version_info.h"
 #include "components/web_resource/web_resource_pref_names.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/PrefServiceBridge_jni.h"
 #include "third_party/icu/source/common/unicode/uloc.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/android/preferences/preferences_launcher.cc b/chrome/browser/android/preferences/preferences_launcher.cc
index be5185d5..2bb2463 100644
--- a/chrome/browser/android/preferences/preferences_launcher.cc
+++ b/chrome/browser/android/preferences/preferences_launcher.cc
@@ -5,10 +5,10 @@
 #include "chrome/browser/android/preferences/preferences_launcher.h"
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/PreferencesLauncher_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "components/password_manager/core/browser/manage_passwords_referrer.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PreferencesLauncher_jni.h"
 
 namespace chrome {
 namespace android {
diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc
index 761ab2f..3af2e23 100644
--- a/chrome/browser/android/preferences/website_preference_bridge.cc
+++ b/chrome/browser/android/preferences/website_preference_bridge.cc
@@ -17,6 +17,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/stl_util.h"
+#include "chrome/android/chrome_jni_headers/WebsitePreferenceBridge_jni.h"
 #include "chrome/browser/android/search_permissions/search_permissions_service.h"
 #include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h"
 #include "chrome/browser/content_settings/cookie_settings_factory.h"
@@ -39,7 +40,6 @@
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/WebsitePreferenceBridge_jni.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "third_party/blink/public/mojom/quota/quota_types.mojom.h"
diff --git a/chrome/browser/android/profiles/profile_downloader_android.cc b/chrome/browser/android/profiles/profile_downloader_android.cc
index 0e84f7e..18cad19 100644
--- a/chrome/browser/android/profiles/profile_downloader_android.cc
+++ b/chrome/browser/android/profiles/profile_downloader_android.cc
@@ -7,6 +7,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/macros.h"
+#include "chrome/android/chrome_jni_headers/ProfileDownloader_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
@@ -17,7 +18,6 @@
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "google_apis/gaia/gaia_auth_util.h"
-#include "jni/ProfileDownloader_jni.h"
 #include "services/identity/public/cpp/identity_manager.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
diff --git a/chrome/browser/android/profiles/profile_manager_utils.cc b/chrome/browser/android/profiles/profile_manager_utils.cc
index 5fdb6da..5f4585dc 100644
--- a/chrome/browser/android/profiles/profile_manager_utils.cc
+++ b/chrome/browser/android/profiles/profile_manager_utils.cc
@@ -6,6 +6,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/bind.h"
+#include "chrome/android/public/profiles/jni_headers/ProfileManagerUtils_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -13,7 +14,6 @@
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/ProfileManagerUtils_jni.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
diff --git a/chrome/browser/android/provider/chrome_browser_provider.cc b/chrome/browser/android/provider/chrome_browser_provider.cc
index 3490ad3..756e197 100644
--- a/chrome/browser/android/provider/chrome_browser_provider.cc
+++ b/chrome/browser/android/provider/chrome_browser_provider.cc
@@ -20,6 +20,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/cancelable_task_tracker.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/ChromeBrowserProvider_jni.h"
 #include "chrome/browser/android/provider/blocking_ui_thread_async_request.h"
 #include "chrome/browser/android/provider/bookmark_model_task.h"
 #include "chrome/browser/android/provider/run_on_ui_thread_blocking.h"
@@ -43,7 +44,6 @@
 #include "components/search_engines/template_url.h"
 #include "components/search_engines/template_url_service.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/ChromeBrowserProvider_jni.h"
 #include "ui/base/layout.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/favicon_size.h"
diff --git a/chrome/browser/android/rappor/rappor_service_bridge.cc b/chrome/browser/android/rappor/rappor_service_bridge.cc
index 8c62adf..75aebc1 100644
--- a/chrome/browser/android/rappor/rappor_service_bridge.cc
+++ b/chrome/browser/android/rappor/rappor_service_bridge.cc
@@ -3,10 +3,10 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/RapporServiceBridge_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "components/rappor/public/rappor_utils.h"
 #include "components/rappor/rappor_service_impl.h"
-#include "jni/RapporServiceBridge_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/recently_closed_tabs_bridge.cc b/chrome/browser/android/recently_closed_tabs_bridge.cc
index 611d4037..5df602d 100644
--- a/chrome/browser/android/recently_closed_tabs_bridge.cc
+++ b/chrome/browser/android/recently_closed_tabs_bridge.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/android/recently_closed_tabs_bridge.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/RecentlyClosedBridge_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
@@ -14,7 +15,6 @@
 #include "components/sessions/core/live_tab.h"
 #include "components/sessions/core/tab_restore_service.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/RecentlyClosedBridge_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertUTF16ToJavaString;
diff --git a/chrome/browser/android/rlz/revenue_stats.cc b/chrome/browser/android/rlz/revenue_stats.cc
index 7a6dacfe..4776a425 100644
--- a/chrome/browser/android/rlz/revenue_stats.cc
+++ b/chrome/browser/android/rlz/revenue_stats.cc
@@ -4,8 +4,8 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/RevenueStats_jni.h"
 #include "chrome/browser/search_engines/ui_thread_search_terms_data_android.h"
-#include "jni/RevenueStats_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc
index bfae3de..24fb0058 100644
--- a/chrome/browser/android/rlz/rlz_ping_handler.cc
+++ b/chrome/browser/android/rlz/rlz_ping_handler.cc
@@ -11,11 +11,11 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/strings/stringprintf.h"
+#include "chrome/android/chrome_jni_headers/RlzPingHandler_jni.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/RlzPingHandler_jni.h"
 #include "net/base/load_flags.h"
 #include "net/base/url_util.h"
 #include "net/http/http_response_headers.h"
diff --git a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
index 132a73ca..23491cd2b 100644
--- a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
+++ b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
@@ -11,6 +11,8 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/GeolocationHeader_jni.h"
+#include "chrome/android/chrome_jni_headers/SearchGeolocationDisclosureTabHelper_jni.h"
 #include "chrome/browser/android/search_permissions/search_geolocation_disclosure_infobar_delegate.h"
 #include "chrome/browser/android/search_permissions/search_permissions_service.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -30,8 +32,6 @@
 #include "components/search_engines/template_url_service.h"
 #include "components/variations/variations_associated_data.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/GeolocationHeader_jni.h"
-#include "jni/SearchGeolocationDisclosureTabHelper_jni.h"
 #include "third_party/blink/public/mojom/permissions/permission_status.mojom.h"
 #include "url/origin.h"
 
diff --git a/chrome/browser/android/send_tab_to_self/android_notification_handler.cc b/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
index 93bcd39..a098d0bd 100644
--- a/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
+++ b/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
@@ -10,8 +10,8 @@
 #include "base/android/jni_string.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/NotificationManager_jni.h"
 #include "components/send_tab_to_self/send_tab_to_self_entry.h"
-#include "jni/NotificationManager_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/send_tab_to_self/send_tab_to_self_android_bridge.cc b/chrome/browser/android/send_tab_to_self/send_tab_to_self_android_bridge.cc
index 5487371..04ce5ee 100644
--- a/chrome/browser/android/send_tab_to_self/send_tab_to_self_android_bridge.cc
+++ b/chrome/browser/android/send_tab_to_self/send_tab_to_self_android_bridge.cc
@@ -9,6 +9,8 @@
 #include "base/android/jni_string.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/SendTabToSelfAndroidBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/TargetDeviceInfo_jni.h"
 #include "chrome/browser/android/send_tab_to_self/send_tab_to_self_entry_bridge.h"
 #include "chrome/browser/android/send_tab_to_self/send_tab_to_self_infobar.h"
 #include "chrome/browser/profiles/profile.h"
@@ -22,8 +24,6 @@
 #include "components/send_tab_to_self/send_tab_to_self_sync_service.h"
 #include "components/send_tab_to_self/target_device_info.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SendTabToSelfAndroidBridge_jni.h"
-#include "jni/TargetDeviceInfo_jni.h"
 #include "url/gurl.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/android/send_tab_to_self/send_tab_to_self_entry_bridge.cc b/chrome/browser/android/send_tab_to_self/send_tab_to_self_entry_bridge.cc
index d408b8f..c393a239 100644
--- a/chrome/browser/android/send_tab_to_self/send_tab_to_self_entry_bridge.cc
+++ b/chrome/browser/android/send_tab_to_self/send_tab_to_self_entry_bridge.cc
@@ -6,8 +6,8 @@
 
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/SendTabToSelfEntry_jni.h"
 #include "components/send_tab_to_self/send_tab_to_self_entry.h"
-#include "jni/SendTabToSelfEntry_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/send_tab_to_self/send_tab_to_self_infobar.cc b/chrome/browser/android/send_tab_to_self/send_tab_to_self_infobar.cc
index 9280a9c..b0f2400 100644
--- a/chrome/browser/android/send_tab_to_self/send_tab_to_self_infobar.cc
+++ b/chrome/browser/android/send_tab_to_self/send_tab_to_self_infobar.cc
@@ -11,12 +11,12 @@
 #include "base/callback.h"
 #include "base/callback_helpers.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/SendTabToSelfInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/ui/android/infobars/infobar_android.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SendTabToSelfInfoBar_jni.h"
 
 namespace send_tab_to_self {
 
diff --git a/chrome/browser/android/send_tab_to_self/send_tab_to_self_model_observer_bridge.cc b/chrome/browser/android/send_tab_to_self/send_tab_to_self_model_observer_bridge.cc
index fe2af45..47fb7c8 100644
--- a/chrome/browser/android/send_tab_to_self/send_tab_to_self_model_observer_bridge.cc
+++ b/chrome/browser/android/send_tab_to_self/send_tab_to_self_model_observer_bridge.cc
@@ -10,6 +10,7 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/SendTabToSelfModelObserverBridge_jni.h"
 #include "chrome/browser/android/send_tab_to_self/send_tab_to_self_entry_bridge.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
@@ -18,7 +19,6 @@
 #include "components/send_tab_to_self/send_tab_to_self_model.h"
 #include "components/send_tab_to_self/send_tab_to_self_sync_service.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SendTabToSelfModelObserverBridge_jni.h"
 #include "url/gurl.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/android/service_tab_launcher.cc b/chrome/browser/android/service_tab_launcher.cc
index 0077f25a..5016ae0 100644
--- a/chrome/browser/android/service_tab_launcher.cc
+++ b/chrome/browser/android/service_tab_launcher.cc
@@ -8,10 +8,10 @@
 
 #include "base/android/jni_string.h"
 #include "base/callback.h"
+#include "chrome/android/chrome_jni_headers/ServiceTabLauncher_jni.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/page_navigator.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ServiceTabLauncher_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/servicification_background_service_jni.cc b/chrome/browser/android/servicification_background_service_jni.cc
index d9f075b..ab7f7e1 100644
--- a/chrome/browser/android/servicification_background_service_jni.cc
+++ b/chrome/browser/android/servicification_background_service_jni.cc
@@ -11,8 +11,8 @@
 #include "base/files/memory_mapped_file.h"
 #include "base/metrics/persistent_histogram_allocator.h"
 #include "base/system/sys_info.h"
+#include "chrome/android/test_support_jni_headers/ServicificationBackgroundService_jni.h"
 #include "components/metrics/persistent_system_profile.h"
-#include "jni/ServicificationBackgroundService_jni.h"
 #include "third_party/metrics_proto/system_profile.pb.h"
 
 // Verifies that the memory-mapped file for persistent histograms data exists
diff --git a/chrome/browser/android/sessions/session_tab_helper_android.cc b/chrome/browser/android/sessions/session_tab_helper_android.cc
index 3950bff..8edf06c 100644
--- a/chrome/browser/android/sessions/session_tab_helper_android.cc
+++ b/chrome/browser/android/sessions/session_tab_helper_android.cc
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/SessionTabHelper_jni.h"
 #include "chrome/browser/sessions/session_tab_helper.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SessionTabHelper_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/shortcut_helper.cc b/chrome/browser/android/shortcut_helper.cc
index ec24eeb..5eccb3af 100644
--- a/chrome/browser/android/shortcut_helper.cc
+++ b/chrome/browser/android/shortcut_helper.cc
@@ -18,6 +18,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/ShortcutHelper_jni.h"
 #include "chrome/browser/android/color_helpers.h"
 #include "chrome/browser/android/webapk/chrome_webapk_host.h"
 #include "chrome/browser/android/webapk/webapk_install_service.h"
@@ -26,7 +27,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/manifest_icon_downloader.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ShortcutHelper_jni.h"
 #include "third_party/blink/public/common/manifest/manifest.h"
 #include "third_party/blink/public/common/manifest/manifest_icon_selector.h"
 #include "third_party/skia/include/core/SkColor.h"
diff --git a/chrome/browser/android/signin/signin_investigator_android.cc b/chrome/browser/android/signin/signin_investigator_android.cc
index 6618fc9..f670a389 100644
--- a/chrome/browser/android/signin/signin_investigator_android.cc
+++ b/chrome/browser/android/signin/signin_investigator_android.cc
@@ -6,12 +6,12 @@
 
 #include "base/android/jni_string.h"
 #include "base/optional.h"
+#include "chrome/android/chrome_jni_headers/SigninInvestigator_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/signin/investigator_dependency_provider.h"
 #include "components/signin/core/browser/account_info.h"
-#include "jni/SigninInvestigator_jni.h"
 #include "services/identity/public/cpp/identity_manager.h"
 
 using base::android::ConvertJavaStringToUTF8;
diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc
index ed022b69..55056a93 100644
--- a/chrome/browser/android/signin/signin_manager_android.cc
+++ b/chrome/browser/android/signin/signin_manager_android.cc
@@ -17,6 +17,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/single_thread_task_runner.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/SigninManager_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
 #include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
@@ -37,7 +38,6 @@
 #include "content/public/browser/storage_partition.h"
 #include "google_apis/gaia/gaia_auth_util.h"
 #include "google_apis/gaia/gaia_constants.h"
-#include "jni/SigninManager_jni.h"
 #include "services/identity/public/cpp/primary_account_mutator.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/signin/signin_promo_util_android.cc b/chrome/browser/android/signin/signin_promo_util_android.cc
index 3e357f5..6d22830 100644
--- a/chrome/browser/android/signin/signin_promo_util_android.cc
+++ b/chrome/browser/android/signin/signin_promo_util_android.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/signin/signin_promo_util_android.h"
 
 #include "base/android/jni_android.h"
-#include "jni/SigninPromoUtil_jni.h"
+#include "chrome/android/chrome_jni_headers/SigninPromoUtil_jni.h"
 #include "ui/android/window_android.h"
 
 namespace chrome {
diff --git a/chrome/browser/android/signin/signin_utils.cc b/chrome/browser/android/signin/signin_utils.cc
index e5ede463..b62b6ab 100644
--- a/chrome/browser/android/signin/signin_utils.cc
+++ b/chrome/browser/android/signin/signin_utils.cc
@@ -7,10 +7,10 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/SigninUtils_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/profiles/profile_metrics.h"
-#include "jni/SigninUtils_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/signin/unified_consent_service_bridge.cc b/chrome/browser/android/signin/unified_consent_service_bridge.cc
index 85d016a..8998abc0 100644
--- a/chrome/browser/android/signin/unified_consent_service_bridge.cc
+++ b/chrome/browser/android/signin/unified_consent_service_bridge.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/UnifiedConsentServiceBridge_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/sync/profile_sync_service_factory.h"
@@ -11,7 +12,6 @@
 #include "components/sync/driver/sync_service.h"
 #include "components/unified_consent/pref_names.h"
 #include "components/unified_consent/unified_consent_service.h"
-#include "jni/UnifiedConsentServiceBridge_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/ssl/mock_cert_verifier_rule_android.cc b/chrome/browser/android/ssl/mock_cert_verifier_rule_android.cc
index 36ead1b..b7f5787 100644
--- a/chrome/browser/android/ssl/mock_cert_verifier_rule_android.cc
+++ b/chrome/browser/android/ssl/mock_cert_verifier_rule_android.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/ssl/mock_cert_verifier_rule_android.h"
 
 #include "base/command_line.h"
-#include "jni/MockCertVerifierRuleAndroid_jni.h"
+#include "chrome/android/test_support_jni_headers/MockCertVerifierRuleAndroid_jni.h"
 
 jlong JNI_MockCertVerifierRuleAndroid_Init(JNIEnv* env, jint result) {
   return reinterpret_cast<intptr_t>(new MockCertVerifierRuleAndroid(result));
diff --git a/chrome/browser/android/startup_bridge.cc b/chrome/browser/android/startup_bridge.cc
index 718db043..12af6b0 100644
--- a/chrome/browser/android/startup_bridge.cc
+++ b/chrome/browser/android/startup_bridge.cc
@@ -8,8 +8,8 @@
 
 #include "base/android/jni_android.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/NativeStartupBridge_jni.h"
 #include "chrome/browser/browser_process.h"
-#include "jni/NativeStartupBridge_jni.h"
 
 namespace android_startup {
 
diff --git a/chrome/browser/android/subresource_filter/test_subresource_filter_publisher.cc b/chrome/browser/android/subresource_filter/test_subresource_filter_publisher.cc
index 35f346e2b..c0d2018 100644
--- a/chrome/browser/android/subresource_filter/test_subresource_filter_publisher.cc
+++ b/chrome/browser/android/subresource_filter/test_subresource_filter_publisher.cc
@@ -19,11 +19,11 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/threading/thread_restrictions.h"
+#include "chrome/android/chrome_jni_headers/TestSubresourceFilterPublisher_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "components/subresource_filter/content/browser/ruleset_service.h"
 #include "components/subresource_filter/core/common/unindexed_ruleset.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/TestSubresourceFilterPublisher_jni.h"
 #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h"
 
 // TODO(csharrison): This whole file is a hack, because Android cannot use
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
index 5fc58e87..1d37311 100644
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
@@ -13,6 +13,7 @@
 #include "base/metrics/user_metrics.h"
 #include "base/trace_event/trace_event.h"
 #include "cc/layers/layer.h"
+#include "chrome/android/chrome_jni_headers/Tab_jni.h"
 #include "chrome/browser/android/background_tab_manager.h"
 #include "chrome/browser/android/compositor/tab_content_manager.h"
 #include "chrome/browser/android/metrics/uma_utils.h"
@@ -63,7 +64,6 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_user_data.h"
 #include "content/public/common/resource_request_body_android.h"
-#include "jni/Tab_jni.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 #include "ui/android/view_android.h"
diff --git a/chrome/browser/android/tab_browser_controls_state.cc b/chrome/browser/android/tab_browser_controls_state.cc
index 0e15fede..d52e2695 100644
--- a/chrome/browser/android/tab_browser_controls_state.cc
+++ b/chrome/browser/android/tab_browser_controls_state.cc
@@ -4,12 +4,12 @@
 
 #include "chrome/browser/android/tab_browser_controls_state.h"
 
+#include "chrome/android/chrome_jni_headers/TabBrowserControlsState_jni.h"
 #include "chrome/common/chrome_render_frame.mojom.h"
 #include "content/public/browser/interstitial_page.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/browser_controls_state.h"
-#include "jni/TabBrowserControlsState_jni.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/android/tab_favicon.cc b/chrome/browser/android/tab_favicon.cc
index f800f58..3489223 100644
--- a/chrome/browser/android/tab_favicon.cc
+++ b/chrome/browser/android/tab_favicon.cc
@@ -4,9 +4,9 @@
 
 #include "chrome/browser/android/tab_favicon.h"
 
+#include "chrome/android/chrome_jni_headers/TabFavicon_jni.h"
 #include "components/favicon/content/content_favicon_driver.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TabFavicon_jni.h"
 #include "skia/ext/image_operations.h"
 #include "ui/display/display.h"
 #include "ui/display/screen.h"
diff --git a/chrome/browser/android/tab_printer.cc b/chrome/browser/android/tab_printer.cc
index 486ad9e..a1095f4 100644
--- a/chrome/browser/android/tab_printer.cc
+++ b/chrome/browser/android/tab_printer.cc
@@ -4,11 +4,11 @@
 
 #include "chrome/browser/android/tab_printer.h"
 
+#include "chrome/android/chrome_jni_headers/TabPrinter_jni.h"
 #include "chrome/browser/printing/print_view_manager_basic.h"
 #include "chrome/browser/printing/print_view_manager_common.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/render_frame_host.h"
-#include "jni/TabPrinter_jni.h"
 
 using base::android::ScopedJavaLocalRef;
 
diff --git a/chrome/browser/android/tab_state.cc b/chrome/browser/android/tab_state.cc
index 2f3df18f..69e1ca54 100644
--- a/chrome/browser/android/tab_state.cc
+++ b/chrome/browser/android/tab_state.cc
@@ -15,6 +15,7 @@
 #include "base/android/jni_string.h"
 #include "base/logging.h"
 #include "base/pickle.h"
+#include "chrome/android/chrome_jni_headers/TabState_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -25,7 +26,6 @@
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/restore_type.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TabState_jni.h"
 
 using base::android::ConvertUTF16ToJavaString;
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc
index a2b977c1..6906071b 100644
--- a/chrome/browser/android/tab_web_contents_delegate_android.cc
+++ b/chrome/browser/android/tab_web_contents_delegate_android.cc
@@ -15,6 +15,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/optional.h"
 #include "base/rand_util.h"
+#include "chrome/android/chrome_jni_headers/TabWebContentsDelegateAndroid_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/android/feature_utilities.h"
 #include "chrome/browser/android/hung_renderer_infobar_delegate.h"
@@ -59,7 +60,6 @@
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/security_style_explanations.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TabWebContentsDelegateAndroid_jni.h"
 #include "third_party/blink/public/common/mediastream/media_stream_request.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/chrome/browser/android/trusted_cdn.cc b/chrome/browser/android/trusted_cdn.cc
index 546ffc6..302bfc6 100644
--- a/chrome/browser/android/trusted_cdn.cc
+++ b/chrome/browser/android/trusted_cdn.cc
@@ -11,13 +11,13 @@
 #include "base/command_line.h"
 #include "base/feature_list.h"
 #include "base/no_destructor.h"
+#include "chrome/android/chrome_jni_headers/TrustedCdn_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/offline_pages/offline_page_utils.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_switches.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TrustedCdn_jni.h"
 #include "url/gurl.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/android/usage_stats/notification_suspender.cc b/chrome/browser/android/usage_stats/notification_suspender.cc
index 74c6509..cd32d15 100644
--- a/chrome/browser/android/usage_stats/notification_suspender.cc
+++ b/chrome/browser/android/usage_stats/notification_suspender.cc
@@ -7,12 +7,12 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/NotificationSuspender_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/platform_notification_context.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/NotificationSuspender_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
diff --git a/chrome/browser/android/usage_stats/usage_stats_bridge.cc b/chrome/browser/android/usage_stats/usage_stats_bridge.cc
index 5835e45..282ee71 100644
--- a/chrome/browser/android/usage_stats/usage_stats_bridge.cc
+++ b/chrome/browser/android/usage_stats/usage_stats_bridge.cc
@@ -10,6 +10,7 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/UsageStatsBridge_jni.h"
 #include "chrome/browser/android/usage_stats/usage_stats_database.h"
 #include "chrome/browser/android/usage_stats/website_event.pb.h"
 #include "chrome/browser/history/history_service_factory.h"
@@ -18,7 +19,6 @@
 #include "chrome/common/pref_names.h"
 #include "components/history/core/browser/history_service.h"
 #include "components/pref_registry/pref_registry_syncable.h"
-#include "jni/UsageStatsBridge_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/util/url_utilities.cc b/chrome/browser/android/util/url_utilities.cc
index aa9be11..337c229e 100644
--- a/chrome/browser/android/util/url_utilities.cc
+++ b/chrome/browser/android/util/url_utilities.cc
@@ -7,8 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/strings/string_util.h"
+#include "chrome/lib/util/public/android/jni_headers/UrlUtilities_jni.h"
 #include "components/google/core/common/google_util.h"
-#include "jni/UrlUtilities_jni.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/android/vr/BUILD.gn b/chrome/browser/android/vr/BUILD.gn
index f40b4b4..7497ce23 100644
--- a/chrome/browser/android/vr/BUILD.gn
+++ b/chrome/browser/android/vr/BUILD.gn
@@ -222,7 +222,6 @@
     sources = [
       "//chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreJavaUtils.java",
     ]
-    jni_package = "vr"
   }
 }
 
diff --git a/chrome/browser/android/vr/DEPS b/chrome/browser/android/vr/DEPS
index 23b174d..36776e6 100644
--- a/chrome/browser/android/vr/DEPS
+++ b/chrome/browser/android/vr/DEPS
@@ -2,6 +2,7 @@
   "+cc/base",
   "+cc/layers",
   "+cc/test",
+  "+chrome/android/features/vr/jni_headers",
   "+device/vr",
   "+services/metrics/public/cpp/ukm_builders.h",
   "+third_party/gvr-android-keyboard/src",
diff --git a/chrome/browser/android/vr/android_ui_gesture_target.cc b/chrome/browser/android/vr/android_ui_gesture_target.cc
index 16c92c1..94a47ea8 100644
--- a/chrome/browser/android/vr/android_ui_gesture_target.cc
+++ b/chrome/browser/android/vr/android_ui_gesture_target.cc
@@ -6,8 +6,8 @@
 
 #include <cmath>
 
+#include "chrome/android/features/vr/jni_headers/AndroidUiGestureTarget_jni.h"
 #include "chrome/browser/vr/input_event.h"
-#include "jni/AndroidUiGestureTarget_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/android/vr/android_vsync_helper.cc b/chrome/browser/android/vr/android_vsync_helper.cc
index 3eca7ae..1742e5b 100644
--- a/chrome/browser/android/vr/android_vsync_helper.cc
+++ b/chrome/browser/android/vr/android_vsync_helper.cc
@@ -8,7 +8,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/logging.h"
-#include "jni/AndroidVSyncHelper_jni.h"
+#include "chrome/android/features/vr/jni_headers/AndroidVSyncHelper_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/vr/arcore_device/arcore_java_utils.cc b/chrome/browser/android/vr/arcore_device/arcore_java_utils.cc
index dee136f..ed7fe69 100644
--- a/chrome/browser/android/vr/arcore_device/arcore_java_utils.cc
+++ b/chrome/browser/android/vr/arcore_device/arcore_java_utils.cc
@@ -6,12 +6,12 @@
 
 #include "base/android/jni_string.h"
 #include "chrome/browser/android/tab_android.h"
+#include "chrome/browser/android/vr/ar_jni_headers/ArCoreJavaUtils_jni.h"
 #include "chrome/browser/android/vr/arcore_device/arcore_device_provider.h"
 #include "chrome/browser/android/vr/arcore_device/arcore_shim.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "device/vr/android/arcore/arcore_device_provider_factory.h"
-#include "jni/ArCoreJavaUtils_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/vr/gvr_consent_helper_impl.cc b/chrome/browser/android/vr/gvr_consent_helper_impl.cc
index 23dfa84..e0b99d7 100644
--- a/chrome/browser/android/vr/gvr_consent_helper_impl.cc
+++ b/chrome/browser/android/vr/gvr_consent_helper_impl.cc
@@ -9,10 +9,10 @@
 #include "base/android/jni_string.h"
 #include "base/callback.h"
 #include "base/macros.h"
+#include "chrome/android/features/vr/jni_headers/VrConsentDialog_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/VrConsentDialog_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/vr/gvr_keyboard_shim.cc b/chrome/browser/android/vr/gvr_keyboard_shim.cc
index 2e29ce5b..efa41d21 100644
--- a/chrome/browser/android/vr/gvr_keyboard_shim.cc
+++ b/chrome/browser/android/vr/gvr_keyboard_shim.cc
@@ -12,7 +12,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/logging.h"
-#include "jni/GvrKeyboardLoaderClient_jni.h"
+#include "chrome/android/features/vr/jni_headers/GvrKeyboardLoaderClient_jni.h"
 
 namespace {
 
diff --git a/chrome/browser/android/vr/vr_core_info.cc b/chrome/browser/android/vr/vr_core_info.cc
index 43ffa84d..d402ea2 100644
--- a/chrome/browser/android/vr/vr_core_info.cc
+++ b/chrome/browser/android/vr/vr_core_info.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/android/vr/vr_core_info.h"
 
 #include "base/android/jni_android.h"
-#include "jni/VrCoreInfo_jni.h"
+#include "chrome/android/features/vr/jni_headers/VrCoreInfo_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/vr/vr_input_connection.cc b/chrome/browser/android/vr/vr_input_connection.cc
index b4d806fc..bb729949 100644
--- a/chrome/browser/android/vr/vr_input_connection.cc
+++ b/chrome/browser/android/vr/vr_input_connection.cc
@@ -10,10 +10,10 @@
 #include "base/android/jni_string.h"
 #include "base/logging.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/features/vr/jni_headers/TextEditAction_jni.h"
+#include "chrome/android/features/vr/jni_headers/VrInputConnection_jni.h"
 #include "chrome/browser/vr/model/text_input_info.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TextEditAction_jni.h"
-#include "jni/VrInputConnection_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/vr/vr_module_provider.cc b/chrome/browser/android/vr/vr_module_provider.cc
index f958649..623e897 100644
--- a/chrome/browser/android/vr/vr_module_provider.cc
+++ b/chrome/browser/android/vr/vr_module_provider.cc
@@ -7,12 +7,12 @@
 #include <memory>
 #include <utility>
 
+#include "chrome/android/features/vr/jni_headers/VrModuleProvider_jni.h"
 #include "chrome/browser/android/vr/gvr_consent_helper_impl.h"
 #include "chrome/browser/android/vr/register_jni.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "device/vr/android/gvr/vr_module_delegate.h"
-#include "jni/VrModuleProvider_jni.h"
 
 namespace vr {
 
diff --git a/chrome/browser/android/vr/vr_shell.cc b/chrome/browser/android/vr/vr_shell.cc
index 992cc781..7353577 100644
--- a/chrome/browser/android/vr/vr_shell.cc
+++ b/chrome/browser/android/vr/vr_shell.cc
@@ -21,6 +21,7 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
 #include "base/values.h"
+#include "chrome/android/features/vr/jni_headers/VrShell_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/android/vr/android_ui_gesture_target.h"
 #include "chrome/browser/android/vr/autocomplete_controller.h"
@@ -68,7 +69,6 @@
 #include "device/vr/android/gvr/gvr_device.h"
 #include "device/vr/android/gvr/gvr_gamepad_data_fetcher.h"
 #include "gpu/command_buffer/common/mailbox.h"
-#include "jni/VrShell_jni.h"
 #include "services/device/public/mojom/constants.mojom.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/service_manager/public/cpp/connector.h"
diff --git a/chrome/browser/android/vr/vr_shell_delegate.cc b/chrome/browser/android/vr/vr_shell_delegate.cc
index cc526ae5..973dcd6 100644
--- a/chrome/browser/android/vr/vr_shell_delegate.cc
+++ b/chrome/browser/android/vr/vr_shell_delegate.cc
@@ -8,6 +8,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/bind.h"
+#include "chrome/android/features/vr/jni_headers/VrShellDelegate_jni.h"
 #include "chrome/browser/android/vr/arcore_device/arcore_device_provider.h"
 #include "chrome/browser/android/vr/metrics_util_android.h"
 #include "chrome/browser/android/vr/vr_shell.h"
@@ -24,7 +25,6 @@
 #include "device/vr/buildflags/buildflags.h"
 #include "device/vr/public/cpp/session_mode.h"
 #include "device/vr/public/mojom/vr_service.mojom.h"
-#include "jni/VrShellDelegate_jni.h"
 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/android/warmup_manager.cc b/chrome/browser/android/warmup_manager.cc
index ba43a27..1f6a5d982 100644
--- a/chrome/browser/android/warmup_manager.cc
+++ b/chrome/browser/android/warmup_manager.cc
@@ -4,12 +4,12 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/WarmupManager_jni.h"
 #include "chrome/browser/predictors/loading_predictor.h"
 #include "chrome/browser/predictors/loading_predictor_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "content/public/browser/render_process_host.h"
-#include "jni/WarmupManager_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/android/web_contents_factory.cc b/chrome/browser/android/web_contents_factory.cc
index e68ab2c..db2de11 100644
--- a/chrome/browser/android/web_contents_factory.cc
+++ b/chrome/browser/android/web_contents_factory.cc
@@ -3,12 +3,12 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/WebContentsFactory_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/WebContentsFactory_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/android/webapk/webapk_install_service.cc b/chrome/browser/android/webapk/webapk_install_service.cc
index dff0770..9c4134c 100644
--- a/chrome/browser/android/webapk/webapk_install_service.cc
+++ b/chrome/browser/android/webapk/webapk_install_service.cc
@@ -10,11 +10,11 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/files/file_path.h"
+#include "chrome/android/chrome_jni_headers/WebApkInstallService_jni.h"
 #include "chrome/browser/android/shortcut_helper.h"
 #include "chrome/browser/android/shortcut_info.h"
 #include "chrome/browser/android/webapk/webapk_install_service_factory.h"
 #include "chrome/browser/android/webapk/webapk_installer.h"
-#include "jni/WebApkInstallService_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 
 // static
diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc
index 9e8119e..e7fb55d 100644
--- a/chrome/browser/android/webapk/webapk_installer.cc
+++ b/chrome/browser/android/webapk/webapk_installer.cc
@@ -26,6 +26,7 @@
 #include "base/task_runner_util.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/timer/elapsed_timer.h"
+#include "chrome/android/chrome_jni_headers/WebApkInstaller_jni.h"
 #include "chrome/browser/android/color_helpers.h"
 #include "chrome/browser/android/shortcut_helper.h"
 #include "chrome/browser/android/webapk/chrome_webapk_host.h"
@@ -41,7 +42,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/browsing_data_remover.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/WebApkInstaller_jni.h"
 #include "net/base/load_flags.h"
 #include "net/http/http_status_code.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
diff --git a/chrome/browser/android/webapk/webapk_post_share_target_navigator.cc b/chrome/browser/android/webapk/webapk_post_share_target_navigator.cc
index bd6bcbb..6398a151 100644
--- a/chrome/browser/android/webapk/webapk_post_share_target_navigator.cc
+++ b/chrome/browser/android/webapk/webapk_post_share_target_navigator.cc
@@ -12,8 +12,8 @@
 #include "base/android/jni_string.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversion_utils.h"
+#include "chrome/android/chrome_jni_headers/WebApkPostShareTargetNavigator_jni.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/WebApkPostShareTargetNavigator_jni.h"
 #include "net/base/escape.h"
 #include "net/base/mime_util.h"
 #include "ui/base/window_open_disposition.h"
diff --git a/chrome/browser/android/webapk/webapk_update_data_fetcher.cc b/chrome/browser/android/webapk/webapk_update_data_fetcher.cc
index 7bd52ac9..ea51b1c 100644
--- a/chrome/browser/android/webapk/webapk_update_data_fetcher.cc
+++ b/chrome/browser/android/webapk/webapk_update_data_fetcher.cc
@@ -12,6 +12,7 @@
 #include "base/bind.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/WebApkUpdateDataFetcher_jni.h"
 #include "chrome/browser/android/color_helpers.h"
 #include "chrome/browser/android/shortcut_helper.h"
 #include "chrome/browser/android/webapk/webapk_icon_hasher.h"
@@ -21,7 +22,6 @@
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/WebApkUpdateDataFetcher_jni.h"
 #include "third_party/blink/public/common/manifest/manifest.h"
 #include "third_party/smhasher/src/MurmurHash2.h"
 #include "ui/gfx/android/java_bitmap.h"
diff --git a/chrome/browser/android/webapk/webapk_update_manager.cc b/chrome/browser/android/webapk/webapk_update_manager.cc
index 9772c2b..d9986a5b0 100644
--- a/chrome/browser/android/webapk/webapk_update_manager.cc
+++ b/chrome/browser/android/webapk/webapk_update_manager.cc
@@ -14,6 +14,7 @@
 #include "base/files/file_path.h"
 #include "base/strings/string16.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/WebApkUpdateManager_jni.h"
 #include "chrome/browser/android/color_helpers.h"
 #include "chrome/browser/android/shortcut_info.h"
 #include "chrome/browser/android/webapk/webapk_install_service.h"
@@ -21,7 +22,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/WebApkUpdateManager_jni.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/android/webapps/add_to_homescreen_manager.cc b/chrome/browser/android/webapps/add_to_homescreen_manager.cc
index c064cd6..b882493 100644
--- a/chrome/browser/android/webapps/add_to_homescreen_manager.cc
+++ b/chrome/browser/android/webapps/add_to_homescreen_manager.cc
@@ -9,6 +9,7 @@
 #include "base/location.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/AddToHomescreenManager_jni.h"
 #include "chrome/browser/android/shortcut_helper.h"
 #include "chrome/browser/android/webapk/webapk_install_service.h"
 #include "chrome/browser/banners/app_banner_manager_android.h"
@@ -19,7 +20,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/AddToHomescreenManager_jni.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/mojom/installation/installation.mojom.h"
diff --git a/chrome/browser/android/webapps/webapp_registry.cc b/chrome/browser/android/webapps/webapp_registry.cc
index bb909c8..f567b03c 100644
--- a/chrome/browser/android/webapps/webapp_registry.cc
+++ b/chrome/browser/android/webapps/webapp_registry.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/android/webapps/webapp_registry.h"
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/WebappRegistry_jni.h"
 #include "chrome/browser/android/browsing_data/url_filter_bridge.h"
-#include "jni/WebappRegistry_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/android/widget/thumbnail_generator.cc b/chrome/browser/android/widget/thumbnail_generator.cc
index 55c4b58..bd6db3db 100644
--- a/chrome/browser/android/widget/thumbnail_generator.cc
+++ b/chrome/browser/android/widget/thumbnail_generator.cc
@@ -9,10 +9,10 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/threading/thread_restrictions.h"
+#include "chrome/android/chrome_jni_headers/ThumbnailGenerator_jni.h"
 #include "chrome/browser/android/download/download_media_parser.h"
 #include "chrome/browser/download/thumbnail_util.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/ThumbnailGenerator_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 
 class SkBitmap;
diff --git a/chrome/browser/autofill/android/personal_data_manager_android.cc b/chrome/browser/autofill/android/personal_data_manager_android.cc
index b1d2293..91fc1c3 100644
--- a/chrome/browser/autofill/android/personal_data_manager_android.cc
+++ b/chrome/browser/autofill/android/personal_data_manager_android.cc
@@ -17,6 +17,7 @@
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/PersonalDataManager_jni.h"
 #include "chrome/browser/android/preferences/prefs.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/autofill/address_normalizer_factory.h"
@@ -44,7 +45,6 @@
 #include "components/autofill/core/common/autofill_switches.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PersonalDataManager_jni.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "third_party/libaddressinput/chromium/chrome_metadata_source.h"
 #include "third_party/libaddressinput/chromium/chrome_storage_impl.h"
diff --git a/chrome/browser/autofill/android/phone_number_util_android.cc b/chrome/browser/autofill/android/phone_number_util_android.cc
index 406925e..f768c0b 100644
--- a/chrome/browser/autofill/android/phone_number_util_android.cc
+++ b/chrome/browser/autofill/android/phone_number_util_android.cc
@@ -4,9 +4,9 @@
 
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/PhoneNumberUtil_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "components/autofill/core/browser/geo/autofill_country.h"
-#include "jni/PhoneNumberUtil_jni.h"
 #include "third_party/libphonenumber/phonenumber_api.h"
 
 namespace autofill {
diff --git a/chrome/browser/background_sync/periodic_background_sync_permission_context.cc b/chrome/browser/background_sync/periodic_background_sync_permission_context.cc
index 2157e27..cb9efe2 100644
--- a/chrome/browser/background_sync/periodic_background_sync_permission_context.cc
+++ b/chrome/browser/background_sync/periodic_background_sync_permission_context.cc
@@ -16,7 +16,7 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/strings/utf_string_conversions.h"
-#include "jni/BackgroundSyncPwaDetector_jni.h"
+#include "chrome/android/chrome_jni_headers/BackgroundSyncPwaDetector_jni.h"
 #endif
 
 PeriodicBackgroundSyncPermissionContext::
diff --git a/chrome/browser/banners/app_banner_manager_android.cc b/chrome/browser/banners/app_banner_manager_android.cc
index 2b0a5af..477a543 100644
--- a/chrome/browser/banners/app_banner_manager_android.cc
+++ b/chrome/browser/banners/app_banner_manager_android.cc
@@ -10,6 +10,7 @@
 #include "base/feature_list.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/AppBannerManager_jni.h"
 #include "chrome/browser/android/shortcut_helper.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/android/webapk/chrome_webapk_host.h"
@@ -23,7 +24,6 @@
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/manifest_icon_downloader.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/AppBannerManager_jni.h"
 #include "net/base/url_util.h"
 
 using base::android::ConvertJavaStringToUTF8;
diff --git a/chrome/browser/banners/app_banner_ui_delegate_android.cc b/chrome/browser/banners/app_banner_ui_delegate_android.cc
index ed66bb29..2e100ba 100644
--- a/chrome/browser/banners/app_banner_ui_delegate_android.cc
+++ b/chrome/browser/banners/app_banner_ui_delegate_android.cc
@@ -8,6 +8,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/AppBannerUiDelegateAndroid_jni.h"
 #include "chrome/browser/android/shortcut_helper.h"
 #include "chrome/browser/android/shortcut_info.h"
 #include "chrome/browser/android/tab_android.h"
@@ -21,7 +22,6 @@
 #include "components/rappor/rappor_service_impl.h"
 #include "components/url_formatter/elide_url.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/AppBannerUiDelegateAndroid_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/complex_tasks/task_tab_helper.cc b/chrome/browser/complex_tasks/task_tab_helper.cc
index b2ceaf3..e18ae1a6 100644
--- a/chrome/browser/complex_tasks/task_tab_helper.cc
+++ b/chrome/browser/complex_tasks/task_tab_helper.cc
@@ -16,8 +16,8 @@
 #include "content/public/browser/navigation_entry.h"
 
 #if defined(OS_ANDROID)
+#include "chrome/android/chrome_jni_headers/TaskTabHelper_jni.h"
 #include "chrome/browser/android/tab_android.h"
-#include "jni/TaskTabHelper_jni.h"
 
 using base::android::JavaParamRef;
 #endif  // defined(OS_ANDROID)
diff --git a/chrome/browser/component_updater/vr_assets_component_installer.cc b/chrome/browser/component_updater/vr_assets_component_installer.cc
index e37e7ad..c8242845 100644
--- a/chrome/browser/component_updater/vr_assets_component_installer.cc
+++ b/chrome/browser/component_updater/vr_assets_component_installer.cc
@@ -27,7 +27,7 @@
 
 #if defined(OS_ANDROID)
 #include "base/android/jni_android.h"
-#include "jni/VrAssetsComponentInstaller_jni.h"
+#include "chrome/android/chrome_jni_headers/VrAssetsComponentInstaller_jni.h"
 #endif  // defined(OS_ANDROID)
 
 using component_updater::ComponentUpdateService;
diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chrome/browser/crash_upload_list/crash_upload_list_android.cc
index 3f05f3e..e881582 100644
--- a/chrome/browser/crash_upload_list/crash_upload_list_android.cc
+++ b/chrome/browser/crash_upload_list/crash_upload_list_android.cc
@@ -12,7 +12,7 @@
 #include "base/files/file_enumerator.h"
 #include "base/files/file_util.h"
 #include "base/metrics/histogram_macros_local.h"
-#include "jni/MinidumpUploadService_jni.h"
+#include "chrome/android/chrome_jni_headers/MinidumpUploadService_jni.h"
 #include "ui/base/text/bytes_formatting.h"
 
 namespace {
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_promo_infobar_delegate_android.cc b/chrome/browser/data_reduction_proxy/data_reduction_promo_infobar_delegate_android.cc
index 5303cda..59e3a06 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_promo_infobar_delegate_android.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_promo_infobar_delegate_android.cc
@@ -4,10 +4,10 @@
 
 #include "chrome/browser/data_reduction_proxy/data_reduction_promo_infobar_delegate_android.h"
 
+#include "chrome/android/chrome_jni_headers/DataReductionPromoInfoBarDelegate_jni.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/infobar.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/DataReductionPromoInfoBarDelegate_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc
index b3c9da2..781cd0ca 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc
@@ -14,6 +14,7 @@
 #include "base/metrics/field_trial_params.h"
 #include "base/strings/string_piece.h"
 #include "base/values.h"
+#include "chrome/android/chrome_jni_headers/DataReductionProxySettings_jni.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -29,7 +30,6 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
 #include "components/previews/core/previews_experiments.h"
-#include "jni/DataReductionProxySettings_jni.h"
 #include "net/base/proxy_server.h"
 #include "net/base/url_util.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/dom_distiller/dom_distiller_service_factory_android.cc b/chrome/browser/dom_distiller/dom_distiller_service_factory_android.cc
index 5e095bf..b67a85e 100644
--- a/chrome/browser/dom_distiller/dom_distiller_service_factory_android.cc
+++ b/chrome/browser/dom_distiller/dom_distiller_service_factory_android.cc
@@ -5,11 +5,11 @@
 #include "chrome/browser/dom_distiller/dom_distiller_service_factory_android.h"
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/DomDistillerServiceFactory_jni.h"
 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/dom_distiller/core/dom_distiller_service_android.h"
-#include "jni/DomDistillerServiceFactory_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/dom_distiller/tab_utils_android.cc b/chrome/browser/dom_distiller/tab_utils_android.cc
index 3d2729ff..53b20fc 100644
--- a/chrome/browser/dom_distiller/tab_utils_android.cc
+++ b/chrome/browser/dom_distiller/tab_utils_android.cc
@@ -5,6 +5,7 @@
 #include <string>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/DomDistillerTabUtils_jni.h"
 #include "chrome/browser/dom_distiller/tab_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -13,7 +14,6 @@
 #include "components/url_formatter/url_formatter.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_constants.h"
-#include "jni/DomDistillerTabUtils_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/engagement/site_engagement_service_android.cc b/chrome/browser/engagement/site_engagement_service_android.cc
index 34458ca..1d57cf9c 100644
--- a/chrome/browser/engagement/site_engagement_service_android.cc
+++ b/chrome/browser/engagement/site_engagement_service_android.cc
@@ -6,9 +6,9 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/SiteEngagementService_jni.h"
 #include "chrome/browser/engagement/site_engagement_score.h"
 #include "chrome/browser/profiles/profile_android.h"
-#include "jni/SiteEngagementService_jni.h"
 #include "url/gurl.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/history/android/sqlite_cursor.cc b/chrome/browser/history/android/sqlite_cursor.cc
index 62d7ab7..094b62a 100644
--- a/chrome/browser/history/android/sqlite_cursor.cc
+++ b/chrome/browser/history/android/sqlite_cursor.cc
@@ -9,10 +9,10 @@
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/SQLiteCursor_jni.h"
 #include "components/history/core/browser/android/android_history_types.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/SQLiteCursor_jni.h"
 #include "sql/statement.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/installable/installed_webapp_bridge.cc b/chrome/browser/installable/installed_webapp_bridge.cc
index 48eac0c..adaa98a 100644
--- a/chrome/browser/installable/installed_webapp_bridge.cc
+++ b/chrome/browser/installable/installed_webapp_bridge.cc
@@ -8,8 +8,8 @@
 
 #include "base/android/jni_string.h"
 #include "base/android/jni_utils.h"
+#include "chrome/android/chrome_jni_headers/InstalledWebappBridge_jni.h"
 #include "components/content_settings/core/common/content_settings.h"
-#include "jni/InstalledWebappBridge_jni.h"
 
 using base::android::ConvertJavaStringToUTF8;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/invalidation/invalidation_service_factory_android.cc b/chrome/browser/invalidation/invalidation_service_factory_android.cc
index 999faa4..cc736d9 100644
--- a/chrome/browser/invalidation/invalidation_service_factory_android.cc
+++ b/chrome/browser/invalidation/invalidation_service_factory_android.cc
@@ -5,12 +5,12 @@
 #include "chrome/browser/invalidation/invalidation_service_factory_android.h"
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/InvalidationServiceFactory_jni.h"
 #include "chrome/browser/invalidation/deprecated_profile_invalidation_provider_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/invalidation/impl/invalidation_service_android.h"
 #include "components/invalidation/impl/profile_invalidation_provider.h"
-#include "jni/InvalidationServiceFactory_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/lifetime/application_lifetime_android.cc b/chrome/browser/lifetime/application_lifetime_android.cc
index fbff5146..54b993d 100644
--- a/chrome/browser/lifetime/application_lifetime_android.cc
+++ b/chrome/browser/lifetime/application_lifetime_android.cc
@@ -8,13 +8,13 @@
 
 #include "base/android/jni_android.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/ApplicationLifetime_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/browser_context.h"
-#include "jni/ApplicationLifetime_jni.h"
 
 namespace chrome {
 
diff --git a/chrome/browser/media/DEPS b/chrome/browser/media/DEPS
index 4ba0b3c8..4439343 100644
--- a/chrome/browser/media/DEPS
+++ b/chrome/browser/media/DEPS
@@ -10,6 +10,7 @@
   "+services/data_decoder/data_decoder_service.h",
   "+services/data_decoder/public",
   "+services/device/public/mojom",
+  "+chrome/android/features/media_router/jni_headers",
 ]
 
 specific_include_rules = {
diff --git a/chrome/browser/media/android/remote/DEPS b/chrome/browser/media/android/remote/DEPS
index 92f0a1f..8f63995 100644
--- a/chrome/browser/media/android/remote/DEPS
+++ b/chrome/browser/media/android/remote/DEPS
@@ -1,3 +1,7 @@
+include_rules = {
+  "+chrome/android/features/media_router/jni_headers",
+}
+
 specific_include_rules = {
   # TODO(aberent): Fix layering violation crbug.com/396828
   "remote_media_player_manager\.": [
@@ -8,4 +12,4 @@
   "remote_media_player_manager\.cc": [
     "+content/common/media/media_player_messages_android.h",
   ],
-}
\ No newline at end of file
+}
diff --git a/chrome/browser/media/android/remote/flinging_controller_bridge.cc b/chrome/browser/media/android/remote/flinging_controller_bridge.cc
index 3e3154b..fe91ec0 100644
--- a/chrome/browser/media/android/remote/flinging_controller_bridge.cc
+++ b/chrome/browser/media/android/remote/flinging_controller_bridge.cc
@@ -6,8 +6,8 @@
 
 #include "base/android/jni_string.h"
 #include "base/time/time.h"
-#include "jni/FlingingControllerBridge_jni.h"
-#include "jni/MediaStatusBridge_jni.h"
+#include "chrome/android/features/media_router/jni_headers/FlingingControllerBridge_jni.h"
+#include "chrome/android/features/media_router/jni_headers/MediaStatusBridge_jni.h"
 
 namespace media_router {
 
diff --git a/chrome/browser/media/android/remote/record_cast_action.cc b/chrome/browser/media/android/remote/record_cast_action.cc
index 89bbfc9..dc26ad2 100644
--- a/chrome/browser/media/android/remote/record_cast_action.cc
+++ b/chrome/browser/media/android/remote/record_cast_action.cc
@@ -4,7 +4,7 @@
 
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
-#include "jni/RecordCastAction_jni.h"
+#include "chrome/android/chrome_jni_headers/RecordCastAction_jni.h"
 #include "media/base/container_names.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/media/android/router/media_router_android_bridge.cc b/chrome/browser/media/android/router/media_router_android_bridge.cc
index b9d8775..178e7dff 100644
--- a/chrome/browser/media/android/router/media_router_android_bridge.cc
+++ b/chrome/browser/media/android/router/media_router_android_bridge.cc
@@ -6,9 +6,9 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/features/media_router/jni_headers/ChromeMediaRouter_jni.h"
 #include "chrome/browser/media/android/remote/flinging_controller_bridge.h"
 #include "chrome/browser/media/android/router/media_router_android.h"
-#include "jni/ChromeMediaRouter_jni.h"
 #include "media/base/media_controller.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/media/android/router/media_router_dialog_controller_android.cc b/chrome/browser/media/android/router/media_router_dialog_controller_android.cc
index 63f47704..27bf2f2 100644
--- a/chrome/browser/media/android/router/media_router_dialog_controller_android.cc
+++ b/chrome/browser/media/android/router/media_router_dialog_controller_android.cc
@@ -12,6 +12,7 @@
 #include "base/bind.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/features/media_router/jni_headers/ChromeMediaRouterDialogController_jni.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/media/android/router/media_router_android.h"
 #include "chrome/browser/media/router/media_router.h"
@@ -24,7 +25,6 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_delegate.h"
 #include "device/vr/buildflags/buildflags.h"
-#include "jni/ChromeMediaRouterDialogController_jni.h"
 #include "third_party/blink/public/mojom/presentation/presentation.mojom.h"
 
 using base::android::ConvertJavaStringToUTF8;
diff --git a/chrome/browser/metrics/android_metrics_provider.cc b/chrome/browser/metrics/android_metrics_provider.cc
index 619bd76..a20e9b5 100644
--- a/chrome/browser/metrics/android_metrics_provider.cc
+++ b/chrome/browser/metrics/android_metrics_provider.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/metrics/android_metrics_provider.h"
 
-#include "jni/NotificationSystemStatusUtil_jni.h"
+#include "chrome/android/chrome_jni_headers/NotificationSystemStatusUtil_jni.h"
 
 #include "base/metrics/histogram_macros.h"
 #include "base/system/sys_info.h"
diff --git a/chrome/browser/notifications/notification_channels_provider_android.cc b/chrome/browser/notifications/notification_channels_provider_android.cc
index 589747c5..f16715d 100644
--- a/chrome/browser/notifications/notification_channels_provider_android.cc
+++ b/chrome/browser/notifications/notification_channels_provider_android.cc
@@ -18,6 +18,7 @@
 #include "base/task/post_task.h"
 #include "base/time/default_clock.h"
 #include "base/values.h"
+#include "chrome/android/chrome_jni_headers/NotificationSettingsBridge_jni.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/pref_names.h"
@@ -34,7 +35,6 @@
 #include "components/search_engines/template_url_service.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/NotificationSettingsBridge_jni.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "url/url_constants.h"
diff --git a/chrome/browser/notifications/notification_platform_bridge_android.cc b/chrome/browser/notifications/notification_platform_bridge_android.cc
index 867b476f..cf0d031e 100644
--- a/chrome/browser/notifications/notification_platform_bridge_android.cc
+++ b/chrome/browser/notifications/notification_platform_bridge_android.cc
@@ -17,6 +17,8 @@
 #include "base/strings/nullable_string16.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/ActionInfo_jni.h"
+#include "chrome/android/chrome_jni_headers/NotificationPlatformBridge_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/notifications/notification_common.h"
 #include "chrome/browser/notifications/notification_display_service_impl.h"
@@ -28,8 +30,6 @@
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/common/persistent_notification_status.h"
-#include "jni/ActionInfo_jni.h"
-#include "jni/NotificationPlatformBridge_jni.h"
 #include "third_party/blink/public/common/notifications/platform_notification_data.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/android/java_bitmap.h"
diff --git a/chrome/browser/notifications/notification_trigger_scheduler_android.cc b/chrome/browser/notifications/notification_trigger_scheduler_android.cc
index 4b48bcc..846d6258 100644
--- a/chrome/browser/notifications/notification_trigger_scheduler_android.cc
+++ b/chrome/browser/notifications/notification_trigger_scheduler_android.cc
@@ -4,9 +4,9 @@
 
 #include "chrome/browser/notifications/notification_trigger_scheduler_android.h"
 
+#include "chrome/android/chrome_jni_headers/NotificationTriggerScheduler_jni.h"
 #include "chrome/browser/notifications/platform_notification_service_impl.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/NotificationTriggerScheduler_jni.h"
 
 using content::BrowserThread;
 
diff --git a/chrome/browser/notifications/scheduler/DEPS b/chrome/browser/notifications/scheduler/DEPS
index c80012b5..c1d3ca8 100644
--- a/chrome/browser/notifications/scheduler/DEPS
+++ b/chrome/browser/notifications/scheduler/DEPS
@@ -1,3 +1,3 @@
 include_rules = [
-  "+jni",
+  "+chrome/android/chrome_jni_headers",
 ]
diff --git a/chrome/browser/notifications/scheduler/display_agent_android.cc b/chrome/browser/notifications/scheduler/display_agent_android.cc
index 8ab0a7a..01c8288 100644
--- a/chrome/browser/notifications/scheduler/display_agent_android.cc
+++ b/chrome/browser/notifications/scheduler/display_agent_android.cc
@@ -6,12 +6,12 @@
 
 #include "base/android/jni_string.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/DisplayAgent_jni.h"
 #include "chrome/browser/notifications/scheduler/notification_schedule_service_factory.h"
 #include "chrome/browser/notifications/scheduler/public/notification_schedule_service.h"
 #include "chrome/browser/notifications/scheduler/public/user_action_handler.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
-#include "jni/DisplayAgent_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.cc b/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.cc
index 60fe6fd..a6b0595 100644
--- a/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.cc
+++ b/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.cc
@@ -6,12 +6,12 @@
 
 #include "base/android/jni_android.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/NotificationSchedulerTask_jni.h"
 #include "chrome/browser/notifications/scheduler/notification_schedule_service_factory.h"
 #include "chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h"
 #include "chrome/browser/notifications/scheduler/public/notification_schedule_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
-#include "jni/NotificationSchedulerTask_jni.h"
 
 // static
 void JNI_NotificationSchedulerTask_OnStartTask(
diff --git a/chrome/browser/offline_pages/android/DEPS b/chrome/browser/offline_pages/android/DEPS
index ff20cbfd..cf1c484 100644
--- a/chrome/browser/offline_pages/android/DEPS
+++ b/chrome/browser/offline_pages/android/DEPS
@@ -2,4 +2,5 @@
   # This folder contains Android-specific code.
   "+base/android",
   "+chrome/browser/android",
+  "+chrome/android/test_support_jni_headers",
 ]
diff --git a/chrome/browser/offline_pages/android/auto_fetch_notifier.cc b/chrome/browser/offline_pages/android/auto_fetch_notifier.cc
index 5f0527f1..b44426a7 100644
--- a/chrome/browser/offline_pages/android/auto_fetch_notifier.cc
+++ b/chrome/browser/offline_pages/android/auto_fetch_notifier.cc
@@ -9,11 +9,11 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/AutoFetchNotifier_jni.h"
 #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher_service.h"
 #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
-#include "jni/AutoFetchNotifier_jni.h"
 
 namespace offline_pages {
 
diff --git a/chrome/browser/offline_pages/android/background_scheduler_bridge.cc b/chrome/browser/offline_pages/android/background_scheduler_bridge.cc
index ad16416..bb52f54 100644
--- a/chrome/browser/offline_pages/android/background_scheduler_bridge.cc
+++ b/chrome/browser/offline_pages/android/background_scheduler_bridge.cc
@@ -7,6 +7,7 @@
 #include "base/android/callback_android.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/BackgroundSchedulerBridge_jni.h"
 #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher_service_factory.h"
 #include "chrome/browser/offline_pages/offline_page_model_factory.h"
 #include "chrome/browser/offline_pages/request_coordinator_factory.h"
@@ -15,7 +16,6 @@
 #include "components/offline_pages/core/background/device_conditions.h"
 #include "components/offline_pages/core/background/offliner.h"
 #include "components/offline_pages/core/background/request_coordinator.h"
-#include "jni/BackgroundSchedulerBridge_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaGlobalRef;
diff --git a/chrome/browser/offline_pages/android/cct_origin_observer.cc b/chrome/browser/offline_pages/android/cct_origin_observer.cc
index 2edba95..2dfabc7b 100644
--- a/chrome/browser/offline_pages/android/cct_origin_observer.cc
+++ b/chrome/browser/offline_pages/android/cct_origin_observer.cc
@@ -6,8 +6,8 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/CctOfflinePageModelObserver_jni.h"
 #include "components/offline_pages/core/offline_page_feature.h"
-#include "jni/CctOfflinePageModelObserver_jni.h"
 
 using base::android::ConvertUTF8ToJavaString;
 
diff --git a/chrome/browser/offline_pages/android/cct_request_observer.cc b/chrome/browser/offline_pages/android/cct_request_observer.cc
index 1ff1d993..c6e6b509 100644
--- a/chrome/browser/offline_pages/android/cct_request_observer.cc
+++ b/chrome/browser/offline_pages/android/cct_request_observer.cc
@@ -10,10 +10,10 @@
 #include "base/android/jni_int_wrapper.h"
 #include "base/android/jni_string.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/CCTRequestStatus_jni.h"
 #include "chrome/browser/android/app_hooks.h"
 #include "components/offline_pages/core/client_namespace_constants.h"
 #include "components/offline_pages/core/offline_page_feature.h"
-#include "jni/CCTRequestStatus_jni.h"
 
 namespace offline_pages {
 namespace {
diff --git a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
index 187544e..2c212ad 100644
--- a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
+++ b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
@@ -15,6 +15,7 @@
 #include "base/guid.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/OfflinePageDownloadBridge_jni.h"
 #include "chrome/browser/android/download/download_controller_base.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/image_fetcher/image_decoder_impl.h"
@@ -47,7 +48,6 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/OfflinePageDownloadBridge_jni.h"
 #include "net/base/filename_util.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/offline_pages/android/evaluation/offline_page_evaluation_bridge.cc b/chrome/browser/offline_pages/android/evaluation/offline_page_evaluation_bridge.cc
index e867740..8c20658 100644
--- a/chrome/browser/offline_pages/android/evaluation/offline_page_evaluation_bridge.cc
+++ b/chrome/browser/offline_pages/android/evaluation/offline_page_evaluation_bridge.cc
@@ -16,6 +16,7 @@
 #include "base/bind.h"
 #include "base/sequenced_task_runner.h"
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/OfflinePageEvaluationBridge_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/offline_pages/android/background_scheduler_bridge.h"
 #include "chrome/browser/offline_pages/android/evaluation/evaluation_test_scheduler.h"
@@ -36,7 +37,6 @@
 #include "components/offline_pages/core/offline_page_item.h"
 #include "components/offline_pages/core/offline_page_model.h"
 #include "content/public/browser/browser_context.h"
-#include "jni/OfflinePageEvaluationBridge_jni.h"
 
 using base::android::ConvertJavaStringToUTF8;
 using base::android::ConvertUTF16ToJavaString;
diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrome/browser/offline_pages/android/offline_page_bridge.cc
index deed342..77d3c8f 100644
--- a/chrome/browser/offline_pages/android/offline_page_bridge.cc
+++ b/chrome/browser/offline_pages/android/offline_page_bridge.cc
@@ -23,6 +23,8 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/task/post_task.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/OfflinePageBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/SavePageRequest_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/offline_pages/offline_page_mhtml_archiver.h"
 #include "chrome/browser/offline_pages/offline_page_model_factory.h"
@@ -47,8 +49,6 @@
 #include "components/offline_pages/core/request_header/offline_page_header.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/OfflinePageBridge_jni.h"
-#include "jni/SavePageRequest_jni.h"
 #include "net/base/filename_util.h"
 
 using base::android::ConvertJavaStringToUTF8;
diff --git a/chrome/browser/offline_pages/android/offline_pages_download_manager_bridge.cc b/chrome/browser/offline_pages/android/offline_pages_download_manager_bridge.cc
index 46584954..6fd0b124 100644
--- a/chrome/browser/offline_pages/android/offline_pages_download_manager_bridge.cc
+++ b/chrome/browser/offline_pages/android/offline_pages_download_manager_bridge.cc
@@ -8,7 +8,7 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
-#include "jni/OfflinePagesDownloadManagerBridge_jni.h"
+#include "chrome/android/chrome_jni_headers/OfflinePagesDownloadManagerBridge_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/offline_pages/android/offline_test_util_jni.cc b/chrome/browser/offline_pages/android/offline_test_util_jni.cc
index 6baad1ea..2f76339 100644
--- a/chrome/browser/offline_pages/android/offline_test_util_jni.cc
+++ b/chrome/browser/offline_pages/android/offline_test_util_jni.cc
@@ -12,6 +12,7 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/json/json_writer.h"
+#include "chrome/android/test_support_jni_headers/OfflineTestUtil_jni.h"
 #include "chrome/browser/android/profile_key_util.h"
 #include "chrome/browser/offline_pages/android/offline_page_bridge.h"
 #include "chrome/browser/offline_pages/offline_page_model_factory.h"
@@ -25,7 +26,6 @@
 #include "components/offline_pages/core/prefetch/prefetch_prefs.h"
 #include "content/public/browser/network_service_instance.h"
 #include "content/public/test/url_loader_interceptor.h"
-#include "jni/OfflineTestUtil_jni.h"
 
 // Below is the native implementation of OfflineTestUtil.java.
 
diff --git a/chrome/browser/offline_pages/android/prefetch_background_task_android.cc b/chrome/browser/offline_pages/android/prefetch_background_task_android.cc
index 989729b..bb8abe71 100644
--- a/chrome/browser/offline_pages/android/prefetch_background_task_android.cc
+++ b/chrome/browser/offline_pages/android/prefetch_background_task_android.cc
@@ -7,13 +7,13 @@
 
 #include "base/logging.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/PrefetchBackgroundTask_jni.h"
 #include "chrome/browser/android/profile_key_util.h"
 #include "chrome/browser/offline_pages/prefetch/prefetch_service_factory.h"
 #include "chrome/browser/profiles/profile_key.h"
 #include "components/offline_pages/core/prefetch/prefetch_background_task.h"
 #include "components/offline_pages/core/prefetch/prefetch_dispatcher.h"
 #include "components/offline_pages/core/prefetch/prefetch_service.h"
-#include "jni/PrefetchBackgroundTask_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaGlobalRef;
diff --git a/chrome/browser/offline_pages/android/prefetch_background_task_scheduler_android.cc b/chrome/browser/offline_pages/android/prefetch_background_task_scheduler_android.cc
index dc1a7d0..e69e601 100644
--- a/chrome/browser/offline_pages/android/prefetch_background_task_scheduler_android.cc
+++ b/chrome/browser/offline_pages/android/prefetch_background_task_scheduler_android.cc
@@ -6,7 +6,7 @@
 
 #include <memory>
 
-#include "jni/PrefetchBackgroundTaskScheduler_jni.h"
+#include "chrome/android/chrome_jni_headers/PrefetchBackgroundTaskScheduler_jni.h"
 
 namespace offline_pages {
 
diff --git a/chrome/browser/offline_pages/android/prefetch_configuration_impl_android.cc b/chrome/browser/offline_pages/android/prefetch_configuration_impl_android.cc
index f91ec98..2a6d1d1 100644
--- a/chrome/browser/offline_pages/android/prefetch_configuration_impl_android.cc
+++ b/chrome/browser/offline_pages/android/prefetch_configuration_impl_android.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/PrefetchConfiguration_jni.h"
 #include "chrome/browser/android/profile_key_util.h"
 #include "chrome/browser/offline_pages/prefetch/prefetch_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -12,7 +13,6 @@
 #include "components/offline_pages/core/offline_page_feature.h"
 #include "components/offline_pages/core/prefetch/prefetch_prefs.h"
 #include "components/offline_pages/core/prefetch/prefetch_service.h"
-#include "jni/PrefetchConfiguration_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/offline_pages/android/prefetch_test_bridge.cc b/chrome/browser/offline_pages/android/prefetch_test_bridge.cc
index fbdccb5..ca7eac9b 100644
--- a/chrome/browser/offline_pages/android/prefetch_test_bridge.cc
+++ b/chrome/browser/offline_pages/android/prefetch_test_bridge.cc
@@ -7,6 +7,7 @@
 #include "base/android/jni_string.h"
 #include "base/android/jni_utils.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/test_support_jni_headers/PrefetchTestBridge_jni.h"
 #include "chrome/browser/android/profile_key_util.h"
 #include "chrome/browser/image_fetcher/image_fetcher_service_factory.h"
 #include "chrome/browser/offline_pages/prefetch/prefetch_service_factory.h"
@@ -20,7 +21,6 @@
 #include "components/offline_pages/core/prefetch/prefetch_prefs.h"
 #include "components/offline_pages/core/prefetch/prefetch_service.h"
 #include "components/offline_pages/core/prefetch/prefetch_types.h"
-#include "jni/PrefetchTestBridge_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/offline_pages/android/prefetched_pages_notifier_android.cc b/chrome/browser/offline_pages/android/prefetched_pages_notifier_android.cc
index f4eaa5d..da14716 100644
--- a/chrome/browser/offline_pages/android/prefetched_pages_notifier_android.cc
+++ b/chrome/browser/offline_pages/android/prefetched_pages_notifier_android.cc
@@ -5,9 +5,9 @@
 #include "chrome/browser/offline_pages/prefetch/prefetched_pages_notifier.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/OfflineNotificationBackgroundTask_jni.h"
+#include "chrome/android/chrome_jni_headers/PrefetchedPagesNotifier_jni.h"
 #include "components/offline_pages/core/offline_page_feature.h"
-#include "jni/OfflineNotificationBackgroundTask_jni.h"
-#include "jni/PrefetchedPagesNotifier_jni.h"
 #include "url/gurl.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.cc
index fdaaf71b..6cfe524 100644
--- a/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.cc
@@ -10,11 +10,11 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/PageLoadMetrics_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PageLoadMetrics_jni.h"
 #include "services/network/public/cpp/network_quality_tracker.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/password_manager/account_chooser_dialog_android.cc b/chrome/browser/password_manager/account_chooser_dialog_android.cc
index 887cbe3..61200aa 100644
--- a/chrome/browser/password_manager/account_chooser_dialog_android.cc
+++ b/chrome/browser/password_manager/account_chooser_dialog_android.cc
@@ -10,6 +10,7 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/macros.h"
+#include "chrome/android/chrome_jni_headers/AccountChooserDialog_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
 #include "chrome/browser/password_manager/credential_android.h"
@@ -23,7 +24,6 @@
 #include "components/password_manager/core/browser/password_ui_utils.h"
 #include "components/password_manager/core/common/credential_manager_types.h"
 #include "content/public/browser/storage_partition.h"
-#include "jni/AccountChooserDialog_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/android/java_bitmap.h"
diff --git a/chrome/browser/password_manager/auto_signin_first_run_dialog_android.cc b/chrome/browser/password_manager/auto_signin_first_run_dialog_android.cc
index 70d7f44..5b0d4b0 100644
--- a/chrome/browser/password_manager/auto_signin_first_run_dialog_android.cc
+++ b/chrome/browser/password_manager/auto_signin_first_run_dialog_android.cc
@@ -6,6 +6,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/AutoSigninFirstRunDialog_jni.h"
 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sync/profile_sync_service_factory.h"
@@ -16,7 +17,6 @@
 #include "components/password_manager/core/browser/password_manager_constants.h"
 #include "components/password_manager/core/browser/password_manager_metrics_util.h"
 #include "components/strings/grit/components_strings.h"
-#include "jni/AutoSigninFirstRunDialog_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/range/range.h"
diff --git a/chrome/browser/password_manager/credential_android.cc b/chrome/browser/password_manager/credential_android.cc
index c5a68d0..088d740 100644
--- a/chrome/browser/password_manager/credential_android.cc
+++ b/chrome/browser/password_manager/credential_android.cc
@@ -6,8 +6,8 @@
 
 #include "base/android/jni_string.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/Credential_jni.h"
 #include "chrome/grit/generated_resources.h"
-#include "jni/Credential_jni.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "url/origin.h"
 
diff --git a/chrome/browser/payments/android/can_make_payment_query_android.cc b/chrome/browser/payments/android/can_make_payment_query_android.cc
index 8c1ed0ee..1778ecad3 100644
--- a/chrome/browser/payments/android/can_make_payment_query_android.cc
+++ b/chrome/browser/payments/android/can_make_payment_query_android.cc
@@ -10,10 +10,10 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/CanMakePaymentQuery_jni.h"
 #include "components/payments/content/can_make_payment_query_factory.h"
 #include "components/payments/core/can_make_payment_query.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/CanMakePaymentQuery_jni.h"
 #include "url/gurl.h"
 
 namespace payments {
diff --git a/chrome/browser/payments/android/journey_logger_android.cc b/chrome/browser/payments/android/journey_logger_android.cc
index bf7b757..17fac09d 100644
--- a/chrome/browser/payments/android/journey_logger_android.cc
+++ b/chrome/browser/payments/android/journey_logger_android.cc
@@ -5,9 +5,9 @@
 #include "chrome/browser/payments/android/journey_logger_android.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/JourneyLogger_jni.h"
 #include "components/ukm/content/source_url_recorder.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/JourneyLogger_jni.h"
 
 namespace payments {
 namespace {
diff --git a/chrome/browser/payments/android/payment_manifest_web_data_service_android.cc b/chrome/browser/payments/android/payment_manifest_web_data_service_android.cc
index 0ccfed8..11bd471 100644
--- a/chrome/browser/payments/android/payment_manifest_web_data_service_android.cc
+++ b/chrome/browser/payments/android/payment_manifest_web_data_service_android.cc
@@ -10,11 +10,11 @@
 #include "base/android/jni_string.h"
 #include "base/logging.h"
 #include "base/numerics/safe_conversions.h"
+#include "chrome/android/chrome_jni_headers/PaymentManifestWebDataService_jni.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/web_data_service_factory.h"
 #include "components/keyed_service/core/service_access_type.h"
 #include "components/webdata/common/web_data_results.h"
-#include "jni/PaymentManifestWebDataService_jni.h"
 
 namespace payments {
 
diff --git a/chrome/browser/payments/android/ssl_validity_checker_android.cc b/chrome/browser/payments/android/ssl_validity_checker_android.cc
index 5743f8e4..4a96c6f 100644
--- a/chrome/browser/payments/android/ssl_validity_checker_android.cc
+++ b/chrome/browser/payments/android/ssl_validity_checker_android.cc
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/SslValidityChecker_jni.h"
 #include "chrome/browser/payments/ssl_validity_checker.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SslValidityChecker_jni.h"
 
 namespace payments {
 
diff --git a/chrome/browser/permissions/permission_dialog_delegate.cc b/chrome/browser/permissions/permission_dialog_delegate.cc
index 9f98da2d..07b8c71 100644
--- a/chrome/browser/permissions/permission_dialog_delegate.cc
+++ b/chrome/browser/permissions/permission_dialog_delegate.cc
@@ -10,6 +10,8 @@
 #include "base/android/jni_string.h"
 #include "base/feature_list.h"
 #include "build/build_config.h"
+#include "chrome/android/chrome_jni_headers/PermissionDialogController_jni.h"
+#include "chrome/android/chrome_jni_headers/PermissionDialogDelegate_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/profiles/profile.h"
@@ -17,8 +19,6 @@
 #include "chrome/grit/generated_resources.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PermissionDialogController_jni.h"
-#include "jni/PermissionDialogDelegate_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc
index 97ae8e1..50768c0 100644
--- a/chrome/browser/permissions/permission_uma_util.cc
+++ b/chrome/browser/permissions/permission_uma_util.cc
@@ -28,7 +28,7 @@
 
 #if defined(OS_ANDROID)
 #include "base/android/jni_string.h"
-#include "jni/PermissionUmaUtil_jni.h"
+#include "chrome/android/chrome_jni_headers/PermissionUmaUtil_jni.h"
 #endif
 
 // UMA keys need to be statically initialized so plain function would not
diff --git a/chrome/browser/permissions/permission_update_infobar_delegate_android.cc b/chrome/browser/permissions/permission_update_infobar_delegate_android.cc
index 165c9f7a..a74fc6a6 100644
--- a/chrome/browser/permissions/permission_update_infobar_delegate_android.cc
+++ b/chrome/browser/permissions/permission_update_infobar_delegate_android.cc
@@ -8,14 +8,14 @@
 #include <utility>
 
 #include "base/android/jni_array.h"
-#include "chrome/browser/android/preferences/pref_service_bridge.h"
+#include "chrome/android/chrome_jni_headers/PermissionUpdateInfoBarDelegate_jni.h"
 #include "chrome/browser/android/android_theme_resources.h"
+#include "chrome/browser/android/preferences/pref_service_bridge.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/infobars/core/infobar.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PermissionUpdateInfoBarDelegate_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/platform_util_android.cc b/chrome/browser/platform_util_android.cc
index 205272d47..348c191 100644
--- a/chrome/browser/platform_util_android.cc
+++ b/chrome/browser/platform_util_android.cc
@@ -7,8 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/PlatformUtil_jni.h"
 #include "chrome/browser/platform_util.h"
-#include "jni/PlatformUtil_jni.h"
 #include "ui/android/view_android.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/prerender/external_prerender_handler_android.cc b/chrome/browser/prerender/external_prerender_handler_android.cc
index cd81dbe..e757eaf 100644
--- a/chrome/browser/prerender/external_prerender_handler_android.cc
+++ b/chrome/browser/prerender/external_prerender_handler_android.cc
@@ -8,6 +8,7 @@
 #include "base/android/jni_string.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/ExternalPrerenderHandler_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/prerender/prerender_handle.h"
 #include "chrome/browser/prerender/prerender_manager.h"
@@ -15,7 +16,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ExternalPrerenderHandler_jni.h"
 
 using base::android::ConvertJavaStringToUTF16;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/previews/android/previews_android_bridge.cc b/chrome/browser/previews/android/previews_android_bridge.cc
index d711798d..0b09623 100644
--- a/chrome/browser/previews/android/previews_android_bridge.cc
+++ b/chrome/browser/previews/android/previews_android_bridge.cc
@@ -7,12 +7,12 @@
 #include <memory>
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/PreviewsAndroidBridge_jni.h"
 #include "chrome/browser/previews/previews_ui_tab_helper.h"
 #include "components/previews/content/previews_user_data.h"
 #include "components/previews/core/previews_experiments.h"
 #include "components/previews/core/previews_lite_page_redirect.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PreviewsAndroidBridge_jni.h"
 
 static jlong JNI_PreviewsAndroidBridge_Init(
     JNIEnv* env,
diff --git a/chrome/browser/profiles/profile_android.cc b/chrome/browser/profiles/profile_android.cc
index 2af5c71..3a49222 100644
--- a/chrome/browser/profiles/profile_android.cc
+++ b/chrome/browser/profiles/profile_android.cc
@@ -6,11 +6,11 @@
 
 #include "base/android/jni_android.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/public/profiles/jni_headers/Profile_jni.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_destroyer.h"
 #include "chrome/browser/profiles/profile_key_android.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "jni/Profile_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/profiles/profile_key_android.cc b/chrome/browser/profiles/profile_key_android.cc
index f335d44..d67e4d81 100644
--- a/chrome/browser/profiles/profile_key_android.cc
+++ b/chrome/browser/profiles/profile_key_android.cc
@@ -6,11 +6,11 @@
 
 #include "base/android/jni_android.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/public/profiles/jni_headers/ProfileKey_jni.h"
 #include "chrome/browser/android/profile_key_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_key.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "jni/ProfileKey_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc
index e112fa5..327b868 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -68,7 +68,7 @@
 
 #if defined(OS_ANDROID)
 #include "base/android/jni_android.h"
-#include "jni/PushMessagingServiceObserver_jni.h"
+#include "chrome/android/chrome_jni_headers/PushMessagingServiceObserver_jni.h"
 #endif
 
 using instance_id::InstanceID;
diff --git a/chrome/browser/safe_browsing/android/file_type_policies.cc b/chrome/browser/safe_browsing/android/file_type_policies.cc
index 7c773a0..17a4598 100644
--- a/chrome/browser/safe_browsing/android/file_type_policies.cc
+++ b/chrome/browser/safe_browsing/android/file_type_policies.cc
@@ -6,7 +6,7 @@
 
 #include "base/android/jni_string.h"
 #include "base/files/file_path.h"
-#include "jni/FileTypePolicies_jni.h"
+#include "chrome/android/chrome_jni_headers/FileTypePolicies_jni.h"
 
 namespace safe_browsing {
 
diff --git a/chrome/browser/search_engines/template_url_service_factory_android.cc b/chrome/browser/search_engines/template_url_service_factory_android.cc
index 0332bbf..59dbdfa 100644
--- a/chrome/browser/search_engines/template_url_service_factory_android.cc
+++ b/chrome/browser/search_engines/template_url_service_factory_android.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/android/chrome_jni_headers/TemplateUrlServiceFactory_jni.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/search_engines/template_url_service_factory.h"
 #include "components/search_engines/template_url_service.h"
 #include "components/search_provider_logos/features.h"
 #include "components/search_provider_logos/switches.h"
-#include "jni/TemplateUrlServiceFactory_jni.h"
 
 namespace {
 Profile* GetOriginalProfile() {
diff --git a/chrome/browser/signin/identity_services_provider_android.cc b/chrome/browser/signin/identity_services_provider_android.cc
index 683be19..b28a5af 100644
--- a/chrome/browser/signin/identity_services_provider_android.cc
+++ b/chrome/browser/signin/identity_services_provider_android.cc
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/IdentityServicesProvider_jni.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "jni/IdentityServicesProvider_jni.h"
 #include "services/identity/public/cpp/identity_manager.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/ssl/captive_portal_helper_android.cc b/chrome/browser/ssl/captive_portal_helper_android.cc
index 8e417da..1c5adb84 100644
--- a/chrome/browser/ssl/captive_portal_helper_android.cc
+++ b/chrome/browser/ssl/captive_portal_helper_android.cc
@@ -15,10 +15,10 @@
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/android/chrome_jni_headers/CaptivePortalHelper_jni.h"
 #include "chrome/browser/ssl/ssl_error_assistant.h"
 #include "chrome/browser/ssl/ssl_error_handler.h"
 #include "content/public/browser/browser_thread.h"
-#include "jni/CaptivePortalHelper_jni.h"
 #include "net/android/network_library.h"
 
 namespace chrome {
diff --git a/chrome/browser/ssl/security_state_model_android.cc b/chrome/browser/ssl/security_state_model_android.cc
index f51ecea9..9bb4fc5 100644
--- a/chrome/browser/ssl/security_state_model_android.cc
+++ b/chrome/browser/ssl/security_state_model_android.cc
@@ -3,10 +3,10 @@
 // found in the LICENSE file.
 
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/SecurityStateModel_jni.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "components/security_state/core/security_state.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SecurityStateModel_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/supervised_user/child_accounts/child_account_feedback_reporter_android.cc b/chrome/browser/supervised_user/child_accounts/child_account_feedback_reporter_android.cc
index 9ea0cc1..64e4e948 100644
--- a/chrome/browser/supervised_user/child_accounts/child_account_feedback_reporter_android.cc
+++ b/chrome/browser/supervised_user/child_accounts/child_account_feedback_reporter_android.cc
@@ -5,9 +5,9 @@
 #include "chrome/browser/supervised_user/child_accounts/child_account_feedback_reporter_android.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ChildAccountFeedbackReporter_jni.h"
 #include "chrome/browser/ui/android/view_android_helper.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ChildAccountFeedbackReporter_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc b/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc
index 7d220918..2ea42b9 100644
--- a/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc
+++ b/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc
@@ -9,12 +9,12 @@
 #include "base/android/callback_android.h"
 #include "base/android/jni_string.h"
 #include "base/bind.h"
+#include "chrome/android/chrome_jni_headers/ChildAccountService_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/supervised_user/child_accounts/child_account_service.h"
 #include "chrome/browser/supervised_user/child_accounts/child_account_service_factory.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ChildAccountService_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/sync/profile_sync_service_android.cc b/chrome/browser/sync/profile_sync_service_android.cc
index 0b0ad98..a3cd9142 100644
--- a/chrome/browser/sync/profile_sync_service_android.cc
+++ b/chrome/browser/sync/profile_sync_service_android.cc
@@ -17,6 +17,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/ProfileSyncService_jni.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/sync/device_info_sync_service_factory.h"
@@ -37,7 +38,6 @@
 #include "components/sync_sessions/session_sync_service.h"
 #include "content/public/browser/browser_thread.h"
 #include "google_apis/gaia/google_service_auth_error.h"
-#include "jni/ProfileSyncService_jni.h"
 #include "ui/base/l10n/l10n_util.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/translate/android/translate_bridge.cc b/chrome/browser/translate/android/translate_bridge.cc
index f9ca78e..6e6a341 100644
--- a/chrome/browser/translate/android/translate_bridge.cc
+++ b/chrome/browser/translate/android/translate_bridge.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/TranslateBridge_jni.h"
 #include "chrome/browser/language/language_model_manager_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -14,7 +15,6 @@
 #include "components/translate/core/browser/translate_manager.h"
 #include "components/translate/core/browser/translate_prefs.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/TranslateBridge_jni.h"
 
 static ChromeTranslateClient* GetTranslateClient(
     const base::android::JavaParamRef<jobject>& j_web_contents) {
diff --git a/chrome/browser/ui/android/DEPS b/chrome/browser/ui/android/DEPS
new file mode 100644
index 0000000..17f36cf9
--- /dev/null
+++ b/chrome/browser/ui/android/DEPS
@@ -0,0 +1,3 @@
+include_rules = {
+  "+chrome/android/features/keyboard_accessory/jni_headers",
+}
diff --git a/chrome/browser/ui/android/android_about_app_info.cc b/chrome/browser/ui/android/android_about_app_info.cc
index 96c805a..3400db8 100644
--- a/chrome/browser/ui/android/android_about_app_info.cc
+++ b/chrome/browser/ui/android/android_about_app_info.cc
@@ -9,8 +9,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/system/sys_info.h"
+#include "chrome/android/chrome_jni_headers/ChromeVersionInfo_jni.h"
 #include "content/public/common/user_agent.h"
-#include "jni/ChromeVersionInfo_jni.h"
 
 std::string AndroidAboutAppInfo::GetGmsInfo() {
   JNIEnv* env = base::android::AttachCurrentThread();
diff --git a/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc b/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
index f1153427..c470c1bab 100644
--- a/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
+++ b/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
@@ -9,12 +9,12 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/callback.h"
+#include "chrome/android/features/keyboard_accessory/jni_headers/AutofillKeyboardAccessoryViewBridge_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/ui/android/view_android_helper.h"
 #include "chrome/browser/ui/autofill/autofill_popup_controller.h"
 #include "chrome/browser/ui/autofill/autofill_popup_layout_model.h"
 #include "components/autofill/core/browser/ui/suggestion.h"
-#include "jni/AutofillKeyboardAccessoryViewBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 #include "ui/base/resource/resource_bundle.h"
diff --git a/chrome/browser/ui/android/autofill/autofill_logger_android.cc b/chrome/browser/ui/android/autofill/autofill_logger_android.cc
index 93805a7..f04a860 100644
--- a/chrome/browser/ui/android/autofill/autofill_logger_android.cc
+++ b/chrome/browser/ui/android/autofill/autofill_logger_android.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/ui/android/autofill/autofill_logger_android.h"
 
-#include "jni/AutofillLogger_jni.h"
+#include "chrome/android/chrome_jni_headers/AutofillLogger_jni.h"
 
 using base::android::ScopedJavaLocalRef;
 
diff --git a/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc b/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc
index 0f24006b..b5e55ef 100644
--- a/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc
+++ b/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc
@@ -9,6 +9,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/command_line.h"
+#include "chrome/android/chrome_jni_headers/AutofillPopupBridge_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/autofill/autofill_keyboard_accessory_adapter.h"
 #include "chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.h"
@@ -19,7 +20,6 @@
 #include "components/autofill/core/browser/ui/suggestion.h"
 #include "components/autofill/core/common/autofill_util.h"
 #include "components/security_state/core/security_state.h"
-#include "jni/AutofillPopupBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 #include "ui/base/resource/resource_bundle.h"
diff --git a/chrome/browser/ui/android/autofill/card_expiration_date_fix_flow_view_android.cc b/chrome/browser/ui/android/autofill/card_expiration_date_fix_flow_view_android.cc
index a3924153..9059e65 100644
--- a/chrome/browser/ui/android/autofill/card_expiration_date_fix_flow_view_android.cc
+++ b/chrome/browser/ui/android/autofill/card_expiration_date_fix_flow_view_android.cc
@@ -6,10 +6,11 @@
 #include <utility>
 
 #include "chrome/browser/ui/android/autofill/card_expiration_date_fix_flow_view_android.h"
+
+#include "chrome/android/chrome_jni_headers/AutofillExpirationDateFixFlowBridge_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "components/autofill/core/browser/ui/payments/card_expiration_date_fix_flow_view_delegate_mobile.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/AutofillExpirationDateFixFlowBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 
diff --git a/chrome/browser/ui/android/autofill/card_name_fix_flow_view_android.cc b/chrome/browser/ui/android/autofill/card_name_fix_flow_view_android.cc
index 1c51a09..8cbf660 100644
--- a/chrome/browser/ui/android/autofill/card_name_fix_flow_view_android.cc
+++ b/chrome/browser/ui/android/autofill/card_name_fix_flow_view_android.cc
@@ -4,10 +4,10 @@
 
 #include "chrome/browser/ui/android/autofill/card_name_fix_flow_view_android.h"
 
+#include "chrome/android/chrome_jni_headers/AutofillNameFixFlowBridge_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "components/autofill/core/browser/ui/payments/card_name_fix_flow_view_delegate_mobile.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/AutofillNameFixFlowBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 
diff --git a/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc b/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
index ee434f3..3158269 100644
--- a/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
+++ b/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
@@ -4,11 +4,11 @@
 
 #include "chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.h"
 
+#include "chrome/android/chrome_jni_headers/CardUnmaskBridge_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/ui/autofill/payments/create_card_unmask_prompt_view.h"
 #include "components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/CardUnmaskBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 
diff --git a/chrome/browser/ui/android/autofill/credit_card_scanner_view_android.cc b/chrome/browser/ui/android/autofill/credit_card_scanner_view_android.cc
index 09e2b4b..d500d8a 100644
--- a/chrome/browser/ui/android/autofill/credit_card_scanner_view_android.cc
+++ b/chrome/browser/ui/android/autofill/credit_card_scanner_view_android.cc
@@ -9,11 +9,11 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/CreditCardScannerBridge_jni.h"
 #include "chrome/browser/ui/android/view_android_helper.h"
 #include "chrome/browser/ui/autofill/payments/credit_card_scanner_view_delegate.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/field_types.h"
-#include "jni/CreditCardScannerBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 
diff --git a/chrome/browser/ui/android/bluetooth_chooser_android.cc b/chrome/browser/ui/android/bluetooth_chooser_android.cc
index b0af616..ed15f40 100644
--- a/chrome/browser/ui/android/bluetooth_chooser_android.cc
+++ b/chrome/browser/ui/android/bluetooth_chooser_android.cc
@@ -7,12 +7,12 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/BluetoothChooserDialog_jni.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "chrome/common/url_constants.h"
 #include "components/security_state/core/security_state.h"
 #include "components/url_formatter/elide_url.h"
 #include "content/public/browser/render_frame_host.h"
-#include "jni/BluetoothChooserDialog_jni.h"
 #include "ui/android/window_android.h"
 #include "url/gurl.h"
 #include "url/origin.h"
diff --git a/chrome/browser/ui/android/chrome_http_auth_handler.cc b/chrome/browser/ui/android/chrome_http_auth_handler.cc
index 2b86620..5ce1c84 100644
--- a/chrome/browser/ui/android/chrome_http_auth_handler.cc
+++ b/chrome/browser/ui/android/chrome_http_auth_handler.cc
@@ -12,7 +12,7 @@
 #include "base/logging.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
-#include "jni/ChromeHttpAuthHandler_jni.h"
+#include "chrome/android/chrome_jni_headers/ChromeHttpAuthHandler_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::CheckException;
diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/ui/android/context_menu_helper.cc
index e5308ae..c7825d65 100644
--- a/chrome/browser/ui/android/context_menu_helper.cc
+++ b/chrome/browser/ui/android/context_menu_helper.cc
@@ -13,6 +13,8 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/callback.h"
+#include "chrome/android/chrome_jni_headers/ContextMenuHelper_jni.h"
+#include "chrome/android/chrome_jni_headers/ContextMenuParams_jni.h"
 #include "chrome/browser/android/download/download_controller_base.h"
 #include "chrome/browser/image_decoder.h"
 #include "chrome/browser/ui/tab_contents/core_tab_helper.h"
@@ -22,8 +24,6 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/common/context_menu_params.h"
-#include "jni/ContextMenuHelper_jni.h"
-#include "jni/ContextMenuParams_jni.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 #include "third_party/blink/public/web/web_context_menu_data.h"
 #include "ui/android/view_android.h"
diff --git a/chrome/browser/ui/android/infobars/ads_blocked_infobar.cc b/chrome/browser/ui/android/infobars/ads_blocked_infobar.cc
index 3b65812..08d4f3ee 100644
--- a/chrome/browser/ui/android/infobars/ads_blocked_infobar.cc
+++ b/chrome/browser/ui/android/infobars/ads_blocked_infobar.cc
@@ -8,7 +8,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
-#include "jni/AdsBlockedInfoBar_jni.h"
+#include "chrome/android/chrome_jni_headers/AdsBlockedInfoBar_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc b/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc
index b761bf7f..965118042 100644
--- a/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc
+++ b/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc
@@ -8,10 +8,10 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/AutofillCreditCardFillingInfoBar_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/autofill/core/browser/payments/autofill_credit_card_filling_infobar_delegate_mobile.h"
-#include "jni/AutofillCreditCardFillingInfoBar_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/ui/android/infobars/autofill_save_card_infobar.cc b/chrome/browser/ui/android/infobars/autofill_save_card_infobar.cc
index 18e211a..50c6c8a 100644
--- a/chrome/browser/ui/android/infobars/autofill_save_card_infobar.cc
+++ b/chrome/browser/ui/android/infobars/autofill_save_card_infobar.cc
@@ -8,13 +8,13 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/AutofillSaveCardInfoBar_jni.h"
 #include "chrome/browser/android/android_theme_resources.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/autofill/core/browser/payments/autofill_save_card_infobar_delegate_mobile.h"
 #include "components/autofill/core/browser/payments/autofill_save_card_infobar_mobile.h"
 #include "components/autofill/core/browser/payments/legal_message_line.h"
-#include "jni/AutofillSaveCardInfoBar_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/ui/android/infobars/confirm_infobar.cc b/chrome/browser/ui/android/infobars/confirm_infobar.cc
index f5c996b7..291507c 100644
--- a/chrome/browser/ui/android/infobars/confirm_infobar.cc
+++ b/chrome/browser/ui/android/infobars/confirm_infobar.cc
@@ -8,11 +8,11 @@
 #include <utility>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ConfirmInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/confirm_infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ConfirmInfoBar_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
diff --git a/chrome/browser/ui/android/infobars/download_progress_infobar.cc b/chrome/browser/ui/android/infobars/download_progress_infobar.cc
index 9ae8f2ea..3a54409b 100644
--- a/chrome/browser/ui/android/infobars/download_progress_infobar.cc
+++ b/chrome/browser/ui/android/infobars/download_progress_infobar.cc
@@ -7,11 +7,11 @@
 #include <memory>
 #include <utility>
 
+#include "chrome/android/chrome_jni_headers/DownloadProgressInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/DownloadProgressInfoBar_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/ui/android/infobars/duplicate_download_infobar.cc b/chrome/browser/ui/android/infobars/duplicate_download_infobar.cc
index bec1353..0b698fc 100644
--- a/chrome/browser/ui/android/infobars/duplicate_download_infobar.cc
+++ b/chrome/browser/ui/android/infobars/duplicate_download_infobar.cc
@@ -9,8 +9,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/DuplicateDownloadInfoBar_jni.h"
 #include "chrome/browser/android/download/duplicate_download_infobar_delegate.h"
-#include "jni/DuplicateDownloadInfoBar_jni.h"
 
 using android::DuplicateDownloadInfoBarDelegate;
 
diff --git a/chrome/browser/ui/android/infobars/framebust_block_infobar.cc b/chrome/browser/ui/android/infobars/framebust_block_infobar.cc
index dbaa1c1..6982ddf 100644
--- a/chrome/browser/ui/android/infobars/framebust_block_infobar.cc
+++ b/chrome/browser/ui/android/infobars/framebust_block_infobar.cc
@@ -9,6 +9,7 @@
 
 #include "base/android/jni_string.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/FramebustBlockInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/ui/android/interventions/framebust_block_message_delegate_bridge.h"
@@ -16,7 +17,6 @@
 #include "chrome/browser/ui/interventions/intervention_infobar_delegate.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/FramebustBlockInfoBar_jni.h"
 
 FramebustBlockInfoBar::FramebustBlockInfoBar(
     std::unique_ptr<FramebustBlockMessageDelegate> message_delegate)
diff --git a/chrome/browser/ui/android/infobars/generated_password_saved_infobar.cc b/chrome/browser/ui/android/infobars/generated_password_saved_infobar.cc
index 9312f7f..1d5f097 100644
--- a/chrome/browser/ui/android/infobars/generated_password_saved_infobar.cc
+++ b/chrome/browser/ui/android/infobars/generated_password_saved_infobar.cc
@@ -10,9 +10,9 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/GeneratedPasswordSavedInfoBarDelegate_jni.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/GeneratedPasswordSavedInfoBarDelegate_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/ui/android/infobars/infobar_android.cc b/chrome/browser/ui/android/infobars/infobar_android.cc
index 4c57fb3..50839dd 100644
--- a/chrome/browser/ui/android/infobars/infobar_android.cc
+++ b/chrome/browser/ui/android/infobars/infobar_android.cc
@@ -9,11 +9,11 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/strings/string_util.h"
+#include "chrome/android/chrome_jni_headers/InfoBar_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/infobar.h"
 #include "components/infobars/core/infobar_delegate.h"
-#include "jni/InfoBar_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/chrome/browser/ui/android/infobars/infobar_container_android.cc b/chrome/browser/ui/android/infobars/infobar_container_android.cc
index 45e56e0..73264a2 100644
--- a/chrome/browser/ui/android/infobars/infobar_container_android.cc
+++ b/chrome/browser/ui/android/infobars/infobar_container_android.cc
@@ -7,12 +7,12 @@
 #include "base/android/jni_android.h"
 #include "base/logging.h"
 #include "base/metrics/histogram_functions.h"
+#include "chrome/android/chrome_jni_headers/InfoBarContainer_jni.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/ui/android/infobars/infobar_android.h"
 #include "components/infobars/core/infobar.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/InfoBarContainer_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/ui/android/infobars/installable_ambient_badge_infobar.cc b/chrome/browser/ui/android/infobars/installable_ambient_badge_infobar.cc
index da1928f..a468795 100644
--- a/chrome/browser/ui/android/infobars/installable_ambient_badge_infobar.cc
+++ b/chrome/browser/ui/android/infobars/installable_ambient_badge_infobar.cc
@@ -7,8 +7,8 @@
 #include <utility>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/InstallableAmbientBadgeInfoBar_jni.h"
 #include "chrome/browser/installable/installable_ambient_badge_infobar_delegate.h"
-#include "jni/InstallableAmbientBadgeInfoBar_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 
 InstallableAmbientBadgeInfoBar::InstallableAmbientBadgeInfoBar(
diff --git a/chrome/browser/ui/android/infobars/instant_apps_infobar.cc b/chrome/browser/ui/android/infobars/instant_apps_infobar.cc
index 63d1d8e7..db4b24b 100644
--- a/chrome/browser/ui/android/infobars/instant_apps_infobar.cc
+++ b/chrome/browser/ui/android/infobars/instant_apps_infobar.cc
@@ -7,8 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
+#include "chrome/android/chrome_jni_headers/InstantAppsInfoBar_jni.h"
 #include "chrome/browser/android/instantapps/instant_apps_infobar_delegate.h"
-#include "jni/InstantAppsInfoBar_jni.h"
 
 InstantAppsInfoBar::InstantAppsInfoBar(
     std::unique_ptr<InstantAppsInfoBarDelegate> delegate)
diff --git a/chrome/browser/ui/android/infobars/near_oom_infobar.cc b/chrome/browser/ui/android/infobars/near_oom_infobar.cc
index c1532f8..87f5232 100644
--- a/chrome/browser/ui/android/infobars/near_oom_infobar.cc
+++ b/chrome/browser/ui/android/infobars/near_oom_infobar.cc
@@ -11,13 +11,13 @@
 #include "base/callback.h"
 #include "base/callback_helpers.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/NearOomInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/ui/interventions/intervention_delegate.h"
 #include "chrome/browser/ui/interventions/intervention_infobar_delegate.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/NearOomInfoBar_jni.h"
 
 NearOomInfoBar::NearOomInfoBar(InterventionDelegate* delegate)
     : InfoBarAndroid(std::make_unique<InterventionInfoBarDelegate>(
diff --git a/chrome/browser/ui/android/infobars/near_oom_reduction_infobar.cc b/chrome/browser/ui/android/infobars/near_oom_reduction_infobar.cc
index a1660a2..5d3253f2 100644
--- a/chrome/browser/ui/android/infobars/near_oom_reduction_infobar.cc
+++ b/chrome/browser/ui/android/infobars/near_oom_reduction_infobar.cc
@@ -11,13 +11,13 @@
 #include "base/callback.h"
 #include "base/callback_helpers.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/android/chrome_jni_headers/NearOomReductionInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/ui/interventions/intervention_delegate.h"
 #include "chrome/browser/ui/interventions/intervention_infobar_delegate.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/NearOomReductionInfoBar_jni.h"
 
 NearOomReductionInfoBar::NearOomReductionInfoBar(InterventionDelegate* delegate)
     : InfoBarAndroid(std::make_unique<InterventionInfoBarDelegate>(
diff --git a/chrome/browser/ui/android/infobars/permission_infobar.cc b/chrome/browser/ui/android/infobars/permission_infobar.cc
index a8a44ece..f8dd799 100644
--- a/chrome/browser/ui/android/infobars/permission_infobar.cc
+++ b/chrome/browser/ui/android/infobars/permission_infobar.cc
@@ -10,10 +10,10 @@
 
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/PermissionInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/ui/android/infobars/confirm_infobar.h"
 #include "components/content_settings/core/common/content_settings_types.h"
-#include "jni/PermissionInfoBar_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
 
diff --git a/chrome/browser/ui/android/infobars/previews_lite_page_infobar.cc b/chrome/browser/ui/android/infobars/previews_lite_page_infobar.cc
index 29fbac9c..7a92207a 100644
--- a/chrome/browser/ui/android/infobars/previews_lite_page_infobar.cc
+++ b/chrome/browser/ui/android/infobars/previews_lite_page_infobar.cc
@@ -8,7 +8,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
-#include "jni/PreviewsLitePageInfoBar_jni.h"
+#include "chrome/android/chrome_jni_headers/PreviewsLitePageInfoBar_jni.h"
 
 PreviewsLitePageInfoBar::PreviewsLitePageInfoBar(
     std::unique_ptr<PreviewsLitePageInfoBarDelegate> delegate)
diff --git a/chrome/browser/ui/android/infobars/reader_mode_infobar.cc b/chrome/browser/ui/android/infobars/reader_mode_infobar.cc
index 45f435bf..663f20b 100644
--- a/chrome/browser/ui/android/infobars/reader_mode_infobar.cc
+++ b/chrome/browser/ui/android/infobars/reader_mode_infobar.cc
@@ -7,11 +7,11 @@
 #include <memory>
 #include <utility>
 
+#include "chrome/android/chrome_jni_headers/ReaderModeInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ReaderModeInfoBar_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/ui/android/infobars/save_password_infobar.cc b/chrome/browser/ui/android/infobars/save_password_infobar.cc
index 50a71ef..f56e114 100644
--- a/chrome/browser/ui/android/infobars/save_password_infobar.cc
+++ b/chrome/browser/ui/android/infobars/save_password_infobar.cc
@@ -9,9 +9,9 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/SavePasswordInfoBar_jni.h"
 #include "chrome/browser/password_manager/save_password_infobar_delegate_android.h"
 #include "components/password_manager/core/common/credential_manager_types.h"
-#include "jni/SavePasswordInfoBar_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/ui/android/infobars/search_geolocation_disclosure_infobar.cc b/chrome/browser/ui/android/infobars/search_geolocation_disclosure_infobar.cc
index 30f448aa..ce2e797 100644
--- a/chrome/browser/ui/android/infobars/search_geolocation_disclosure_infobar.cc
+++ b/chrome/browser/ui/android/infobars/search_geolocation_disclosure_infobar.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/ui/android/infobars/search_geolocation_disclosure_infobar.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/SearchGeolocationDisclosureInfoBar_jni.h"
 #include "chrome/browser/android/search_permissions/search_geolocation_disclosure_infobar_delegate.h"
-#include "jni/SearchGeolocationDisclosureInfoBar_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc b/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc
index d2eb7d0..22ee70b 100644
--- a/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc
+++ b/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc
@@ -8,11 +8,11 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/macros.h"
+#include "chrome/android/chrome_jni_headers/SimpleConfirmInfoBarBuilder_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/confirm_infobar_delegate.h"
 #include "components/infobars/core/infobar.h"
-#include "jni/SimpleConfirmInfoBarBuilder_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/image/image.h"
 
diff --git a/chrome/browser/ui/android/infobars/survey_infobar.cc b/chrome/browser/ui/android/infobars/survey_infobar.cc
index a4e5e65f..9103598 100644
--- a/chrome/browser/ui/android/infobars/survey_infobar.cc
+++ b/chrome/browser/ui/android/infobars/survey_infobar.cc
@@ -8,11 +8,11 @@
 #include <utility>
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/SurveyInfoBar_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "components/infobars/core/infobar_delegate.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SurveyInfoBar_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/ui/android/infobars/translate_compact_infobar.cc b/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
index cea221e..d2abace8 100644
--- a/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
+++ b/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
@@ -12,12 +12,12 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/android/jni_weak_ref.h"
+#include "chrome/android/chrome_jni_headers/TranslateCompactInfoBar_jni.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/translate/android/translate_utils.h"
 #include "components/translate/core/browser/translate_infobar_delegate.h"
 #include "components/variations/variations_associated_data.h"
 #include "content/public/browser/browser_context.h"
-#include "jni/TranslateCompactInfoBar_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/ui/android/infobars/update_password_infobar.cc b/chrome/browser/ui/android/infobars/update_password_infobar.cc
index 942d88ca..41388b0 100644
--- a/chrome/browser/ui/android/infobars/update_password_infobar.cc
+++ b/chrome/browser/ui/android/infobars/update_password_infobar.cc
@@ -9,9 +9,9 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/UpdatePasswordInfoBar_jni.h"
 #include "chrome/browser/password_manager/update_password_infobar_delegate_android.h"
 #include "components/password_manager/core/common/credential_manager_types.h"
-#include "jni/UpdatePasswordInfoBar_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/ui/android/interventions/framebust_block_message_delegate_bridge.cc b/chrome/browser/ui/android/interventions/framebust_block_message_delegate_bridge.cc
index 14f6aa8..1adffae 100644
--- a/chrome/browser/ui/android/interventions/framebust_block_message_delegate_bridge.cc
+++ b/chrome/browser/ui/android/interventions/framebust_block_message_delegate_bridge.cc
@@ -10,7 +10,6 @@
 #include "base/macros.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/ui/interventions/framebust_block_message_delegate.h"
-#include "jni/FramebustBlockMessageDelegateBridge_jni.h"
 
 using base::android::ScopedJavaLocalRef;
 using base::android::JavaParamRef;
diff --git a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc
index e42db85..ac0e615 100644
--- a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc
+++ b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc
@@ -9,6 +9,7 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/JavascriptAppModalDialog_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/ui/javascript_dialogs/chrome_javascript_native_dialog_factory.h"
 #include "components/app_modal/app_modal_dialog_queue.h"
@@ -19,7 +20,6 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_delegate.h"
 #include "content/public/common/javascript_dialog_type.h"
-#include "jni/JavascriptAppModalDialog_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/ui/android/javascript_dialog_android.cc b/chrome/browser/ui/android/javascript_dialog_android.cc
index 6f3f94d..3b58230 100644
--- a/chrome/browser/ui/android/javascript_dialog_android.cc
+++ b/chrome/browser/ui/android/javascript_dialog_android.cc
@@ -8,11 +8,11 @@
 #include "base/android/jni_string.h"
 #include "base/macros.h"
 #include "base/metrics/histogram_macros.h"
+#include "chrome/android/chrome_jni_headers/JavascriptTabModalDialog_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_delegate.h"
-#include "jni/JavascriptTabModalDialog_jni.h"
 #include "ui/android/window_android.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/ui/android/omnibox/omnibox_url_emphasizer.cc b/chrome/browser/ui/android/omnibox/omnibox_url_emphasizer.cc
index 9516cc82..858dc74 100644
--- a/chrome/browser/ui/android/omnibox/omnibox_url_emphasizer.cc
+++ b/chrome/browser/ui/android/omnibox/omnibox_url_emphasizer.cc
@@ -6,10 +6,10 @@
 
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/OmniboxUrlEmphasizer_jni.h"
 #include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h"
 #include "chrome/browser/profiles/profile_android.h"
 #include "components/omnibox/browser/autocomplete_input.h"
-#include "jni/OmniboxUrlEmphasizer_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/ui/android/omnibox/omnibox_view_util.cc b/chrome/browser/ui/android/omnibox/omnibox_view_util.cc
index f8939c4..516dbf4b 100644
--- a/chrome/browser/ui/android/omnibox/omnibox_view_util.cc
+++ b/chrome/browser/ui/android/omnibox/omnibox_view_util.cc
@@ -5,8 +5,8 @@
 #include "chrome/browser/ui/android/omnibox/omnibox_view_util.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/OmniboxViewUtil_jni.h"
 #include "components/omnibox/browser/omnibox_view.h"
-#include "jni/OmniboxViewUtil_jni.h"
 
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/ui/android/page_info/certificate_chain_helper.cc b/chrome/browser/ui/android/page_info/certificate_chain_helper.cc
index dcb356c..e8e9124 100644
--- a/chrome/browser/ui/android/page_info/certificate_chain_helper.cc
+++ b/chrome/browser/ui/android/page_info/certificate_chain_helper.cc
@@ -5,11 +5,11 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/CertificateChainHelper_jni.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/ssl_status.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/CertificateChainHelper_jni.h"
 #include "net/cert/x509_certificate.h"
 #include "net/cert/x509_util.h"
 
diff --git a/chrome/browser/ui/android/page_info/certificate_viewer_android.cc b/chrome/browser/ui/android/page_info/certificate_viewer_android.cc
index b30ede3..e4761e4 100644
--- a/chrome/browser/ui/android/page_info/certificate_viewer_android.cc
+++ b/chrome/browser/ui/android/page_info/certificate_viewer_android.cc
@@ -4,9 +4,9 @@
 
 #include "base/android/jni_string.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/CertificateViewer_jni.h"
 #include "chrome/browser/certificate_viewer.h"
 #include "chrome/grit/generated_resources.h"
-#include "jni/CertificateViewer_jni.h"
 #include "net/cert/x509_certificate.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/ui/android/page_info/connection_info_popup_android.cc b/chrome/browser/ui/android/page_info/connection_info_popup_android.cc
index d29a8d7..4e6c30ca 100644
--- a/chrome/browser/ui/android/page_info/connection_info_popup_android.cc
+++ b/chrome/browser/ui/android/page_info/connection_info_popup_android.cc
@@ -7,6 +7,7 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/ConnectionInfoPopup_jni.h"
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/profiles/profile.h"
@@ -19,7 +20,6 @@
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/ssl_status.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/ConnectionInfoPopup_jni.h"
 #include "net/cert/x509_certificate.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/ui/android/page_info/page_info_controller_android.cc b/chrome/browser/ui/android/page_info/page_info_controller_android.cc
index 211424d..f710d8d 100644
--- a/chrome/browser/ui/android/page_info/page_info_controller_android.cc
+++ b/chrome/browser/ui/android/page_info/page_info_controller_android.cc
@@ -8,6 +8,7 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "base/stl_util.h"
+#include "chrome/android/chrome_jni_headers/PageInfoController_jni.h"
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
@@ -21,7 +22,6 @@
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/PageInfoController_jni.h"
 #include "url/origin.h"
 
 using base::android::ConvertUTF16ToJavaString;
diff --git a/chrome/browser/ui/android/passwords/manual_filling_view_android.cc b/chrome/browser/ui/android/passwords/manual_filling_view_android.cc
index c7335a8..9a448393 100644
--- a/chrome/browser/ui/android/passwords/manual_filling_view_android.cc
+++ b/chrome/browser/ui/android/passwords/manual_filling_view_android.cc
@@ -18,6 +18,8 @@
 #include "base/bind.h"
 #include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/features/keyboard_accessory/jni_headers/ManualFillingComponentBridge_jni.h"
+#include "chrome/android/features/keyboard_accessory/jni_headers/UserInfoField_jni.h"
 #include "chrome/browser/autofill/manual_filling_controller.h"
 #include "chrome/browser/autofill/manual_filling_controller_impl.h"
 #include "chrome/browser/password_manager/password_accessory_controller.h"
@@ -25,8 +27,6 @@
 #include "chrome/browser/password_manager/password_generation_controller.h"
 #include "components/autofill/core/browser/ui/accessory_sheet_data.h"
 #include "components/autofill/core/common/password_form.h"
-#include "jni/ManualFillingComponentBridge_jni.h"
-#include "jni/UserInfoField_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 #include "ui/gfx/android/java_bitmap.h"
diff --git a/chrome/browser/ui/android/passwords/password_generation_dialog_view_android.cc b/chrome/browser/ui/android/passwords/password_generation_dialog_view_android.cc
index 6aec6269..f344cbc 100644
--- a/chrome/browser/ui/android/passwords/password_generation_dialog_view_android.cc
+++ b/chrome/browser/ui/android/passwords/password_generation_dialog_view_android.cc
@@ -8,12 +8,12 @@
 #include "base/android/jni_string.h"
 #include "base/memory/weak_ptr.h"
 #include "base/strings/string16.h"
+#include "chrome/android/chrome_jni_headers/PasswordGenerationDialogBridge_jni.h"
 #include "chrome/browser/password_manager/password_generation_controller_impl.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/password_manager/core/browser/password_manager_driver.h"
 #include "components/strings/grit/components_strings.h"
-#include "jni/PasswordGenerationDialogBridge_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/ui/android/passwords/password_generation_editing_popup_view_android.cc b/chrome/browser/ui/android/passwords/password_generation_editing_popup_view_android.cc
index a5fa527..72575dc 100644
--- a/chrome/browser/ui/android/passwords/password_generation_editing_popup_view_android.cc
+++ b/chrome/browser/ui/android/passwords/password_generation_editing_popup_view_android.cc
@@ -10,9 +10,9 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/logging.h"
+#include "chrome/android/chrome_jni_headers/PasswordGenerationPopupBridge_jni.h"
 #include "chrome/browser/ui/android/view_android_helper.h"
 #include "chrome/browser/ui/passwords/password_generation_popup_controller.h"
-#include "jni/PasswordGenerationPopupBridge_jni.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/chrome/browser/ui/android/snackbars/auto_signin_prompt_controller.cc b/chrome/browser/ui/android/snackbars/auto_signin_prompt_controller.cc
index 873cf64..5ba29d1 100644
--- a/chrome/browser/ui/android/snackbars/auto_signin_prompt_controller.cc
+++ b/chrome/browser/ui/android/snackbars/auto_signin_prompt_controller.cc
@@ -6,13 +6,13 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/AutoSigninSnackbarController_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/password_manager/core/browser/password_bubble_experiment.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/AutoSigninSnackbarController_jni.h"
 #include "ui/base/l10n/l10n_util.h"
 
 using base::android::ScopedJavaLocalRef;
diff --git a/chrome/browser/ui/android/ssl_client_certificate_request.cc b/chrome/browser/ui/android/ssl_client_certificate_request.cc
index fbe286f..05bea07 100644
--- a/chrome/browser/ui/android/ssl_client_certificate_request.cc
+++ b/chrome/browser/ui/android/ssl_client_certificate_request.cc
@@ -15,6 +15,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/task/post_task.h"
+#include "chrome/android/chrome_jni_headers/SSLClientCertificateRequest_jni.h"
 #include "chrome/browser/ssl/ssl_client_certificate_selector.h"
 #include "chrome/browser/ui/android/view_android_helper.h"
 #include "chrome/browser/vr/vr_tab_helper.h"
@@ -23,7 +24,6 @@
 #include "content/public/browser/client_certificate_delegate.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "jni/SSLClientCertificateRequest_jni.h"
 #include "net/base/host_port_pair.h"
 #include "net/cert/cert_database.h"
 #include "net/cert/x509_certificate.h"
diff --git a/chrome/browser/ui/android/tab_model/single_tab_model.cc b/chrome/browser/ui/android/tab_model/single_tab_model.cc
index 39e6abf..6c3d53d30 100644
--- a/chrome/browser/ui/android/tab_model/single_tab_model.cc
+++ b/chrome/browser/ui/android/tab_model/single_tab_model.cc
@@ -3,10 +3,10 @@
 // found in the LICENSE file.
 
 #include "base/android/jni_android.h"
+#include "chrome/android/chrome_jni_headers/SingleTabModel_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h"
 #include "content/public/browser/web_contents.h"
-#include "jni/SingleTabModel_jni.h"
 
 using base::android::JavaParamRef;
 
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
index ce552b2..15424ba 100644
--- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
@@ -11,6 +11,7 @@
 #include "base/android/jni_weak_ref.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/time/time.h"
+#include "chrome/android/chrome_jni_headers/TabModelJniBridge_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
@@ -22,7 +23,6 @@
 #include "chrome/browser/ui/browser_navigator_params.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/resource_request_body_android.h"
-#include "jni/TabModelJniBridge_jni.h"
 #include "ui/base/window_open_disposition.h"
 
 using base::android::AttachCurrentThread;
diff --git a/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc
index f46ff84..9aeb2a4c 100644
--- a/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc
@@ -4,11 +4,11 @@
 
 #include "chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h"
 
+#include "chrome/android/chrome_jni_headers/TabModelObserverJniBridge_jni.h"
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/ui/android/tab_model/tab_model.h"
 #include "chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h"
 #include "chrome/browser/ui/android/tab_model/tab_model_observer.h"
-#include "jni/TabModelObserverJniBridge_jni.h"
 
 using base::android::AttachCurrentThread;
 using base::android::JavaObjectArrayReader;
diff --git a/chrome/browser/ui/android/toolbar/location_bar_model_android.cc b/chrome/browser/ui/android/toolbar/location_bar_model_android.cc
index b994b6c..8d12ce55 100644
--- a/chrome/browser/ui/android/toolbar/location_bar_model_android.cc
+++ b/chrome/browser/ui/android/toolbar/location_bar_model_android.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/ui/android/toolbar/location_bar_model_android.h"
 
 #include "base/android/jni_string.h"
+#include "chrome/android/chrome_jni_headers/LocationBarModel_jni.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/common/webui_url_constants.h"
 #include "components/omnibox/browser/location_bar_model_impl.h"
@@ -12,7 +13,6 @@
 #include "content/public/browser/ssl_status.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_constants.h"
-#include "jni/LocationBarModel_jni.h"
 #include "ui/base/device_form_factor.h"
 
 using base::android::JavaParamRef;
diff --git a/chrome/browser/ui/android/usb_chooser_dialog_android.cc b/chrome/browser/ui/android/usb_chooser_dialog_android.cc
index 2ded612f..78423c1 100644
--- a/chrome/browser/ui/android/usb_chooser_dialog_android.cc
+++ b/chrome/browser/ui/android/usb_chooser_dialog_android.cc
@@ -13,6 +13,7 @@
 #include "base/android/jni_string.h"
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/android/chrome_jni_headers/UsbChooserDialog_jni.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "chrome/browser/vr/vr_tab_helper.h"
 #include "chrome/common/url_constants.h"
@@ -21,7 +22,6 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "device/vr/buildflags/buildflags.h"
-#include "jni/UsbChooserDialog_jni.h"
 #include "ui/android/window_android.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/vr/DEPS b/chrome/browser/vr/DEPS
index af8f689..6c9833be 100644
--- a/chrome/browser/vr/DEPS
+++ b/chrome/browser/vr/DEPS
@@ -4,6 +4,7 @@
   "+cc/test",
   "+cc/trees",
   "+device/vr/util",
+  "+chrome/android/features/vr/jni_headers",
 ]
 
 specific_include_rules = {
@@ -11,4 +12,4 @@
     "+device/vr/test/test_hook.h",
     "+third_party/openvr/src/headers/openvr.h",
   ],
-}
\ No newline at end of file
+}
diff --git a/chrome/browser/vr/metrics/consent_flow_metrics_helper.cc b/chrome/browser/vr/metrics/consent_flow_metrics_helper.cc
index 023d4d0..65491042 100644
--- a/chrome/browser/vr/metrics/consent_flow_metrics_helper.cc
+++ b/chrome/browser/vr/metrics/consent_flow_metrics_helper.cc
@@ -8,7 +8,7 @@
 
 #if defined(OS_ANDROID)
 #include "base/android/jni_string.h"
-#include "jni/ConsentFlowMetrics_jni.h"
+#include "chrome/android/features/vr/jni_headers/ConsentFlowMetrics_jni.h"
 
 using base::android::JavaParamRef;
 #endif