[bookmarks] Refactor APIs to introduce enum NodeTypeForUuidLookup

No behavioral changes, as the enum initially contains a single value.

The general idea is that bookmark UUIDs are guaranteed to be unique only
in the scope of each NodeTypeForUuidLookup value. That's because
duplicate bookmarks could co-exist in certain circumnstances within a
single BookmarkModel instance, which also means they share UUIDs.

These duplicate UUIDs cannot exist in arbitrary locations of the
bookmark tree. Instead, NodeTypeForUuidLookup represents how the tree
can be partitioned in subtrees, where uniqueness is guaranteed for each
of the substrees (enum values).

In this first patch, a single enum value is introduced to keep the
delta small and avoid behavioral changes. Follow-up patches will extend
the enum with a second value that represents account bookmarks.

Design doc (sorry, Googlers only):
https://docs.google.com/document/d/1i9XuP0lXOvEbvlwXre-EXMum4dxs_UToCsCcImIPEQU/edit?usp=sharing&resourcekey=0-1t7DIB0kTw\
aaGMmxtiZLqw

Change-Id: I6d9c98fb8f7f6b1b51974f8555c4aedcf1714f92
Bug: 1494120
Low-Coverage-Reason: TRIVIAL_CHANGE concerning chrome/browser/
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5189787
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Arthur Milchior <arthurmilchior@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1247776}
8 files changed
tree: 0dbfb10e27fb5432d32c9519ddda6a203b6293cf
  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.