0

457 Commits

Author SHA1 Message Date
edf5748269 Exported things should always be visible
This changes our COMPONENT_EXPORT macros to make the things they export
visible all the time on non-windows, rather than making them visible in
the named component only. This avoids subtle bugs where things defined
in multiple components end up with one copy per component, only one of
which is visible, and so the linker doesn't know it's supposed to dedup
them.

Some, but not all, of these issues are detected by the new clang warning
-Wunique-object-duplication. This change addresses some instances of that
warning firing on chromium code, but not all. Conversely, there are likely
instances which the warning does not catch, which are fixed by this CL.

Bug: 368047728
Change-Id: I829a9bd84e57e3c7d80ec33aea0408951019bde7
AX-Relnotes: n/a.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6264795
Owners-Override: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Devon Loehr <dloehr@google.com>
Cr-Commit-Position: refs/heads/main@{#1456614}
2025-05-06 14:23:23 -07:00
51cc784590 [CodeHealth] Remove pref_service_util::GetAllDottedPaths
Unused since crrev.com/c/6108538.

Bug: None
Change-Id: I4ff9bec8ae7b8b0e5a80b3b62b7e0c25ccb057f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6316769
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Auto-Submit: Andrew Rayskiy <greengrape@google.com>
Cr-Commit-Position: refs/heads/main@{#1427605}
2025-03-04 01:23:29 -08:00
8726d30ed0 Suppress unsafe_libc_call warning for initial identified files.
See docs/unsafe_buffers.md for details. Enforcement is not yet
enabled, but this set of files are not in compliance with the
new warnings.

Bug: 390223051
Change-Id: I4e24c2141b9399f572678302c833947494098b29
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6187925
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412673}
2025-01-28 18:11:08 -08:00
ccea09835f [cleanup] Replace base::ranges with std::ranges: components/
Done entirely with `git grep` and `sed` + `git cl format`, no
hand-editing.

Bug: 386918226
Change-Id: I7377af2f9c3758c68a249b421d98bd3fd5c2c1fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6201377
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1411730}
2025-01-27 10:38:22 -08:00
54bf30ee51 components: Remove obsolete ui_mode.gni imports
Having removed is_chromeos_lacros and is_chromeos_ash uses, almost all
imports of build/config/chromeos/ui_mode.gni (under components/) are
obsolete. Remove them.

Also remove some DEPS entries that reference Lacros sources that no
longer exist.

Bug: b:354842935
Change-Id: Ia300c150cc591cde0156510c8d9333e5fe5576e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108472
Reviewed-by: Jun Ishiguro <junis@google.com>
Owners-Override: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1400016}
2024-12-24 01:21:15 -08:00
c91f08f907 components: Remove chromeos_buildflags build dependencies
After [1], the only build target (under components/) that needs chromeos_buildflags is //components/crash/core/app. Remove the
dependency from all others.

[1]https://chromium-review.googlesource.com/c/chromium/src/+/6108703/

Bug: b:354842935
Change-Id: I537ea10ab943374fe9793767a5461b71ecbcf52b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6109205
Reviewed-by: Jun Ishiguro <junis@google.com>
Owners-Override: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1400012}
2024-12-24 01:15:11 -08:00
0f98ad7c50 components: Remove obsolete includes of chromeos_buildflags.h
Having removed IS_CHROMEOS_ASH and IS_CHROMEOS_LACROS uses, almost
all includes of chromeos_buildflags.h have become obsolete.

Bug: b:354842935
Change-Id: I1c3e33f12ea63f9444b841c465de5b37c4ae4b80
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108703
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jun Ishiguro <junis@google.com>
Owners-Override: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1400011}
2024-12-24 01:14:13 -08:00
0ea7859156 components: Remove IS_CHROMEOS_ASH uses
IS_CHROMEOS_ASH is deprecated. Use the equivalent IS_CHROMEOS instead.

