From 2bf4d18fd0e4978df81166398da4cabfea92b578 Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Fri, 31 Jan 2025 20:24:54 -0500 Subject: [PATCH 1/8] chore: adjustments --- patches/disable-jit-for-internal-pages.patch | 34 ++------------------ 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index 5599930d..4d77151f 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -2,18 +2,13 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch index e5ce608907f72..09159a4e83115 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -8013,9 +8013,12 @@ bool ChromeContentBrowserClient::IsJitDisabledForSite( +@@ -8013,9 +8013,6 @@ bool ChromeContentBrowserClient::IsJitDisabledForSite( nullptr) == CONTENT_SETTING_BLOCK; } - // Only disable JIT for web schemes. - if (!site_url.SchemeIsHTTPOrHTTPS()) -+ // Disable JIT for non-web schemes. -+ if (!site_url.SchemeIsHTTPOrHTTPS()) { -+ if (!base::FeatureList::IsEnabled(features::kEnableInternalPageJit)) -+ return true; - return false; -+ } +- return false; return (map && map->GetContentSetting(site_url, site_url, ContentSettingsType::JAVASCRIPT_JIT) == @@ -21,17 +16,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c index 2d95d5e1df911..e7a29a6687a07 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -16,6 +16,9 @@ - - namespace features { - -+BASE_FEATURE(kEnableInternalPageJit, "EnableInternalPageJit", -+ base::FEATURE_DISABLED_BY_DEFAULT); -+ - // All features in alphabetical order. - - // Kill switch to guard additional security checks performed by the browser -@@ -1067,7 +1070,7 @@ BASE_FEATURE(kDisableProcessReuse, +@@ -1067,7 +1067,7 @@ BASE_FEATURE(kDisableProcessReuse, // This feature is only consulted in site-per-process mode. BASE_FEATURE(kSpareRendererForSitePerProcess, "SpareRendererForSitePerProcess", @@ -40,16 +25,3 @@ index 2d95d5e1df911..e7a29a6687a07 100644 // Controls whether site isolation should use origins instead of scheme and // eTLD+1. -diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h -index a69dcd3b24015..2f6f3d9265bbf 100644 ---- a/content/public/common/content_features.h -+++ b/content/public/common/content_features.h -@@ -21,6 +21,8 @@ - - namespace features { - -+CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableInternalPageJit); -+ - // BEFORE MODIFYING THIS FILE: If your feature is only used inside content/, add - // your feature in `content/common/features.h` instead. - From 6277001441bec97f1e31229b350eb45946a8eeaa Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Sat, 1 Feb 2025 13:31:32 -0500 Subject: [PATCH 2/8] chore: remove flag for internal JIT --- patches/expose-flags.patch | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/patches/expose-flags.patch b/patches/expose-flags.patch index 7ef33094..33d0c2ec 100644 --- a/patches/expose-flags.patch +++ b/patches/expose-flags.patch @@ -2,7 +2,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 7613006656aaa..ee707f847ccba 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4343,6 +4343,44 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4343,6 +4343,40 @@ const FeatureEntry kFeatureEntries[] = { // //tools/flags/generate_unexpire_flags.py. #include "build/chromeos_buildflags.h" #include "chrome/browser/unexpire_flags_gen.inc" @@ -35,10 +35,6 @@ index 7613006656aaa..ee707f847ccba 100644 + "Hides the profile icon in the toolbar in regular profiles. Enabled " + "by default. This feature is provided by Trivalent." , kOsAll, + FEATURE_VALUE_TYPE(features::kHideProfileIcon)}, -+ {"internal-page-jit", "Internal Page Jit", -+ "Toggle JIT for JavaScript and WASM on internal pages & extensions. " -+ "Disabled by default. This feature is provided by Trivalent.", -+ kOsAll, FEATURE_VALUE_TYPE(features::kEnableInternalPageJit)}, + {"gssapi-support", "GSSAPI Authentication", + "Enables GSSAPI for authentication. WARNING! This can cause the " + "network service sandbox to become persistently disabled, enable only " From ce5e4a7e8686748d737cb1f333ee2ca4c63ec905 Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:01:41 -0500 Subject: [PATCH 3/8] feat: force-disable non-typical scheme JIT --- patches/disable-jit-for-internal-pages.patch | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index 4d77151f..f6f937fd 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -2,13 +2,17 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch index e5ce608907f72..09159a4e83115 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -8013,9 +8013,6 @@ bool ChromeContentBrowserClient::IsJitDisabledForSite( +@@ -8013,9 +8013,10 @@ bool ChromeContentBrowserClient::IsJitDisabledForSite( nullptr) == CONTENT_SETTING_BLOCK; } - // Only disable JIT for web schemes. ++ // Force disable JIT for non-web schemes, file schemes, or extensions. - if (!site_url.SchemeIsHTTPOrHTTPS()) ++ if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIs("chrome-extension") ++ && !site_url.SchemeIsFile()) - return false; ++ return true; return (map && map->GetContentSetting(site_url, site_url, ContentSettingsType::JAVASCRIPT_JIT) == From e022f1695f1a9a3f1c8cafc79c4eee04bedfc581 Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:01:59 -0500 Subject: [PATCH 4/8] chore: adjust patch --- patches/disable-jit-for-internal-pages.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index f6f937fd..00cf620e 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -7,11 +7,11 @@ index e5ce608907f72..09159a4e83115 100644 } - // Only disable JIT for web schemes. -+ // Force disable JIT for non-web schemes, file schemes, or extensions. - if (!site_url.SchemeIsHTTPOrHTTPS()) +- return false; ++ // Force disable JIT for non-web schemes, file schemes, or extensions. + if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIs("chrome-extension") + && !site_url.SchemeIsFile()) -- return false; + return true; return (map && map->GetContentSetting(site_url, site_url, From 07f08321c31b126e4d9d19ff7741f213f338f484 Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:02:43 -0500 Subject: [PATCH 5/8] chore: adjust patch --- patches/disable-jit-for-internal-pages.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index 00cf620e..600dc7da 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -10,8 +10,8 @@ index e5ce608907f72..09159a4e83115 100644 - if (!site_url.SchemeIsHTTPOrHTTPS()) - return false; + // Force disable JIT for non-web schemes, file schemes, or extensions. -+ if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIs("chrome-extension") -+ && !site_url.SchemeIsFile()) ++ if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIsFile()) ++ && !site_url.SchemeIs("chrome-extension") + return true; return (map && map->GetContentSetting(site_url, site_url, From be4c3f215930646ef8b25225fbda599e30e6d6fd Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:04:04 -0500 Subject: [PATCH 6/8] fix: brackets --- patches/disable-jit-for-internal-pages.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index 600dc7da..9b798daf 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -10,8 +10,8 @@ index e5ce608907f72..09159a4e83115 100644 - if (!site_url.SchemeIsHTTPOrHTTPS()) - return false; + // Force disable JIT for non-web schemes, file schemes, or extensions. -+ if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIsFile()) -+ && !site_url.SchemeIs("chrome-extension") ++ if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIsFile() ++ && !site_url.SchemeIs("chrome-extension")) + return true; return (map && map->GetContentSetting(site_url, site_url, From c04a7a977cc0a330ae7397a7d8a7f2f003c974f5 Mon Sep 17 00:00:00 2001 From: Root <175176948+RKNF404@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:04:24 -0500 Subject: [PATCH 7/8] fix: brackets 2 --- patches/disable-jit-for-internal-pages.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index 9b798daf..6afc03ae 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -10,7 +10,7 @@ index e5ce608907f72..09159a4e83115 100644 - if (!site_url.SchemeIsHTTPOrHTTPS()) - return false; + // Force disable JIT for non-web schemes, file schemes, or extensions. -+ if (!(site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIsFile() ++ if (!site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIsFile() + && !site_url.SchemeIs("chrome-extension")) + return true; From e18edd83a70dfd8a83f122eb72b175af83f81a05 Mon Sep 17 00:00:00 2001 From: RoyalOughtness <129108030+RoyalOughtness@users.noreply.github.com> Date: Tue, 4 Feb 2025 14:03:10 -0800 Subject: [PATCH 8/8] Update disable-jit-for-internal-pages.patch --- patches/disable-jit-for-internal-pages.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/disable-jit-for-internal-pages.patch b/patches/disable-jit-for-internal-pages.patch index 6afc03ae..79efc47b 100644 --- a/patches/disable-jit-for-internal-pages.patch +++ b/patches/disable-jit-for-internal-pages.patch @@ -9,7 +9,7 @@ index e5ce608907f72..09159a4e83115 100644 - // Only disable JIT for web schemes. - if (!site_url.SchemeIsHTTPOrHTTPS()) - return false; -+ // Force disable JIT for non-web schemes, file schemes, or extensions. ++ // Only force disable JIT for pages that aren't web schemes, aren't file schemes, and aren't extensions + if (!site_url.SchemeIsHTTPOrHTTPS() && !site_url.SchemeIsFile() + && !site_url.SchemeIs("chrome-extension")) + return true;