123 lines
6.3 KiB
Diff
123 lines
6.3 KiB
Diff
From: hardenedfuchsiaoswhen <hardenedfuchsiaoswhen@protonmail.com>
|
|
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"/>
|
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
|
+ android:key="force_no_jit"
|
|
+ android:title="@string/force_no_jit_title"
|
|
+ android:summary="@string/force_no_jit_summary"
|
|
+ android:defaultValue="false" />
|
|
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
|
android:key="secure_dns"
|
|
android:title="@string/settings_secure_dns_title"
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
|
@@ -4,6 +4,7 @@
|
|
|
|
package org.chromium.chrome.browser.privacy.settings;
|
|
|
|
+import android.content.SharedPreferences;
|
|
import android.os.Build;
|
|
import android.content.SharedPreferences;
|
|
import android.os.Bundle;
|
|
@@ -71,6 +72,7 @@ public class PrivacySettings
|
|
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
|
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
|
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
|
+ private static final String PREF_FORCE_NO_JIT = "force_no_jit";
|
|
|
|
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
|
|
|
@@ -201,6 +203,10 @@ public class PrivacySettings
|
|
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
|
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
|
prefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
|
+ } else if (PREF_FORCE_NO_JIT.equals(key)) {
|
|
+ SharedPreferences.Editor sharedPreferenceEditor = ContextUtils.getAppSharedPreferences().edit();
|
|
+ sharedPreferenceEditor.putBoolean(PREF_FORCE_NO_JIT, (boolean) newValue);
|
|
+ sharedPreferenceEditor.apply();
|
|
} else if (PREF_AUTOFILL_ASSISTANT.equals(key)) {
|
|
mSharedPreferencesManager.writeBoolean(
|
|
ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
|
|
@@ -280,6 +286,12 @@ public class PrivacySettings
|
|
historyInIncognitoPref.setChecked(
|
|
prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
|
|
}
|
|
+
|
|
+ ChromeSwitchPreference forceNoJit =
|
|
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_NO_JIT);
|
|
+ forceNoJit.setOnPreferenceChangeListener(this);
|
|
+ forceNoJit.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
|
+
|
|
}
|
|
|
|
private ChromeManagedPreferenceDelegate createManagedPreferenceDelegate() {
|
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
|
@@ -929,6 +929,13 @@ Privacy Sandbox trials are still in active development and are available in sele
|
|
Please verify that this is a valid provider or try again later
|
|
</message>
|
|
|
|
+ <message name="IDS_FORCE_NO_JIT_TITLE" desc="Title for disable JIT settings. [CHAR-LIMIT=32]">
|
|
+ Disable JIT
|
|
+ </message>
|
|
+ <message name="IDS_FORCE_NO_JIT_SUMMARY" desc="Summary for Disable JIT settings">
|
|
+ Improve security at the expense of performance by not compiling JavaScript to native code (requires browser restart)
|
|
+ </message>
|
|
+
|
|
<message name="IDS_CLEAR_BROWSING_DATA_TITLE" desc="Title of the Clear Browsing Data screen. [CHAR_LIMIT=32]">
|
|
Clear browsing data
|
|
</message>
|
|
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
|
|
|