From 5081673bff52bfdce76bc6530da8eb861547e079 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sat, 22 Feb 2025 10:08:58 -0500 Subject: reverse mv2 deprecation --- www-client/chromium/Manifest | 3 +- www-client/chromium/chromium-135.0.7023.0.ebuild | 1 + .../files/chromium-135-mv2-ungoogled.patch | 183 +++++++++++++++++++++ 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 www-client/chromium/files/chromium-135-mv2-ungoogled.patch (limited to 'www-client') diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index c469479..56dc9cb 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -25,6 +25,7 @@ AUX chromium-131-use-oauth2-client-switches-as-default.patch 1194 BLAKE2B 040f81 AUX chromium-132-compiler.patch 12901 BLAKE2B 37be5fc8b2c546cffc0976d5c9f7f0849e4b9475c06891adf67ab6b7921b3dc92c105f21d30c38bf5106bbb4471161579533413cd46969df1f775b6dd24f4ad9 SHA512 089053f70731cc9b0eaabefb14fee0f8571c515ab37f7be1dbd6a0b368e727cf985eae7be60c205ee19e0b3925286abdcdd87ae2bd48159f8fad9b24a9da6dae AUX chromium-134-EnumTable-crash.patch 3068 BLAKE2B 8b3bad8e20d6c3477495792279b1c58aa599e5934380d6efb26285a4348be8b98fe5869dc9ce9c83049e35f20f73ab9de7eb819002e6753aecd16ef7de734194 SHA512 5cd2da1407d150218595b3da7e76a2df7e12675e91c9bc2dce793f3801ed53705dada351865ead578ad6516ee5d19423f25021ab213bd9305eea8860f92f42b0 AUX chromium-134-gn-exec_script_allowlist.patch 2328 BLAKE2B d5e4ebeff797fa02b4e41da1cbc8f90bdfdf3250e627e387c8b482b5f163703e835da0e06e2d543d7d81fc990fa5093c6495fa5f7858b5c692a9d0b10fe21914 SHA512 c47330b69dd6fa1d0ca91ebf2927fe8f5c75c9e6a9ebb5959ed7590665b05d297c494222c786cba5c3530dcb8ad0fa08e87f0cb2942daeb403b812e5879b684f +AUX chromium-135-mv2-ungoogled.patch 8653 BLAKE2B 21947e2a25bb5306c63c93de772c41a06e2199a318e90888197d8d7c04bc55ad445a0a5984e84ec6238b80043851b427e4ef1e627dfd41da100b3d1948f6be0c SHA512 d77df69c86b4d91ffb7dbeb8b5640bafab03845c69c50bb0dd9c8b23b4d5d1658f1b9866eb7d0f80a757625e5882f5c65297c6dafe8ed8337de7c2fe5fced032 AUX chromium-135-protobuf-RepeatedPtrField-export.patch 812 BLAKE2B ba7d6eca5967bfe7324b384bea5b80feb2fdf9013bc32a618ab3fa18b6c143c889e1691c7a9fff501fe8d6c9794e28a2b3541e9aac97614bd1f4a4891e78ca89 SHA512 8d9ba3b598ce70d20635372427d7134d6ebf7951e9015124d8cf928e745b1f234c199929adcdfa738583fabb87800e154ef2219f15a9489f5b64a1e477b3930e AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca AUX chromium-cross-compile.patch 323 BLAKE2B 8d5091ce5287422c9688ede2563360a96b8bd34b9750dc1c8f0b6ca9aeff2c066fac2da169396baa131d971c087c78f9af53999df0e102d1f57176f5e8d3dd57 SHA512 06d3afc1aa19e57daac0e4bad37e1f365a68408240430e5e818e5a4f12e3b7519214eafa463633e447e7029f4ae13ea864ca347ad1fac117702a0be88718a954 @@ -36,4 +37,4 @@ DIST chromium-135.0.6999.2.tar.xz 7004861732 BLAKE2B c03d771863e69568bb1d5502ed0 DIST chromium-135.0.7023.0.tar.xz 6994083592 BLAKE2B 097202e647c386218f33e7ef8f03f115def0ad85c46faa94d233a05d43c2e25cdea16f34de7ff42fe279b23a1874e27adfafe7b95648edbf02b2fe1799e8fa1f SHA512 01a68c3387fccb35b4c48ad039e2420bff863f670fb6075a9c7cd0ce9130038ed2617ce2abad0c1cf383e4f5e189d01b97e4429589cecdba4755ef7d1ef72d83 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c EBUILD chromium-135.0.6999.2.ebuild 40476 BLAKE2B bf189c621aebb0c01e40f9e294e789889d494cc2348ce49f75d7cf09791435343b69bee42e87cddc911044b399ce8daf9044cc153be0fa3bd8627665432fabfb SHA512 2d917f72a0c1c508163124484a6ff81cab8047018ef57ae7240fbab9794ab81fb67a96200175e790f60d9b36ef45ec0de193d907cf102bdfe6e738bc5ceaf783 -EBUILD chromium-135.0.7023.0.ebuild 40522 BLAKE2B cb822fc0ad197c99ba472b9d7e1394290d2cae4d0f94a26f91860047403db97dbea889f21c0b84cf3f989e19f1df3377b41dedd3a08dca29c0ac1d7a04cd0336 SHA512 34e3b9127231039a8ef5110688d1bd66ba5524c9fda547b621045f7f43a4cdbd7628b1d8800be63a4d8e6c424fc3665e83c8a2f3489144e1536d9318e52c60d7 +EBUILD chromium-135.0.7023.0.ebuild 40571 BLAKE2B b0b7e808ceed935a21c3f327759c4c69b7b6a9111db5ee89c4542d136740aeb00e09570714485407d75ad854e7adc4fae855a9698e5476d87e580bc2f7ded29e SHA512 b8bccfa7b4decc4730ca9717af5c2da9d0d4d8bf50243603bbf86032bf2f673c262149ab03a77465795dcc8762b7a6f676f91c6c95d230ac880237edb36e959b diff --git a/www-client/chromium/chromium-135.0.7023.0.ebuild b/www-client/chromium/chromium-135.0.7023.0.ebuild index 1f313ba..4793a84 100644 --- a/www-client/chromium/chromium-135.0.7023.0.ebuild +++ b/www-client/chromium/chromium-135.0.7023.0.ebuild @@ -325,6 +325,7 @@ src_prepare() { "${FILESDIR}/chromium-126-freetype-blink.patch" "${FILESDIR}/chromium-124-metrics-histograms-nodepotbin.patch" "${FILESDIR}/chromium-134-gn-exec_script_allowlist.patch" + "${FILESDIR}/chromium-135-mv2-ungoogled.patch" "${FILESDIR}/chromium-111-InkDropHost-crash.patch" "${FILESDIR}/chromium-134-EnumTable-crash.patch" diff --git a/www-client/chromium/files/chromium-135-mv2-ungoogled.patch b/www-client/chromium/files/chromium-135-mv2-ungoogled.patch new file mode 100644 index 0000000..db276b3 --- /dev/null +++ b/www-client/chromium/files/chromium-135-mv2-ungoogled.patch @@ -0,0 +1,183 @@ +diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc +index e330cb7163..08da10083a 100644 +--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc ++++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc +@@ -618,17 +618,6 @@ void ExtensionInfoGenerator::CreateExtensionInfoHelper( + info->controlled_info.emplace(); + info->controlled_info->text = + l10n_util::GetStringUTF8(IDS_EXTENSIONS_INSTALL_LOCATION_ENTERPRISE); +- } else { +- // Create Safety Hub information for any non-enterprise extension. +- developer::SafetyCheckWarningReason warning_reason = +- ExtensionSafetyCheckUtils::GetSafetyCheckWarningReason(extension, +- profile); +- if (warning_reason != developer::SafetyCheckWarningReason::kNone) { +- info->safety_check_warning_reason = warning_reason; +- info->safety_check_text = +- ExtensionSafetyCheckUtils::GetSafetyCheckWarningStrings( +- warning_reason, state); +- } + } + + bool is_enabled = state == developer::ExtensionState::kEnabled; +diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc +index eb2350fca9..f13816a016 100644 +--- a/chrome/browser/extensions/extension_management.cc ++++ b/chrome/browser/extensions/extension_management.cc +@@ -318,31 +318,7 @@ bool ExtensionManagement::IsAllowedManifestVersion( + int manifest_version, + const std::string& extension_id, + Manifest::Type manifest_type) { +- bool enabled_by_default = +- !base::FeatureList::IsEnabled( +- extensions_features::kExtensionsManifestV3Only) || +- manifest_version >= 3; +- +- // Manifest version policy only supports normal extensions and Chrome OS login +- // screen extension. +- if (manifest_type != Manifest::Type::TYPE_EXTENSION && +- manifest_type != Manifest::Type::TYPE_LOGIN_SCREEN_EXTENSION) { +- return enabled_by_default; +- } +- switch (global_settings_->manifest_v2_setting) { +- case internal::GlobalSettings::ManifestV2Setting::kDefault: +- return enabled_by_default; +- case internal::GlobalSettings::ManifestV2Setting::kDisabled: +- return manifest_version >= 3; +- case internal::GlobalSettings::ManifestV2Setting::kEnabled: + return true; +- case internal::GlobalSettings::ManifestV2Setting::kEnabledForForceInstalled: +- auto installation_mode = +- GetInstallationMode(extension_id, /*update_url=*/std::string()); +- return manifest_version >= 3 || +- installation_mode == INSTALLATION_FORCED || +- installation_mode == INSTALLATION_RECOMMENDED; +- } + } + + bool ExtensionManagement::IsAllowedManifestVersion(const Extension* extension) { +@@ -363,26 +339,8 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( + return false; + } + +- switch (global_settings_->manifest_v2_setting) { +- case internal::GlobalSettings::ManifestV2Setting::kDefault: +- // Default browser behavior. Not exempt. +- return false; +- case internal::GlobalSettings::ManifestV2Setting::kDisabled: +- // All MV2 extensions are disallowed. Not exempt. +- return false; +- case internal::GlobalSettings::ManifestV2Setting::kEnabled: + // All MV2 extensions are allowed. Exempt. + return true; +- case internal::GlobalSettings::ManifestV2Setting::kEnabledForForceInstalled: +- // Force-installed MV2 extensions are allowed. Exempt if it's a force- +- // installed extension only. +- auto installation_mode = +- GetInstallationMode(extension_id, /*update_url=*/std::string()); +- return installation_mode == INSTALLATION_FORCED || +- installation_mode == INSTALLATION_RECOMMENDED; +- } +- +- return false; + } + + bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( +diff --git a/chrome/browser/extensions/keyed_services/chrome_browser_context_keyed_service_factories.cc b/chrome/browser/extensions/keyed_services/chrome_browser_context_keyed_service_factories.cc +index 555fd894e8..3f042548bd 100644 +--- a/chrome/browser/extensions/keyed_services/chrome_browser_context_keyed_service_factories.cc ++++ b/chrome/browser/extensions/keyed_services/chrome_browser_context_keyed_service_factories.cc +@@ -23,7 +23,6 @@ + #include "chrome/browser/extensions/extension_web_ui_override_registrar.h" + #include "chrome/browser/extensions/install_tracker_factory.h" + #include "chrome/browser/extensions/install_verifier_factory.h" +-#include "chrome/browser/extensions/manifest_v2_experiment_manager.h" + #include "chrome/browser/extensions/menu_manager_factory.h" + #include "chrome/browser/extensions/permissions/permissions_updater.h" + #include "chrome/browser/extensions/plugin_manager.h" +@@ -55,7 +54,6 @@ void EnsureChromeBrowserContextKeyedServiceFactoriesBuilt() { + extensions::ChromeExtensionSystemFactory::GetInstance(); + extensions::InstallTrackerFactory::GetInstance(); + extensions::InstallVerifierFactory::GetInstance(); +- extensions::ManifestV2ExperimentManager::GetFactory(); + extensions::MenuManagerFactory::GetInstance(); + extensions::PermissionsUpdater::EnsureAssociatedFactoryBuilt(); + #if BUILDFLAG(ENABLE_PLUGINS) +diff --git a/chrome/browser/extensions/manifest_v2_experiment_manager.cc b/chrome/browser/extensions/manifest_v2_experiment_manager.cc +index 2e47e928e3..81ad199a24 100644 +--- a/chrome/browser/extensions/manifest_v2_experiment_manager.cc ++++ b/chrome/browser/extensions/manifest_v2_experiment_manager.cc +@@ -145,22 +145,6 @@ bool ManifestV2ExperimentManagerFactory::ServiceIsCreatedWithBrowserContext() + + // Determines the current stage of the MV2 deprecation experiments. + MV2ExperimentStage CalculateCurrentExperimentStage() { +- // Return the "highest" stage that is currently active for the user. +- if (base::FeatureList::IsEnabled( +- extensions_features::kExtensionManifestV2Unsupported)) { +- return MV2ExperimentStage::kUnsupported; +- } +- +- if (base::FeatureList::IsEnabled( +- extensions_features::kExtensionManifestV2Disabled)) { +- return MV2ExperimentStage::kDisableWithReEnable; +- } +- +- if (base::FeatureList::IsEnabled( +- extensions_features::kExtensionManifestV2DeprecationWarning)) { +- return MV2ExperimentStage::kWarning; +- } +- + return MV2ExperimentStage::kNone; + } + +@@ -200,19 +184,7 @@ PrefMap GetGlobalNoticeAcknowledgedPrefFor( + // Returns true if legacy extensions should be disabled, looking at both + // experiment stage and global state. + bool ShouldDisableLegacyExtensions(MV2ExperimentStage stage) { +- if (g_allow_mv2_for_testing) { +- // We allow legacy MV2 extensions for testing purposes. +- return false; +- } +- +- switch (stage) { +- case MV2ExperimentStage::kNone: +- case MV2ExperimentStage::kWarning: + return false; +- case MV2ExperimentStage::kDisableWithReEnable: +- case MV2ExperimentStage::kUnsupported: +- return true; +- } + } + + // Returns true if the given `stage` is one in which extension enablement should +diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc +index 057dc619e9..52d0e388c9 100644 +--- a/chrome/browser/ui/webui/extensions/extensions_ui.cc ++++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc +@@ -477,7 +477,7 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, + extensions_features::kExtensionsMenuAccessControlWithPermittedSites)); + source->AddBoolean( + "safetyHubThreeDotDetails", +- base::FeatureList::IsEnabled(features::kSafetyHubThreeDotDetails)); ++ false); + + // TODO(crbug.com/392777363): Clean these up with non-placeholder values. + #if BUILDFLAG(IS_ANDROID) +diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc +index 833ea42681..dfd41632bd 100644 +--- a/extensions/common/extension.cc ++++ b/extensions/common/extension.cc +@@ -96,13 +96,6 @@ bool IsManifestSupported(int manifest_version, + // Supported versions are always safe. + if (manifest_version >= kMinimumSupportedManifestVersion && + manifest_version <= kMaximumSupportedManifestVersion) { +- // Emit a warning for unpacked extensions on Manifest V2 warning that +- // MV2 is deprecated. +- if (type == Manifest::TYPE_EXTENSION && manifest_version == 2 && +- Manifest::IsUnpackedLocation(location) && +- !g_silence_deprecated_manifest_version_warnings) { +- *warning = errors::kManifestV2IsDeprecatedWarning; +- } + return true; + } + -- cgit v1.2.3