Use base::apple::Owned[frameworktype] for ui::PlatformEvent

base::apple::Owned[frameworktype] is a new way to easily generate
owning wrapper classes for framework types. This CL switches
ui::PlatformEvent to use it, and does cleanup.

This unlocks the ability to convert ui/events/ to use ARC.

This was committed as https://crrev.com/c/4562796 but reverted
as a broken LSan bot showed that the original change was
faulty. On Mac/Win/iOS the original platform event should be
copied when a ui::Event is copied, but on other platforms
the original platform event must not be copied. See the
diff from 1..3 to see the change from the last commit.

Bug: 1443009
Bug: 1433041
Bug: 1280317
Change-Id: I122dc2b9cb7b867092618d8691e4456e3e4ebb06
Include-Ci-Only-Tests: true
Cq-Include-Trybots: luci.chromium.try:ios-blink-dbg-fyi
Cq-Include-Trybots: luci.chrome.try:mac-chrome
Cq-Include-Trybots: luci.chromium.try:linux-lacros-asan-lsan-rel
Validate-Test-Flakiness: skip
Low-Coverage-Reason: events_stub is intentionally a fallback and not tested.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4568966
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1149970}
25 files changed
tree: 9cff25c38354859b852594630b33c14e23b2aa47
  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. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. weblayer/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  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. DEPS
  68. DIR_METADATA
  69. LICENSE
  70. LICENSE.chromium_os
  71. OWNERS
  72. PRESUBMIT.py
  73. PRESUBMIT_test.py
  74. PRESUBMIT_test_mocks.py
  75. README.md
  76. 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.