Reland "Android: Move #include of _jni.h headers to after other headers"

This reverts commit 00b861abe677c1df2e83895e6ebac39cf5c96f7a.

Reason for reland: Fixed bad file

Original change's description:
> Revert "Android: Move #include of _jni.h headers to after other headers"
>
> This reverts commit 6a66fe96d7b252a70a11a27fc9630730dab14be2.
>
> Reason for revert: Build failure:
> https://ci.chromium.org/ui/p/chromium/builders/ci/Cast%20Android%20(dbg)/239379/overview
>
> Original change's description:
> > Android: Move #include of _jni.h headers to after other headers
> >
> > Scripted change that ignores includes within #if blocks:
> > https://gist.github.com/agrieve/9b4ad9ef78955032a6db453b4b15dac0
> >
> > No-Try: true
> > Bug: 334905258
> > Change-Id: I9c60f2d6e91d93d213fca5cceee52f6c0df55542
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5575995
> > Auto-Submit: Andrew Grieve <[email protected]>
> > Reviewed-by: Mohamed Heikal <[email protected]>
> > Commit-Queue: Andrew Grieve <[email protected]>
> > Owners-Override: Andrew Grieve <[email protected]>
> > Cr-Commit-Position: refs/heads/main@{#1307450}
>
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 334905258
> Change-Id: I37a20e8850fb9ffd5b7af28fd1f6717220437ba9
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5581850
> Owners-Override: Francois Pierre Doray <[email protected]>
> Reviewed-by: Mohamed Heikal <[email protected]>
> Commit-Queue: Rubber Stamper <[email protected]>
> Auto-Submit: Francois Pierre Doray <[email protected]>
> Bot-Commit: Rubber Stamper <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1307464}

