Use helper macros to define base::Features in //components/site_isolation

This allows:
- features to be defined with a consistent set of qualifiers, and for
  that set of qualifiers to be updated over time as appropriate.
- better PRESUBMIT checks to ensure that base::Features are not defined
  in headers.
- simplifies things for scripts trying to extract feature definitions
  out of C++ code.

The primary CL was generated using a script that automatically rewrites
base::Feature declarations and definitions to the macro form. Changes to
any files with known incompatibilities with the macros (base::Features
without static storage duration and base::Features declared as static
class members) were then fully reverted; those changes will be manually
handled in followups.

This CL was uploaded by git cl split.

[email protected]

Bug: 1364289
Change-Id: I7edd445c068f0cf9f7bb7e210e3d851ff0dc0273
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3916736
Auto-Submit: Daniel Cheng <[email protected]>
Reviewed-by: Alex Moshchuk <[email protected]>
Commit-Queue: Alex Moshchuk <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1050910}
diff --git a/components/site_isolation/features.h b/components/site_isolation/features.h
index 6b10657..07a3a64 100644
--- a/components/site_isolation/features.h
+++ b/components/site_isolation/features.h
@@ -10,10 +10,10 @@
 namespace site_isolation {
 namespace features {
 
-extern const base::Feature kCacheSiteIsolationMemoryThreshold;
-extern const base::Feature kSiteIsolationForPasswordSites;
-extern const base::Feature kSiteIsolationForOAuthSites;
-extern const base::Feature kSiteIsolationMemoryThresholds;
+BASE_DECLARE_FEATURE(kCacheSiteIsolationMemoryThreshold);
+BASE_DECLARE_FEATURE(kSiteIsolationForPasswordSites);
+BASE_DECLARE_FEATURE(kSiteIsolationForOAuthSites);
+BASE_DECLARE_FEATURE(kSiteIsolationMemoryThresholds);
 extern const char kStrictSiteIsolationMemoryThresholdParamName[];
 extern const char kPartialSiteIsolationMemoryThresholdParamName[];