Bug: b:354842935
Change-Id: I3e6762c14aaac20571d5e2b20f0276f7619ce3e8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108986
Owners-Override: Georg Neis <neis@chromium.org>
Reviewed-by: Jun Ishiguro <junis@google.com>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1400010}
2024-12-24 01:13:59 -08:00
2e0831901a ash: Remove obsolete standalone browser pref store
The store was used for Lacros and is not needed anymore. Remove
the code but leave a cleanup function that deletes any remaining
pref file (this function existed already because the storage location
had changed - extend it to handle the last location as well).

Bug: b:365741912
Change-Id: I72c4e70e5797c4f090831ffa62eaf2101659c718
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108538
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1398973}
2024-12-19 17:30:02 -08:00
0ab3611ebd [Android] Add @NullMarked to components/prefs
Bug: 40657579
Change-Id: Ic9aa89a990450fbbda0a25b75af93c7afb4daf2b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6104220
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Owners-Override: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1398182}
2024-12-18 13:02:54 -08:00
0d09fe492e ash: Remove crosapi's NetworkSettingsService and related code
Remove NetworkSettingsService and related crosapi interfaces as well
as their implementations. They are no longer needed.

This includes deprecating the ash.lacros_proxy_controlling_extension
preference.

No change in behavior intended.

Bug: b:365741912
Change-Id: I2abd425d5e0c87f4ddcd97b1d068e420d47e4857
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6054898
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Andreea Costinas <acostinas@google.com>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1390781}
2024-12-03 03:27:29 +00:00
4672dfdbe6 [Android] Move PrefChangeRegistrar to components/prefs
Make it possible to observe local_state instead of Profile prefs.

Bug: 381122436,40132529
Change-Id: Ib7ec2cfac791505b89586df7d682de40bdba2149
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6055147
Reviewed-by: Theresa Sullivan <twellington@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1390455}
2024-12-02 18:13:45 +00:00
b35b169c63 JNI Zero: JniMocker -> setInstanceForTesting() (replace uses)
Mostly a scripted change:
data = re.sub(r'^import .*\.JniMocker;\n', '', data, flags=re.MULTILINE)
data = re.sub(r'^.*@Rule\s+.*JniMocker (\w+) =\s*new JniMocker\(\);\n', '', data, flags=re.MULTILINE)
data = re.sub(r'\w+\.mock\(\s*(.+)\.TEST_HOOKS,\s*([^)]+)\)', r'\1.setInstanceForTesting(\2)', data)
data = re.sub(r'(\w+Jni)\.TEST_HOOKS\.setInstanceForTesting', r'\1.setInstanceForTesting', data)

Bug: 329069277
Change-Id: I5382f07d641f0f211f03b2f3d9cc219990226a33
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6020725
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383714}
2024-11-15 18:30:42 +00:00
77d2135a33 Migrate remaining NOTREACHED()s in components/
NOTREACHED() and NOTREACHED_IN_MIGRATION() are both CHECK-fatal now.
The former is [[noreturn]] so this CL also performs dead-code removal
after the NOTREACHED().

This CL does not attempt to do additional rewrites of any surrounding
code, like:

if (!foo) {
  NOTREACHED();
}

to CHECK(foo);

Those transforms take a non-trivial amount of time (and there are
thousands of instances). Cleanup can be left as an exercise for the
reader.

Bug: 40580068
Change-Id: I72205fb77747957c6bf33dbea93656fd20085a42
Low-Coverage-Reason: OTHER Should-be-unreachable code
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6010008
Reviewed-by: Rick Byers <rbyers@chromium.org>
Owners-Override: Rick Byers <rbyers@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382618}
2024-11-13 22:26:11 +00:00
a8d6d61b67 components: default the user-defined empty ctor and dtor where possible
I need an owner's approval please for changes under:
components/prefs

This is a mechanical change. There are a few instances (but not all)
of empty user-defined constructors and destructors which can be
defaulted in the /components code.

