Reland "Reland "[Ad Privacy] Init ROW notice with filler dropdown content""

See go/row-notice-v3 for more details.

UTR test on initial failing tablet (100 iterations): https://ci.chromium.org/ui/inv/u-alvingo-2025-04-02-21-31-00-554a223fc7b4ec72/test-results?sortby=&groupby=

Screencast: https://screencast.googleplex.com/cast/NTUxODM5NjUyMjIzMzg1Nnw3YjMwNzUzZC0wNw

Bug: 405848876

This is a reland of commit 2b2f80ac4069454184a7688c4999b860687d9fe1

Original change's description:
> Reland "[Ad Privacy] Init ROW notice with filler dropdown content"
>
> This is a reland of commit 578ea8f8f8a8e7d31472efd6c66c13154539896b
>
> Root cause: The check to see if we've reached the bottom of the scrollview was only ran once on the dialog's `onShow` method. We did not have a way to update the button visibility on new renders which meant we were displaying stale button states. In the case of the failing tests we  initially calculated that the scrollview was scroll-able and displayed the more button. After the initial calculation new render occurred (with no re-calculation), this 2nd render had resized the scroll view such that we could not scroll anymore. We were then left in a state where the more button was shown (and would no-op when clicked since we cannot scroll) with the action buttons not being displayed meaning the user would be stuck on the screen.
>
> The fix: Updated the logic to listen on global layout updates which will now re-run calculations every time a layout change occurs. This also has the benefit of updating the button visibility when screen orientation changes which was a missing feature of existing dialogs. We also won't need to override `onShow` anymore as the initial render will be caught via `global layout` update.
>
> Screenshot before: https://screenshot.googleplex.com/8sJprruUZKNf6mE
> New look screenshot : https://screenshot.googleplex.com/BYUYNY2nu32gSib (Horizontal)
> https://screenshot.googleplex.com/Bcym7yaUqtRSSfW (Vertical)
>
> Remote run of the failing trybot: https://ci.chromium.org/ui/inv/u-alvingo-2025-03-27-20-45-00-f2149c619984ebb2/test-results?sortby=&groupby=
>
> Manually adding tablet try bots as well for test coverage.
>
> Original change's description:
> > [Ad Privacy] Init ROW notice with filler dropdown content
> >
> > A CL to populate the dropdown content will follow (not adding it in this CL since it'll be large).
> >
> > We're also generalizing the naming for some existing content such as dimens and logo files.
> >
> > Mocks: https://www.figma.com/design/vCs8M3DS3WqPUdeYN4hjA5/%5BNTK%5D-Ad-Privacy-Narrative?node-id=14702-17410&p=f&t=XgDHU2PzQyG41ia9-0
> >
> > Light Mode Screenshots:
> > On load: https://screenshot.googleplex.com/4KFaBuRwZyWrpjL
> > Action buttons: https://screenshot.googleplex.com/5jsNr7XZznefUZW
> > Sticky action buttons: https://screenshot.googleplex.com/BCSBJZ3252A2PND
> >
> > Dark Mode Screenshots:
> > On load: https://screenshot.googleplex.com/96cdWAUQTH8Xw92
> > Action buttons: https://screenshot.googleplex.com/7MWGVE6D6dQ6SLG
> > Sticky action buttons: https://screenshot.googleplex.com/AvjU2AavMiKCUqr
> >
> >
> > Bug: 392943234
> > Change-Id: I7dcfa2786e99548c9337af2356577d36924c2ee7
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6368284
> > Commit-Queue: Alvin Lam <alvingo@google.com>
> > Reviewed-by: Abe Boujane <boujane@google.com>
> > Reviewed-by: Aashna Sheth <aashnas@google.com>
> > Reviewed-by: Jacob Stanley <jacobstanley@google.com>
> > Cr-Commit-Position: refs/heads/main@{#1436158}
>
> Bug: 392943234, 405848876
> Change-Id: Ida4142438ca5d513faaa8b4fa5644291408e6266
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6387637
> Reviewed-by: Jacob Stanley <jacobstanley@google.com>
> Commit-Queue: Jacob Stanley <jacobstanley@google.com>
> Reviewed-by: Kevin Graney <kmg@google.com>
> Cr-Commit-Position: refs/heads/main@{#1439404}

Bug: 392943234, 405848876
Change-Id: I1573055f6640cf726df133152c3a679071538ae3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6409432
Feels: Aashna Sheth <aashnas@google.com>
Feels: Alvin Lam <alvingo@google.com>
Reviewed-by: Kevin Graney <kmg@google.com>
Reviewed-by: Jacob Stanley <jacobstanley@google.com>
Commit-Queue: Alvin Lam <alvingo@google.com>
Cr-Commit-Position: refs/heads/main@{#1443595}
12 files changed
tree: 64eb8e4b7d322e7d17a1caa363435bf412c812d8
  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. crypto/
  16. dbus/
  17. device/
  18. docs/
  19. extensions/
  20. fuchsia_web/
  21. gin/
  22. google_apis/
  23. gpu/
  24. headless/
  25. infra/
  26. ios/
  27. ipc/
  28. media/
  29. mojo/
  30. native_client_sdk/
  31. net/
  32. pdf/
  33. ppapi/
  34. printing/
  35. remoting/
  36. rlz/
  37. sandbox/
  38. services/
  39. skia/
  40. sql/
  41. storage/
  42. styleguide/
  43. testing/
  44. third_party/
  45. tools/
  46. ui/
  47. url/
  48. webkit/
  49. .clang-format
  50. .clang-tidy
  51. .clangd
  52. .git-blame-ignore-revs
  53. .gitallowed
  54. .gitattributes
  55. .gitignore
  56. .gitmodules
  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. CPPLINT.cfg
  68. CRYPTO_OWNERS
  69. DEPS
  70. DIR_METADATA
  71. LICENSE
  72. LICENSE.chromium_os
  73. OWNERS
  74. PRESUBMIT.py
  75. PRESUBMIT_test.py
  76. PRESUBMIT_test_mocks.py
  77. README.md
  78. 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.