Bug: 334905258
No-Try: true
Change-Id: Ie2b5398328e1a4c5bf6899b4d0bf0bae478f72e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5581989
Reviewed-by: Mohamed Heikal <[email protected]>
Commit-Queue: Andrew Grieve <[email protected]>
Owners-Override: Andrew Grieve <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1307572}
diff --git a/ui/accessibility/android/accessibility_features_map.cc b/ui/accessibility/android/accessibility_features_map.cc
index fb6d2b77..c8af68d 100644
--- a/ui/accessibility/android/accessibility_features_map.cc
+++ b/ui/accessibility/android/accessibility_features_map.cc
@@ -5,6 +5,8 @@
 #include "base/android/feature_map.h"
 #include "base/no_destructor.h"
 #include "ui/accessibility/accessibility_features.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/accessibility/ax_base_jni_headers/AccessibilityFeaturesMap_jni.h"
 
 namespace ui {
diff --git a/ui/accessibility/android/accessibility_state.cc b/ui/accessibility/android/accessibility_state.cc
index e2ac042..a4fcd348 100644
--- a/ui/accessibility/android/accessibility_state.cc
+++ b/ui/accessibility/android/accessibility_state.cc
@@ -7,6 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_array.h"
 #include "base/no_destructor.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/accessibility/ax_jni_headers/AccessibilityAutofillHelper_jni.h"
 #include "ui/accessibility/ax_jni_headers/AccessibilityState_jni.h"
 
diff --git a/ui/accessibility/android/ui_accessibility_feature_map.cc b/ui/accessibility/android/ui_accessibility_feature_map.cc
index 23c1256..35c6e56 100644
--- a/ui/accessibility/android/ui_accessibility_feature_map.cc
+++ b/ui/accessibility/android/ui_accessibility_feature_map.cc
@@ -5,6 +5,8 @@
 #include "base/android/feature_map.h"
 #include "base/no_destructor.h"
 #include "ui/accessibility/android/ui_accessibility_features.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/accessibility/ax_jni_headers/UiAccessibilityFeatureMap_jni.h"
 
 namespace ui {
diff --git a/ui/android/display_android_manager.cc b/ui/android/display_android_manager.cc
index b7c1b8e..77b4ba6 100644
--- a/ui/android/display_android_manager.cc
+++ b/ui/android/display_android_manager.cc
@@ -15,12 +15,14 @@
 #include "components/viz/common/viz_utils.h"
 #include "ui/android/screen_android.h"
 #include "ui/android/ui_android_features.h"
-#include "ui/android/ui_android_jni_headers/DisplayAndroidManager_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/display/display.h"
 #include "ui/gfx/display_color_spaces.h"
 #include "ui/gfx/icc_profile.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_android_jni_headers/DisplayAndroidManager_jni.h"
+
 namespace ui {
 
 using base::android::AttachCurrentThread;
diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
index 0075a42..c7b3bf8 100644
--- a/ui/android/event_forwarder.cc
+++ b/ui/android/event_forwarder.cc
@@ -9,7 +9,6 @@
 #include "base/trace_event/typed_macros.h"
 #include "base/tracing/protos/chrome_track_event.pbzero.h"
 #include "ui/android/ui_android_features.h"
-#include "ui/android/ui_android_jni_headers/EventForwarder_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/ui_base_switches_util.h"
 #include "ui/events/android/drag_event_android.h"
@@ -18,6 +17,9 @@
 #include "ui/events/android/key_event_android.h"
 #include "ui/events/android/motion_event_android.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_android_jni_headers/EventForwarder_jni.h"
+
 namespace ui {
 namespace {
 static constexpr float kEpsilon = 1e-5f;
diff --git a/ui/android/handle_view_resources.cc b/ui/android/handle_view_resources.cc
index f5d221c..24845a4 100644
--- a/ui/android/handle_view_resources.cc
+++ b/ui/android/handle_view_resources.cc
@@ -5,6 +5,8 @@
 #include "ui/android/handle_view_resources.h"
 
 #include "base/trace_event/trace_event.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/android/ui_android_jni_headers/HandleViewResources_jni.h"
 
 namespace {
diff --git a/ui/android/overscroll_refresh_handler.cc b/ui/android/overscroll_refresh_handler.cc
index ca65e25..c128d24 100644
--- a/ui/android/overscroll_refresh_handler.cc
+++ b/ui/android/overscroll_refresh_handler.cc
@@ -5,6 +5,8 @@
 #include "ui/android/overscroll_refresh_handler.h"
 
 #include "base/android/jni_android.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/android/ui_android_jni_headers/OverscrollRefreshHandler_jni.h"
 
 using base::android::AttachCurrentThread;
diff --git a/ui/android/resources/resource_factory.cc b/ui/android/resources/resource_factory.cc
index 890ad614..bed20ead 100644
--- a/ui/android/resources/resource_factory.cc
+++ b/ui/android/resources/resource_factory.cc
@@ -3,9 +3,11 @@
 // found in the LICENSE file.
 
 #include "ui/android/resources/nine_patch_resource.h"
-#include "ui/android/ui_android_jni_headers/ResourceFactory_jni.h"
 #include "ui/gfx/geometry/rect.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_android_jni_headers/ResourceFactory_jni.h"
+
 using jni_zero::JavaParamRef;
 
 namespace ui {
diff --git a/ui/android/resources/resource_manager_impl.cc b/ui/android/resources/resource_manager_impl.cc
index ac65593..cd18a29 100644
--- a/ui/android/resources/resource_manager_impl.cc
+++ b/ui/android/resources/resource_manager_impl.cc
@@ -25,11 +25,13 @@
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkColorFilter.h"
 #include "ui/android/resources/ui_resource_provider.h"
-#include "ui/android/ui_android_jni_headers/ResourceManager_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/geometry/rect.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_android_jni_headers/ResourceManager_jni.h"
+
 using base::android::JavaArrayOfIntArrayToIntVector;
 using base::android::JavaParamRef;
 using base::android::JavaRef;
diff --git a/ui/android/ui_android_feature_map.cc b/ui/android/ui_android_feature_map.cc
index bf340a6..a37b4c13 100644
--- a/ui/android/ui_android_feature_map.cc
+++ b/ui/android/ui_android_feature_map.cc
@@ -6,6 +6,8 @@
 #include "base/feature_list.h"
 #include "base/no_destructor.h"
 #include "ui/android/ui_android_features.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/android/ui_android_jni_headers/UiAndroidFeatureMap_jni.h"
 
 namespace ui {
diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
index 8edb091..83c4846b 100644
--- a/ui/android/view_android.cc
+++ b/ui/android/view_android.cc
@@ -17,7 +17,6 @@
 #include "components/viz/common/frame_sinks/copy_output_request.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/android/event_forwarder.h"
-#include "ui/android/ui_android_jni_headers/ViewAndroidDelegate_jni.h"
 #include "ui/android/window_android.h"
 #include "ui/base/cursor/cursor.h"
 #include "ui/base/cursor/mojom/cursor_type.mojom-shared.h"
@@ -31,6 +30,9 @@
 #include "ui/gfx/geometry/point.h"
 #include "url/gurl.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_android_jni_headers/ViewAndroidDelegate_jni.h"
+
 namespace ui {
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/ui/android/window_android.cc b/ui/android/window_android.cc
index d522d28a..f31307e 100644
--- a/ui/android/window_android.cc
+++ b/ui/android/window_android.cc
@@ -14,12 +14,14 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/observer_list.h"
 #include "ui/android/display_android_manager.h"
-#include "ui/android/ui_android_jni_headers/WindowAndroid_jni.h"
 #include "ui/android/window_android_compositor.h"
 #include "ui/android/window_android_observer.h"
 #include "ui/base/ui_base_features.h"
 #include "ui/gfx/display_color_spaces.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_android_jni_headers/WindowAndroid_jni.h"
+
 namespace ui {
 
 using base::android::AttachCurrentThread;
diff --git a/ui/base/clipboard/clipboard_android_test_support.cc b/ui/base/clipboard/clipboard_android_test_support.cc
index 7ba992f2..535f9af0 100644
--- a/ui/base/clipboard/clipboard_android_test_support.cc
+++ b/ui/base/clipboard/clipboard_android_test_support.cc
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "ui/android/ui_javatest_jni_headers/ClipboardAndroidTestSupport_jni.h"
 
 #include <string>
 
@@ -13,6 +12,9 @@
 #include "ui/base/clipboard/clipboard_buffer.h"
 #include "ui/base/clipboard/scoped_clipboard_writer.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/android/ui_javatest_jni_headers/ClipboardAndroidTestSupport_jni.h"
+
 namespace ui {
 
 jboolean JNI_ClipboardAndroidTestSupport_NativeWriteHtml(
diff --git a/ui/base/device_form_factor_android.cc b/ui/base/device_form_factor_android.cc
index 4898057..db51da3 100644
--- a/ui/base/device_form_factor_android.cc
+++ b/ui/base/device_form_factor_android.cc
@@ -6,6 +6,8 @@
 
 #include "base/android/build_info.h"
 #include "base/android/jni_android.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/base/ui_base_jni_headers/DeviceFormFactor_jni.h"
 
 namespace ui {
diff --git a/ui/base/idle/idle_android.cc b/ui/base/idle/idle_android.cc
index 4f682d73..595a36b 100644
--- a/ui/base/idle/idle_android.cc
+++ b/ui/base/idle/idle_android.cc
@@ -9,6 +9,8 @@
 #include "base/memory/singleton.h"
 #include "base/notreached.h"
 #include "ui/base/idle/idle_internal.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/base/ui_base_jni_headers/IdleDetector_jni.h"
 
 using base::android::ConvertJavaStringToUTF8;
diff --git a/ui/base/l10n/l10n_util_android.cc b/ui/base/l10n/l10n_util_android.cc
index 57225e9..3d891ab 100644
--- a/ui/base/l10n/l10n_util_android.cc
+++ b/ui/base/l10n/l10n_util_android.cc
@@ -14,6 +14,8 @@
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/string_util.h"
 #include "third_party/icu/source/common/unicode/uloc.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/base/ui_base_jni_headers/LocalizationUtils_jni.h"
 
 using base::android::JavaParamRef;
diff --git a/ui/base/pointer/pointer_device_android.cc b/ui/base/pointer/pointer_device_android.cc
index 53ef4de..916ca40 100644
--- a/ui/base/pointer/pointer_device_android.cc
+++ b/ui/base/pointer/pointer_device_android.cc
@@ -6,6 +6,8 @@
 
 #include "base/android/jni_array.h"
 #include "base/check_op.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/base/ui_base_jni_headers/TouchDevice_jni.h"
 
 using jni_zero::AttachCurrentThread;
diff --git a/ui/base/resource/resource_bundle_android.cc b/ui/base/resource/resource_bundle_android.cc
index aef3534a..4b49f31 100644
--- a/ui/base/resource/resource_bundle_android.cc
+++ b/ui/base/resource/resource_bundle_android.cc
@@ -19,9 +19,11 @@
 #include "ui/base/resource/data_pack.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/resource/resource_scale_factor.h"
-#include "ui/base/ui_base_jni_headers/ResourceBundle_jni.h"
 #include "ui/base/ui_base_paths.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/base/ui_base_jni_headers/ResourceBundle_jni.h"
+
 namespace ui {
 
 namespace {
diff --git a/ui/events/android/key_event_utils.cc b/ui/events/android/key_event_utils.cc
index fb8e78b6..0bf4692 100644
--- a/ui/events/android/key_event_utils.cc
+++ b/ui/events/android/key_event_utils.cc
@@ -4,6 +4,7 @@
 
 #include "ui/events/android/key_event_utils.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/events/keyevent_jni_headers/KeyEvent_jni.h"
 
 namespace ui {
diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc
index a3ba80c5..e9bea52 100644
--- a/ui/events/android/motion_event_android.cc
+++ b/ui/events/android/motion_event_android.cc
@@ -16,6 +16,8 @@
 #include "ui/events/base_event_utils.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/event_utils.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/events/motionevent_jni_headers/MotionEvent_jni.h"
 
 using base::android::AttachCurrentThread;
diff --git a/ui/events/devices/input_device_observer_android.cc b/ui/events/devices/input_device_observer_android.cc
index 65d8f13..15f6781 100644
--- a/ui/events/devices/input_device_observer_android.cc
+++ b/ui/events/devices/input_device_observer_android.cc
@@ -5,6 +5,8 @@
 #include "ui/events/devices/input_device_observer_android.h"
 
 #include "base/memory/singleton.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/events/devices/ui_events_devices_jni_headers/InputDeviceObserver_jni.h"
 
 using jni_zero::AttachCurrentThread;
diff --git a/ui/gfx/android/java_bitmap.cc b/ui/gfx/android/java_bitmap.cc
index c81a1cb..b37897eb 100644
--- a/ui/gfx/android/java_bitmap.cc
+++ b/ui/gfx/android/java_bitmap.cc
@@ -13,6 +13,8 @@
 #include "base/notreached.h"
 #include "base/numerics/safe_conversions.h"
 #include "ui/gfx/geometry/size.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gfx/gfx_jni_headers/BitmapHelper_jni.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/ui/gfx/android/view_configuration.cc b/ui/gfx/android/view_configuration.cc
index faf905e0..2a30bae 100644
--- a/ui/gfx/android/view_configuration.cc
+++ b/ui/gfx/android/view_configuration.cc
@@ -7,6 +7,8 @@
 #include "base/android/jni_android.h"
 #include "base/lazy_instance.h"
 #include "base/synchronization/lock.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gfx/gfx_jni_headers/ViewConfigurationHelper_jni.h"
 
 using base::android::AttachCurrentThread;
diff --git a/ui/gfx/animation/animation_android.cc b/ui/gfx/animation/animation_android.cc
index 3e64018..18de895ce 100644
--- a/ui/gfx/animation/animation_android.cc
+++ b/ui/gfx/animation/animation_android.cc
@@ -5,6 +5,8 @@
 #include "ui/gfx/animation/animation.h"
 
 #include "base/android/jni_android.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gfx/gfx_jni_headers/Animation_jni.h"
 
 using base::android::AttachCurrentThread;
diff --git a/ui/gl/android/scoped_java_surface.cc b/ui/gl/android/scoped_java_surface.cc
index 72c3db81..1a798da3 100644
--- a/ui/gl/android/scoped_java_surface.cc
+++ b/ui/gl/android/scoped_java_surface.cc
@@ -8,6 +8,8 @@
 
 #include "base/check.h"
 #include "ui/gl/android/surface_texture.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gl/surface_jni_headers/Surface_jni.h"
 
 using base::android::ScopedJavaLocalRef;
diff --git a/ui/gl/android/scoped_java_surface_control.cc b/ui/gl/android/scoped_java_surface_control.cc
index 7e61d695..4b54320 100644
--- a/ui/gl/android/scoped_java_surface_control.cc
+++ b/ui/gl/android/scoped_java_surface_control.cc
@@ -7,6 +7,8 @@
 #include <utility>
 
 #include "base/android/jni_android.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gl/gl_jni_headers/ScopedJavaSurfaceControl_jni.h"
 
 namespace gl {
diff --git a/ui/gl/android/surface_texture.cc b/ui/gl/android/surface_texture.cc
index 21cc925..b00e52e 100644
--- a/ui/gl/android/surface_texture.cc
+++ b/ui/gl/android/surface_texture.cc
@@ -13,6 +13,8 @@
 #include "ui/gl/android/scoped_java_surface.h"
 #include "ui/gl/android/surface_texture_listener.h"
 #include "ui/gl/gl_bindings.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gl/gl_jni_headers/SurfaceTexturePlatformWrapper_jni.h"
 
 #ifndef GL_ANGLE_texture_storage_external
diff --git a/ui/gl/android/surface_texture_listener.cc b/ui/gl/android/surface_texture_listener.cc
index ffa290a2..6769adf 100644
--- a/ui/gl/android/surface_texture_listener.cc
+++ b/ui/gl/android/surface_texture_listener.cc
@@ -8,6 +8,8 @@
 
 #include "base/location.h"
 #include "base/task/single_thread_task_runner.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
 #include "ui/gl/gl_jni_headers/SurfaceTextureListener_jni.h"
 
 using base::android::JavaParamRef;
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
index cb8b0834..4050492 100644
--- a/ui/shell_dialogs/select_file_dialog_android.cc
+++ b/ui/shell_dialogs/select_file_dialog_android.cc
@@ -14,11 +14,13 @@
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "ui/android/window_android.h"
-#include "ui/base/select_file_dialog_jni_headers/SelectFileDialog_jni.h"
 #include "ui/shell_dialogs/select_file_policy.h"
 #include "ui/shell_dialogs/selected_file_info.h"
 #include "url/gurl.h"
 
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/base/select_file_dialog_jni_headers/SelectFileDialog_jni.h"
+
 using base::android::ConvertJavaStringToUTF8;
 using base::android::JavaParamRef;
 using base::android::ScopedJavaLocalRef;