This CL was uploaded by git cl split.

R=gab@chromium.org

Bug: 371316188
Change-Id: I63c39f2856361e8c805f424a69968251202ce175
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5917418
Commit-Queue: Dominic Battré <battre@chromium.org>
Reviewed-by: Dominic Battré <battre@chromium.org>
Auto-Submit: Sorin Jianu <sorin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1366028}
2024-10-09 08:39:12 +00:00
04bfc3ba33 Reland "Make DUMP_WILL_BE_* fatal for non-official builds"
This is a reland of commit 029ef5893a

Original change's description:
> Make DUMP_WILL_BE_* fatal for non-official builds
>
> This is a proxy for non-user-facing builds (testing, fuzzing). Any early
> detection for will-be-fatal invariant violations seems good at face
> value, let's try it out.
>
> Bug: None
> Change-Id: I46322b144d8e871bb4a83e9fe45f0958ebe97eee
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5783255
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Commit-Queue: Daniel Cheng <dcheng@chromium.org>
> Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
> Auto-Submit: Peter Boström <pbos@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1341369}

Bug: None
Change-Id: Ifc76813daae7298d5d7913e864dbe2ba8b8658ec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5792849
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1352536}
2024-09-09 01:09:23 +00:00
01ab59ae08 Migrate NOTREACHED_NORETURN -> NOTREACHED
NOTREACHED() has turned [[noreturn]] so the former macro isn't needed
anymore.

This does not attempt to do a rewrite of any surrounding code, like:

if (!foo) {
  NOTREACHED();
}

to CHECK(foo);

Those transforms take a non-trivial amount of time (and there are
thousands of instances). Cleanup can be left as an exercise for the
reader.

NO_IFTTT=No-op-rename migration.

Bug: 40580068
Change-Id: I068c5fdce9dc4c352d8bdd62bb3cd2c0a2d59659
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5782602
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1342096}
2024-08-15 02:39:49 +00:00
45e4054ce7 Use std::string_view in ScopedPrefUpdate.
As a drive-by, perform a few small clean-ups.

Bug: 349741884
Change-Id: I9831a134fcebfbab1f65a8b4711673e2c83c5d94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5743293
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1333438}
2024-07-26 09:09:08 +00:00
6288ad6b75 Use std::string_view in PrefChangeRegistrar and OverlayUserPrefStore.
Bug: 349741884
Change-Id: I19a45d2f45f8e4d8447c6b86665ac2a2084302bd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5742334
Auto-Submit: Jan Keitel <jkeitel@google.com>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1333436}
2024-07-26 09:00:14 +00:00
ee4d521f92 Make PrefStore observers checked.
Fixed: 352675237
Change-Id: Ic8b2ef8813beb9b0095cd7c51a5dd79f24818797
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5675537
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1326629}
2024-07-12 08:55:57 +00:00
b0955c2061 Use std::string_view in PrefRegistry.
Bug: 349741884
Change-Id: I495cc538641abe57a93b586d467d9d0049c23b67
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5678719
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Auto-Submit: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1326193}
2024-07-11 16:19:39 +00:00
0a58e9061f Make more PrefService methods take std::string_view.
Bug: 349741884
Change-Id: Iebff3b8d1d61374ba1ce1708306e8d7db136995a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5679782
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1325511}
2024-07-10 15:54:59 +00:00
7ef925c836 Remove foreign keys from PrefRegistry.
This is dead code - foreign keys are no longer used.

Change-Id: I75890036a8402b5b2e70942e8d8b12cc7edd7e21
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5679108
Auto-Submit: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1324937}
2024-07-09 17:37:30 +00:00
6a0cc39bfa Use std::string_view in PrefNotifier.
Bug: 349741884
Change-Id: I380e8969080f906af941aa539be305ea886fecf3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5666790
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Auto-Submit: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1324161}
2024-07-08 12:29:56 +00:00
562889db3f Introduce TransparentUnorderedStringMap.
The added file contains a simple alias of an std::unordered_map
that supports looking up std::string_view without incurring a copy.

