Do not bind web_contents directly in OnArcHandled

It seems that web_contents may be destroyed during
RunArcExternalProtocolDialog (See TODO comment in the code).
See crashes in crbug.com/1136237

So rather than bind web_contents directly into OnArcHandled(), we use
render_process_host_id and routing_id to look it up at the end as was
happening in ShowFallbackEternalProtocolDialog() prior to
crrev.com/c/2423067.

(cherry picked from commit 4c77220993014cbb8388c7b13063773678878afe)

Bug: 1136237
Change-Id: If0bc1287f9eedbf2b915cd97e049a19f379254ec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2460067
Commit-Queue: Xiyuan Xia <[email protected]>
Reviewed-by: Xiyuan Xia <[email protected]>
Auto-Submit: Joel Hockey <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#815200}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2461899
Reviewed-by: Joel Hockey <[email protected]>
Commit-Queue: Joel Hockey <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#166}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
1 file changed
tree: ab77448ca30a4b6236a67f6a29b8bb3871bdae0f
  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. cloud_print/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. jingle/
  31. media/
  32. mojo/
  33. native_client_sdk/
  34. net/
  35. pdf/
  36. ppapi/
  37. printing/
  38. remoting/
  39. rlz/
  40. sandbox/
  41. services/
  42. skia/
  43. sql/
  44. storage/
  45. styleguide/
  46. testing/
  47. third_party/
  48. tools/
  49. ui/
  50. url/
  51. weblayer/
  52. .clang-format
  53. .clang-tidy
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitattributes
  57. .gitignore
  58. .gn
  59. .vpython
  60. .vpython3
  61. .yapfignore
  62. AUTHORS
  63. BUILD.gn
  64. CODE_OF_CONDUCT.md
  65. codereview.settings
  66. DEPS
  67. DIR_METADATA
  68. ENG_REVIEW_OWNERS
  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.

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.