Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 7bb128eb authored by Carmelo Messina's avatar Carmelo Messina
Browse files

Add PartialLowEndModeOnMidRangeDevices flag: disable memory saving mode in V8...

Add PartialLowEndModeOnMidRangeDevices flag: disable memory saving mode in V8 on devices with less than 1 GB of RAM.
parent 3b57b303
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -7,8 +7,9 @@ adds a new flag in chrome://flags to re-enable the experiment
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
 base/features.cc                                     |  4 ++++
 content/renderer/render_process_impl.cc              |  9 +++++++++
 .../Add-PartialLowEndModeOnMidRangeDevices-flag.inc  | 12 ++++++++++++
 2 files changed, 16 insertions(+)
 3 files changed, 25 insertions(+)
 create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc

diff --git a/base/features.cc b/base/features.cc
@@ -25,6 +26,36 @@ diff --git a/base/features.cc b/base/features.cc
 void Init(EmitThreadControllerProfilerMetadata
               emit_thread_controller_profiler_metadata) {
   g_is_reduce_ppms_enabled.store(FeatureList::IsEnabled(kReducePPMs),
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc
--- a/content/renderer/render_process_impl.cc
+++ b/content/renderer/render_process_impl.cc
@@ -7,6 +7,7 @@
 #pragma allow_unsafe_libc_calls
 #endif
 
+#include "base/features.h"
 #include "content/renderer/render_process_impl.h"
 
 #include "build/build_config.h"
@@ -127,10 +128,18 @@ RenderProcessImpl::RenderProcessImpl()
       base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kDisallowV8FeatureFlagOverrides);
   if (!disallow_v8_feature_flag_overrides) {
+#if BUILDFLAG(IS_ANDROID)
+    if (base::SysInfo::IsLowEndDevice()
+          && base::FeatureList::IsEnabled(base::features::kPartialLowEndModeOnMidRangeDevices)) {
+      std::string_view optimize_flag("--optimize-for-size");
+      v8::V8::SetFlagsFromString(optimize_flag.data(), optimize_flag.size());
+    }
+#else
     if (base::SysInfo::IsLowEndDevice()) {
       std::string_view optimize_flag("--optimize-for-size");
       v8::V8::SetFlagsFromString(optimize_flag.data(), optimize_flag.size());
     }
+#endif
 
     ////////////////////////////////////////////////////////////////////////////
     // V8 flags are typically set in gin/v8_initializer.cc. Only those flags
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
new file mode 100644
--- /dev/null