Bug: 349741884
Change-Id: I50ef7faa2a1c04b03d4ea9c3d9bbb26aff2c6b77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5676786
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1323590}
2024-07-05 08:34:42 +00:00
f7cd4baf7b Opt //components/prefs into unsafe buffers checks.
The CL also fixes the few instances in which unsafe buffer warnings
were emitted.

Bug: 350941334
Change-Id: I5e0338a6f7b4ecb022e9a02555a2182f94e01763
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5676604
Auto-Submit: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1322813}
2024-07-03 15:59:48 +00:00
07b772bdff Avoid string copies in OverlayUserPrefStore.
Bug: 349741884
Change-Id: Iab74393bcb4ec85d658b79924d081d7399844599
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5667397
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1320954}
2024-06-28 14:34:30 +00:00
331cd16999 Use std::string_view in WritablePrefStore.
Bug: 349741884
Change-Id: I3b202188de492556d87c9f86b446874ac721951c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5667357
Commit-Queue: Jan Keitel <jkeitel@google.com>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1320952}
2024-06-28 14:30:53 +00:00
ff51e2f893 Use std::string_view in PrefFilter.
Bug: 349741884
Change-Id: I3d63e6649e767796d39855eb2d8af5e428a3e426
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5666576
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1320950}
2024-06-28 14:26:43 +00:00
0523c5e385 Use std::string_view in PrefStore::Observer.
Bug: 349741884
Change-Id: Ifa66cb4a47c17864247eee8006fcaba33a7d90f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5666575
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Auto-Submit: Jan Keitel <jkeitel@google.com>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1320933}
2024-06-28 13:58:52 +00:00
1b60e21b52 Add (empty) default implementations for PrefStore::Observer methods.
This is a small preparation for changing the signature of
OnPrefValueChanged to take a std::string_view. Currently, there is a
third-party implementation of PrefStore::Observer inside libaddress.
Adding default implementations lets us remove that method override
from libaddress and makes changing the function signature possible
in a single (follow-up) CL.

Bug: 349741884
Change-Id: I15d460aaf62a13519c93de78c932d1acdd53fddd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5662299
Auto-Submit: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1320241}
2024-06-27 11:46:50 +00:00
f0eddf49f6 Use std::string_view in more PrefService methods.
This CL adds transparent hashing and transparent equality comparisons
to the std::unordered_map<std::string, Preference> that it keeps.

This should be a no-op for any interactions with the map that involve
a std::string:
- Comparisons just forward to std::string comparisons.
- Hashing for std::basic_string_view and std::basic_string is identical.

However, this CL allows to use a std::string_view when calling
std::unordered_map::find without requiring to convert the string_view
to a std::string first.

The CL takes advantage of that by replacing a few more const reference
to std::string by std::string_view. This avoids potential heap
allocations and reduces the binary size by ~3KB.

Bug: 349741884
Change-Id: Ifcfd7638ee27f641097ad3929bc7fa58c4260b3d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5658436
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1320204}
2024-06-27 07:54:06 +00:00
0d3ea0a54a Perform minor cleanup in PrefService.
Eliminate an unnecessary copy and make it explicit that a raw_ptr is
always non-null by using a raw_ref.

Bug: n/a
Change-Id: I39191ec7647a52fb84875c83649fe8b9f6ff68bf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5658253
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1319918}
2024-06-26 18:41:25 +00:00
94450a66d8 Transition PrefRegistry(Simple) to use std::string_view.
Bug: 348307659
Change-Id: I7366da5f8ec6df6e32e79ece1d695b1ba091684f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5643471
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1317293}
2024-06-20 11:47:36 +00:00
b982816940 Transition PrefValueMap to use std::string_view.
No functionality changes - this is a pure replacement of const
std::string& parameters by std::string_view parameters.

