Revert "Mark WeakLinkNode sequence checking expensive"

This reverts commit 6f447d5040c0c6e619e51ccc53fe0d084c98e896.

Reason for revert: Crashes on ChromeOS as soon as I touch the
device's touchpad

2024-03-26T00:58:16.588106Z FATAL chrome[5433:5496]: [sequence_checker.cc(21)] Check failed: checker.CalledOnValidSequence(&bound_at). 
#0 0x56f06aa34da2 base::debug::CollectStackTrace()
#1 0x56f06aa19ba2 base::debug::StackTrace::StackTrace()
#2 0x56f06a934073 logging::LogMessage::Flush()
#3 0x56f063de6fcd logging::LogMessage::~LogMessage()
#4 0x56f06a92053c logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
#5 0x56f06a9205ae logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage()
#6 0x56f063dc2ba6 logging::CheckError::~CheckError()
#7 0x56f063de9d22 base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker()
#8 0x56f063de4706 base::ObserverList<>::begin()
#9 0x56f06bfa75eb ui::CursorController::SetCursorLocation()
#10 0x56f0646d9be5 ui::DrmCursor::SetCursorLocationLocked()
#11 0x56f0646da6bf ui::DrmCursor::MoveCursor()
#12 0x56f06bfd76e6 ui::GestureInterpreterLibevdevCros::OnGestureMove()


Original change's description:
> Mark WeakLinkNode sequence checking expensive
>
> This makes for-each-node sequence checking expensive (which seems
> redundant). As a compromise we do non-"expensive" sequence checking in
> ObserverList::begin(), which should provide the same level of protection
> unless iterators are passed between sequences, which would be one heck
> of a thing to try to do.
>
> This accounts for about 60% of sequence checking in a profile I did way
> back. I have not profiled to see how much sequence checking remains with
> the sequence checking moved to begin() nor do I know the average
> ObserverList size. Let's try it out.
>
> In the same profile (though I don't remember what I profiled) sequence
> checking accounted for 1.2% of cycles. Hopefully this explains some of
> the performance gap between a DCHECK and regular Canary build.
>
> Bug: 40241607
> Change-Id: Id80d3363771e05e6f38c1432ae66b4c352acf8b8
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5319909
> Reviewed-by: François Degros <fdegros@chromium.org>
> Commit-Queue: Peter Boström <pbos@chromium.org>
> Reviewed-by: danakj <danakj@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Reviewed-by: Colin Blundell <blundell@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1277148}

Bug: 40241607
Change-Id: I8e11a7d796ba10a38453dff336f46e3aba04ab97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5394849
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: François Degros <fdegros@chromium.org>
Commit-Queue: François Degros <fdegros@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1278133}
9 files changed
tree: 566d1c1007edbe386c3358a800a350f8af17fc78
  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. webkit/
  51. .clang-format
  52. .clang-tidy
  53. .clangd
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitallowed
  57. .gitattributes
  58. .gitignore
  59. .gitmodules
  60. .gn
  61. .mailmap
  62. .rustfmt.toml
  63. .vpython3
  64. .yapfignore
  65. ATL_OWNERS
  66. AUTHORS
  67. BUILD.gn
  68. CODE_OF_CONDUCT.md
  69. codereview.settings
  70. DEPS
  71. DIR_METADATA
  72. LICENSE
  73. LICENSE.chromium_os
  74. OWNERS
  75. PRESUBMIT.py
  76. PRESUBMIT_test.py
  77. PRESUBMIT_test_mocks.py
  78. README.md
  79. 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.