From: hardenedfuchsiaoswhen Date: Fri, 18 Jun 2021 03:34:20 +0000 Subject: JIT-less toggle --- chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ .../browser/privacy/settings/PrivacySettings.java | 12 ++++++++++++ .../ui/android/strings/android_chrome_strings.grd | 7 +++++++ .../browser/BrowserStartupControllerImpl.java | 1 + .../chromium/content/browser/DeviceUtilsImpl.java | 6 ++++++ 5 files changed, 31 insertions(+) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml @@ -28,6 +28,11 @@ android:title="@string/preload_pages_title" android:summary="@string/preload_pages_summary" android:persistent="false"/> + + + Disable JIT + + + Improve security at the expense of performance by not compiling JavaScript to native code (requires browser restart) + + Clear browsing data diff --git a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java @@ -453,6 +453,7 @@ public class BrowserStartupControllerImpl implements BrowserStartupController { } // TODO(yfriedman): Remove dependency on a command line flag for this. + DeviceUtilsImpl.addJitlessSwitch(); DeviceUtilsImpl.addDeviceSpecificUserAgentSwitch(); BrowserStartupControllerImplJni.get().setCommandLineFlags(singleProcess); } diff --git a/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java b/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java @@ -5,6 +5,7 @@ package org.chromium.content.browser; import org.chromium.base.CommandLine; +import org.chromium.base.ContextUtils; import org.chromium.base.StrictModeContext; import org.chromium.content_public.common.ContentSwitches; import org.chromium.ui.base.DeviceFormFactor; @@ -22,4 +23,9 @@ public class DeviceUtilsImpl { } } } + public static void addJitlessSwitch() { + if (ContextUtils.getAppSharedPreferences().getBoolean("force_no_jit", false)) { + CommandLine.getInstance().appendSwitchWithValue("js-flags", "--jitless"); + } + } } -- 2.17.1