Bug: 348307659
Change-Id: I5ba0658bcb4e68a5f20948d699898bfcd974bc82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5640036
Commit-Queue: Jan Keitel <jkeitel@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1317292}
2024-06-20 11:36:21 +00:00
eea1209516 Let PrefRegistry::OnPrefRegistered take a std::string_view.
This CL is part of transitioning PrefRegistry to use std::string_view.
The CL contains no functional changes and incurs no extra (string)
copies in production code.

Bug: 348307659
Change-Id: I03e2546cce47f8b286efa708b4555830cabe93ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5643972
Reviewed-by: Dominic Battré <battre@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1317289}
2024-06-20 11:16:50 +00:00
12e1d9526f Clear standalone_browser_prefs once Lacros is disabled.
These prefs are set by Lacros via crosapi. If Lacros is disabled, the
prefs are not updatable from Ash thus they should be cleared upon
Lacros disablement.

Bug: 297826137
Change-Id: I7706848d74374a9b583bdd9c5db30a3cc9e3b355
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5562385
Commit-Queue: Yuta Hijikata <ythjkt@chromium.org>
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1313237}
2024-06-11 06:14:02 +00:00
cad9372bba Avoid CHECK against prefixed keys in WrapWithPrefixPrefStore
Currently, calling any getter/setter in WrapWithPrefixPrefStore with a
key prefixed with "the" prefix (the one that WrapWithPrefixPrefStore
works on), leads to a CHECK failure. However, WrapWithPrefixPrefStore
should not disallow having a pref with the prefix as a key, and it
should be the responsibility of the owner to ensure the prefix is not
used as a pref, if needed.

Bug: 336776819
Change-Id: I3c94ffa34696f3c1a5e804a7bc96a3b469907bc3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5563686
Auto-Submit: Ankush Singh <ankushkush@google.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Ankush Singh <ankushkush@google.com>
Cr-Commit-Position: refs/heads/main@{#1312780}
2024-06-10 15:16:03 +00:00
bc079a4251 components/prefs: remove a reference to goma
Bug: 41489832
Change-Id: I7ea6b8275c639eb49c26bdf446f739b412636aed
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5599228
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1312045}
2024-06-07 16:29:54 +00:00
8ff77ce28f [UNOp2][Android] Add support for long in the Android pref service
This will be used in follow-up CLs to record prefs related to the user
declining top opt-in to history sync

Bug: 331568233
Change-Id: Ieac35e7170598fbb827b57a56ba293506bfe960e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5600005
Commit-Queue: Theresa Sullivan <twellington@chromium.org>
Auto-Submit: Samar Chehade-Lepleux <samarchehade@google.com>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Theresa Sullivan <twellington@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1312012}
2024-06-07 16:00:24 +00:00
7a5f191893 [Prefs] Simplify AddPrefsObserver()
This CL turns a map of
  std::string -> std::unique_ptr<PrefObserverList>
into a
  std::string -> PrefObserverList

Change-Id: I471015a7f83715625b39d919fd4a7642482ae6a3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5588304
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Christoph Schwering <schwering@google.com>
Cr-Commit-Position: refs/heads/main@{#1311282}
2024-06-06 15:25:35 +00:00
cb0d53064e Rename DUMP_ version of NOTREACHED()
NOTREACHED_NORETURN() is now a synonym for NOTREACHED() which we'll
eventually move over to completely. Renaming
DUMP_WILL_BE_NOTREACHED_NORETURN() first makes
s/NOTREACHED_NORETURN/NOTREACHED easier.

Bug: 40580068
Change-Id: I565a899b00796bc342f5a907ed1287bb5d680a57
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5595035
Owners-Override: danakj <danakj@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: danakj <danakj@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Auto-Submit: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1310055}
2024-06-04 18:45:31 +00:00
6bfb01f54f Convert base::StringPiece to std::string_view in //components, //base
The changes of this CL are made using the following script.
Script: https://issues.chromium.org/issues/40506050#comment343

