| // Copyright 2022 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "base/features.h" | 
 | #include "base/feature_list.h" | 
 |  | 
 | namespace base::features { | 
 |  | 
 | // Alphabetical: | 
 |  | 
 | // Enforce that writeable file handles passed to untrusted processes are not | 
 | // backed by executable files. | 
 | BASE_FEATURE(kEnforceNoExecutableFileHandles, | 
 |              "EnforceNoExecutableFileHandles", | 
 |              FEATURE_ENABLED_BY_DEFAULT); | 
 |  | 
 | // TODO(crbug.com/851128): Roll out this to 100% before replacing existing | 
 | // NOTREACHED()s with NOTREACHED_NORETURN() as part of NOTREACHED() migration. | 
 | // Note that a prerequisite for rolling out this experiment is that existing | 
 | // NOTREACHED reports are at a very low rate. Once this rolls out we should | 
 | // monitor that crash rates for the experiment population is within a 1-5% or | 
 | // lower than the control group. | 
 | BASE_FEATURE(kNotReachedIsFatal, | 
 |              "NotReachedIsFatal", | 
 |              FEATURE_DISABLED_BY_DEFAULT); | 
 |  | 
 | // Optimizes parsing and loading of data: URLs. | 
 | BASE_FEATURE(kOptimizeDataUrls, "OptimizeDataUrls", FEATURE_ENABLED_BY_DEFAULT); | 
 |  | 
 | BASE_FEATURE(kUseRustJsonParser, | 
 |              "UseRustJsonParser", | 
 |              FEATURE_DISABLED_BY_DEFAULT); | 
 |  | 
 | BASE_FEATURE(kJsonNegativeZero, "JsonNegativeZero", FEATURE_ENABLED_BY_DEFAULT); | 
 |  | 
 | #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) | 
 | // Force to enable LowEndDeviceMode partially on Android 3Gb devices. | 
 | // (see PartialLowEndModeOnMidRangeDevices below) | 
 | BASE_FEATURE(kPartialLowEndModeOn3GbDevices, | 
 |              "PartialLowEndModeOn3GbDevices", | 
 |              base::FEATURE_DISABLED_BY_DEFAULT); | 
 |  | 
 | // Used to enable LowEndDeviceMode partially on Android and ChromeOS mid-range | 
 | // devices. Such devices aren't considered low-end, but we'd like experiment | 
 | // with a subset of low-end features to see if we get a good memory vs. | 
 | // performance tradeoff. | 
 | // | 
 | // TODO(crbug.com/1434873): |#if| out 32-bit before launching or going to | 
 | // high Stable %, because we will enable the feature only for <8GB 64-bit | 
 | // devices, where we didn't ship yet. However, we first need a larger | 
 | // population to collect data. | 
 | BASE_FEATURE(kPartialLowEndModeOnMidRangeDevices, | 
 |              "PartialLowEndModeOnMidRangeDevices", | 
 | #if BUILDFLAG(IS_ANDROID) | 
 |              base::FEATURE_ENABLED_BY_DEFAULT); | 
 | #elif BUILDFLAG(IS_CHROMEOS) | 
 |              base::FEATURE_DISABLED_BY_DEFAULT); | 
 | #endif | 
 |  | 
 | #endif  // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) | 
 |  | 
 | #if BUILDFLAG(IS_ANDROID) | 
 | // Whether to report frame metrics to the Android.FrameTimeline.* histograms. | 
 | BASE_FEATURE(kCollectAndroidFrameTimelineMetrics, | 
 |              "CollectAndroidFrameTimelineMetrics", | 
 |              base::FEATURE_DISABLED_BY_DEFAULT); | 
 | #endif  // BUILDFLAG(IS_ANDROID) | 
 |  | 
 | }  // namespace base::features |