shared-highlights: remove broken browser test

This browser test is flaky by design, and despite extensive efforts I
can't figure out how to un-flake it, nor even how to reliably reproduce
the flake. Every path forward seems like it'll make things more
complex and worse, and the test has now been disabled for nearly
3 years.

The basic problem is that:

1. The test has to show a real context menu, which spawns a nested run
   loop
2. With that context menu open, the test then has to wait for highlight
   generation to finish
3. Once that happens, the test has to click the context menu item and
   wait for the async request to return

The nested run loop at (1) interferes with trying to wait for the menu
itself to be shown. Other tests that use context menus use a helper
class called ContextMenuNotificationObserver, but that class assumes
that the menu item under test can be immediately used once the menu is
shown. In our case, it's not, and it's not really clear how to adapt
ContextMenuNotificationObserver to allow waiting for it to be ready
without making the class significantly more complicated.

Another line of attack is to avoid showing the context menu at all, and
to invoke the behavior the context menu's command would invoke. That
also turns out not to work: *showing the context menu* is what begins
the async generation of the highlight (!), so simply calling the request
method without showing the menu fails. There is no exposed interface for
faking a context menu show on the renderer side.

The end result of this investigation is that there is no way to
implement this test without either redesigning shared highlighting,
adding a test-only Mojo interface, or adding a big hack to the context
menu code to allow for running code inside the context menu's internal
nested runloop. None of these seem like they will lead to better overall
code quality than just deleting the broken test, so, I'm deleting it.

Fixed: 1275253
Change-Id: I9456430d38809a6d4e9c7c01ef0341e794ed0270
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4327087
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1115397}
4 files changed
tree: 282a06d2344367a677be0d51745491a5ff517b7e
  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.