Bug: 40506050
Change-Id: I469aa87cc8caad4ab6ac2ee6719ca32de6ade26e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5547981
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Auto-Submit: Helmut Januschka <helmut@januschka.com>
Cr-Commit-Position: refs/heads/main@{#1306787}
2024-05-28 15:47:45 +00:00
f46caa514f JNI Zero: Require @JniType conversions functions to appear in .h files
This has the following advantages:
 * Missing conversions will be a compile-time error rather than
   link-time.
 * Allows us to define a default implementations that maps a pointer
   type to its dereferenced type.
 * Allows us to define a default implementations for std::optional<T>.

Bug: 334905258
Change-Id: I092261e163c88c4e3a235e7f74059c5630cb5ea2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5559723
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Mohamed Heikal <mheikal@chromium.org>
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1305161}
2024-05-23 16:59:36 +00:00
57f74e398a Set TestingPrefStore's read-only flag to false by default
Currently, this is set to true. This is bad because:
1. This being set to true reflects an error case in prod, which is not
realistic here for all the tests.
2. This leads to early-outs in some cases and thus doesn't let the tests
cover the actual usage.

Bug: 336776819
Change-Id: Ice7206bcd69c66cd970b753db8858a03258f2799
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5557925
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Ankush Singh <ankushkush@google.com>
Reviewed-by: Dominic Battre <battre@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1304992}
2024-05-23 11:38:20 +00:00
d151937506 GCC: avoid ambiguous type iterating observer in WrapWithPrefixPrefStore
Bug: 40565911
Change-Id: Ie6c84dcf3f207db35614461ef4b1b99df769883d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5552858
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1304298}
2024-05-22 08:41:25 +00:00
35121a04e8 [prefs] Implement WrapWithPrefixPrefStore
This operates on a dictionary managed by another PersistentPrefStore.
It works by prefixing all the queries with the provided prefix.

This should allow having multiple pref stores work on the same
underlying file.

Bug: 336776819
Change-Id: I3445b562eb0eba28b7cbf8fbdb362ea5d33b67dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5512607
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Ankush Singh <ankushkush@google.com>
Cr-Commit-Position: refs/heads/main@{#1301248}
2024-05-15 13:27:45 +00:00
b473d9060c [prefs] Destroy delegate instance in InMemoryPrefStore::ReadPrefsAsync
Fixed: 340440539
Change-Id: If12ee9001353c10d2231d0241e491ebf3120dc70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5533859
Reviewed-by: Gabriel Charette <gab@chromium.org>
Auto-Submit: Ankush Singh <ankushkush@google.com>
Commit-Queue: Ankush Singh <ankushkush@google.com>
Cr-Commit-Position: refs/heads/main@{#1301235}
2024-05-15 12:51:17 +00:00
a77ee83987 [prefs] Add PersistentPrefStore::HasReadErrorDelegate()
This method can be used as proxy to detect if ReadPrefsAsync() has been
called on a pref store.

Bug: 336776819
Change-Id: I21ba0a5f4d5a00d1710303359989277e4a940410
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5535432
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Ankush Singh <ankushkush@google.com>
Cr-Commit-Position: refs/heads/main@{#1301154}
2024-05-15 08:20:41 +00:00
aaf19db38d Use NOTREACHED_IN_MIGRATION() in components/
This was generated by replacing "  NOTREACHED()" with
"  NOTREACHED_IN_MIGRATION()" and running git cl format.

This prepares for making NOTREACHED() [[noreturn]] alongside
NotReachedIsFatal migration of existing inventory.

Bug: 40580068
Change-Id: I92e83d0b564d44267f003147a1ce6ba3674621a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5539175
Owners-Override: Lei Zhang <thestig@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1300923}
2024-05-14 22:08:09 +00:00