[PDF Ink Signatures] Re-work backend -> frontend API

Clicks will be handled by the PDF internal plugin and forwarded to
the PDF viewer. It is the PDF viewer's responsibility to initialize a
text annotation based on these clicks.

This CL:
- Removes handling for the 'updateTextBoxRect' message, which is now no
  longer planned.
- Adds click forwarding from the internal plugin to the viewer.
- Adds a method on Ink2Manager to initialize a text annotation based
  on the click position; if click is not on a page, click is ignored.
- To support this, at a new getPageAtPoint() method on the viewport
  and corresponding tests.
- Note: Ink2Manager sends full information (including styles,
  page number, etc) about the annotation to be edited in the
  initialization event, as opposed to only location information as
  in the earlier prototype which was based on the never-implemented
  backend updateTextBoxRect message.
- Note 2: Ink2Manager initializes the text box using screen
  coordinates instead of page coordinates.

This CL does not add:
- Logic for determining whether the click is on an existing or new
  annotation
- Page boundary enforcement for annotations.
- Updates to the frontend -> backend messages.

Bug: 402546155
Change-Id: Ic2a5cb9979db00bc75d6d41b5078bf154d219b14
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6499128
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Andy Phan <andyphan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1454553}
11 files changed
tree: f9c844d757404038b37020601f472a284c7efbd8
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. crypto/
  16. dbus/
  17. device/
  18. docs/
  19. extensions/
  20. fuchsia_web/
  21. gin/
  22. google_apis/
  23. gpu/
  24. headless/
  25. infra/
  26. ios/
  27. ipc/
  28. media/
  29. mojo/
  30. native_client_sdk/
  31. net/
  32. pdf/
  33. ppapi/
  34. printing/
  35. remoting/
  36. rlz/
  37. sandbox/
  38. services/
  39. skia/
  40. sql/
  41. storage/
  42. styleguide/
  43. testing/
  44. third_party/
  45. tools/
  46. ui/
  47. url/
  48. webkit/
  49. .clang-format
  50. .clang-tidy
  51. .clangd
  52. .git-blame-ignore-revs
  53. .gitallowed
  54. .gitattributes
  55. .gitignore
  56. .gitmodules
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. CPPLINT.cfg
  68. CRYPTO_OWNERS
  69. DEPS
  70. DIR_METADATA
  71. LICENSE
  72. LICENSE.chromium_os
  73. OWNERS
  74. PRESUBMIT.py
  75. PRESUBMIT_test.py
  76. PRESUBMIT_test_mocks.py
  77. README.md
  78. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure.

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.