[DragDrop] Remove custom logic to process VIEW intents for link drag and drop

Currently, there is some logic in LaunchIntentDispatcher to preserve
FLAG_ACTIVITY_MULTIPLE_TASK in a VIEW intent before dispatching it to
ChromeTabbedActivity. This was added to support link drag & drop to
create a new Chrome instance when the OS/OEM attempts to launch a VIEW
intent created from the original drag & drop ClipData intent. This will
also cause VIEW intents from other apps with this flag set to create a
new Chrome window, which is not desirable.

The OS/OEM is expected to launch the non-VIEW intent component specified
by Chrome in the drag & drop use case so this code path will ideally not
be hit. This CL removes updates added in LaunchIntentDispatcher in
https://chromium-review.googlesource.com/c/chromium/src/+/3591754 and https://chromium-review.googlesource.com/c/chromium/src/+/3698671 to revert this logic,
including the histogram that is recorded based on an intent extra that
differentiates a VIEW intent originating from a link drag & drop, since
this code path is obsolete.

Bug: 1410850
Change-Id: Ib5ef2b5d3379651860332ddc5f3a31dc9e1d28e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4284321
Code-Coverage: Findit <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Weilun Shi <sweilun@chromium.org>
Reviewed-by: Theresa Sullivan <twellington@chromium.org>
Commit-Queue: Aishwarya Rajesh <aishwaryarj@google.com>
Cr-Commit-Position: refs/heads/main@{#1109380}
5 files changed
tree: 01f18164630ff45c3a96679450d8801954c12e14
  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.