Show cursors only for available scrolling directions when autoscrolling

This change adds two new cursors for auto scrolling, one that shows only
vertical directions, and the other that shows only horizontal. (This has
the unfortunate side effect of causing cascading small changes to many
files, sorry!) These new cursors are then used in autoscrolling so that
when a user is on a page that can only scroll vertically, if they middle
click it will then show an autoscroll cursor that reflects the available
directions, i.e. up and down only. Similar results for horizontal
scrolling only pages.

This change caches the directions available to scroll when the middle
mouse button is clicked and uses those to determine which cursors to show
when handling mouse move events. This unfortunately means that if a user
middle clicks somewhere that can only scroll vertically, and later that
changes to being able to scroll horizontally exclusively without user
input, the cursor will still only show vertical directions. However, this
matches what Firefox and non-Chromium-based Edge do right now, so this
seems fine to me. A file up bug to fix this issue should be filed though.

Bug: 11437
Change-Id: I68e083d1e0b9e14071f67f9268e826a40cebd783
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1638924
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Mario Bianucci <mabian@microsoft.com>
Cr-Original-Commit-Position: refs/heads/master@{#666361}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 687a3b4cdcbd6c3850e06868d9aaaca6e1b83df3
diff --git a/api/dev/pp_cursor_type_dev.idl b/api/dev/pp_cursor_type_dev.idl
index 08abec3..6d02bc7 100644
--- a/api/dev/pp_cursor_type_dev.idl
+++ b/api/dev/pp_cursor_type_dev.idl
@@ -51,6 +51,8 @@
   PP_CURSORTYPE_ZOOMIN = 39,
   PP_CURSORTYPE_ZOOMOUT = 40,
   PP_CURSORTYPE_GRAB = 41,
-  PP_CURSORTYPE_GRABBING = 42
+  PP_CURSORTYPE_GRABBING = 42,
+  PP_CURSORTYPE_MIDDLEPANNINGVERTICAL = 43,
+  PP_CURSORTYPE_MIDDLEPANNINGHORIZONTAL = 44
 };
 
diff --git a/api/ppb_mouse_cursor.idl b/api/ppb_mouse_cursor.idl
index 9fba254..2dd7681 100644
--- a/api/ppb_mouse_cursor.idl
+++ b/api/ppb_mouse_cursor.idl
@@ -63,7 +63,9 @@
   PP_MOUSECURSOR_TYPE_ZOOMIN = 39,
   PP_MOUSECURSOR_TYPE_ZOOMOUT = 40,
   PP_MOUSECURSOR_TYPE_GRAB = 41,
-  PP_MOUSECURSOR_TYPE_GRABBING = 42
+  PP_MOUSECURSOR_TYPE_GRABBING = 42,
+  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGVERTICAL = 43,
+  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGHORIZONTAL = 44
 };
 
 /**
diff --git a/c/dev/pp_cursor_type_dev.h b/c/dev/pp_cursor_type_dev.h
index 82967a7..68ca41c 100644
--- a/c/dev/pp_cursor_type_dev.h
+++ b/c/dev/pp_cursor_type_dev.h
@@ -64,7 +64,9 @@
   PP_CURSORTYPE_ZOOMIN = 39,
   PP_CURSORTYPE_ZOOMOUT = 40,
   PP_CURSORTYPE_GRAB = 41,
-  PP_CURSORTYPE_GRABBING = 42
+  PP_CURSORTYPE_GRABBING = 42,
+  PP_CURSORTYPE_MIDDLEPANNINGVERTICAL = 43,
+  PP_CURSORTYPE_MIDDLEPANNINGHORIZONTAL = 44
 };
 PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(PP_CursorType_Dev, 4);
 /**
diff --git a/c/ppb_mouse_cursor.h b/c/ppb_mouse_cursor.h
index bc6a5f5..e07bea3 100644
--- a/c/ppb_mouse_cursor.h
+++ b/c/ppb_mouse_cursor.h
@@ -77,7 +77,9 @@
   PP_MOUSECURSOR_TYPE_ZOOMIN = 39,
   PP_MOUSECURSOR_TYPE_ZOOMOUT = 40,
   PP_MOUSECURSOR_TYPE_GRAB = 41,
-  PP_MOUSECURSOR_TYPE_GRABBING = 42
+  PP_MOUSECURSOR_TYPE_GRABBING = 42,
+  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGVERTICAL = 43,
+  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGHORIZONTAL = 44
 };
 PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(PP_MouseCursor_Type, 4);
 /**