diff --git a/srcpkgs/chromium/patches/chromium-151-llvm22.patch b/srcpkgs/chromium/patches/chromium-151-llvm22.patch deleted file mode 100644 index 9451515975b5cb..00000000000000 --- a/srcpkgs/chromium/patches/chromium-151-llvm22.patch +++ /dev/null @@ -1,23 +0,0 @@ -Disable clang flags not supported by llvm 22. ---- a/build/config/sanitizers/sanitizers.gni -+++ b/build/config/sanitizers/sanitizers.gni -@@ -540,7 +540,7 @@ - # be usable even in release builds, i.e. as widely as possible. - # It's important not to have full-on UBSan workarounds activate - # just because we built support for a specific sanitizer. -- "-fsanitize-ignore-for-ubsan-feature=${invoker.sanitizer}", -+ # "-fsanitize-ignore-for-ubsan-feature=${invoker.sanitizer}", - ] - if (defined(invoker.cflags)) { - cflags += invoker.cflags ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -578,7 +578,7 @@ - cflags += [ "-fcolor-diagnostics" ] - if (!is_wasm) { - if (!is_win) { -- cflags += [ "-fdiagnostics-show-inlining-chain" ] -+ # cflags += [ "-fdiagnostics-show-inlining-chain" ] - } else { - # Combine after https://github.com/llvm/llvm-project/pull/192241 - cflags += [ "/clang:-fdiagnostics-show-inlining-chain" ] diff --git a/srcpkgs/chromium/patches/chromium-154-revert-private-verification-tokens.patch b/srcpkgs/chromium/patches/chromium-154-revert-private-verification-tokens.patch deleted file mode 100644 index 1705bd81faa593..00000000000000 --- a/srcpkgs/chromium/patches/chromium-154-revert-private-verification-tokens.patch +++ /dev/null @@ -1,298 +0,0 @@ -Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 - ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -1015,7 +1015,6 @@ source_set("core") { - "//chrome/browser/preloading/search_preload:feature", - "//chrome/browser/privacy_sandbox:headers", - "//chrome/browser/private_ai", -- "//chrome/browser/private_verification_tokens", - "//chrome/browser/profiles:misc", - "//chrome/browser/profiles:profile_io_data", - "//chrome/browser/profiles:profiles_extra_parts", -@@ -2219,7 +2218,6 @@ source_set("browser") { - "//chrome/browser/preloading/search_preload", - "//chrome/browser/privacy", - "//chrome/browser/privacy_sandbox:impl", -- "//chrome/browser/private_verification_tokens", - "//chrome/browser/profiles:misc", - "//chrome/browser/profiles:profile_util_impl", - "//chrome/browser/profiles:profiles_extra_parts_impl", ---- a/chrome/browser/browsing_data/BUILD.gn -+++ b/chrome/browser/browsing_data/BUILD.gn -@@ -125,7 +125,6 @@ source_set("impl") { - "//chrome/browser/preloading/prefetch/no_state_prefetch", - "//chrome/browser/preloading/prefetch/search_prefetch", - "//chrome/browser/privacy_sandbox:headers", -- "//chrome/browser/private_verification_tokens", - "//chrome/browser/profiles/keep_alive", - "//chrome/browser/reading_list", - "//chrome/browser/safe_browsing", -@@ -268,7 +267,6 @@ source_set("unit_tests") { - "//chrome/browser/payments/browser_binding:browser_bound_key_deleter", - "//chrome/browser/payments/browser_binding:test_support", - "//chrome/browser/permissions", -- "//chrome/browser/private_verification_tokens", - "//chrome/browser/reading_list", - "//chrome/browser/safe_browsing:verdict_cache_manager_factory", - "//chrome/browser/segmentation_platform", -@@ -296,7 +294,6 @@ source_set("unit_tests") { - "//components/privacy_sandbox:privacy_sandbox_settings_headers", - "//components/privacy_sandbox/privacy_sandbox_attestations", - "//components/privacy_sandbox/privacy_sandbox_attestations:test_support", -- "//components/private_verification_tokens/common:private_verification_tokens_database", - "//components/reading_list/core:test_support", - "//components/safe_browsing/core/browser:suspicious_site_warning_allowlist", - "//components/safe_browsing/core/browser:verdict_cache_manager", ---- a/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc -+++ b/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc -@@ -127,15 +127,6 @@ void ChromeBrowsingDataModelDelegate::Ge - - GetAllMediaDeviceSaltDataKeys(concurrent.CreateCallback(), {}); - -- if (base::FeatureList::IsEnabled( -- net::features::kEnablePrivateVerificationTokens)) { -- if (auto* pvt_service = -- PrivateVerificationTokensServiceFactory::GetForProfile(profile_)) { -- pvt_service->GetTokenIssuers( -- base::BindOnce(&PrivateVerificationTokenBrowsingDataToDelegateEntries) -- .Then(concurrent.CreateCallback())); -- } -- } - - // TODO(crbug.com/40205603): Implement data retrieval for remaining data - // types. -@@ -180,20 +171,6 @@ void ChromeBrowsingDataModelDelegate::Re - } - #endif // !BUILDFLAG(IS_ANDROID) - -- if (base::FeatureList::IsEnabled( -- net::features::kEnablePrivateVerificationTokens) && -- storage_types.Has(static_cast( -- StorageType::kPrivateVerificationTokens))) { -- if (const url::Origin* origin = std::get_if(&data_key)) { -- if (auto* pvt_service = -- PrivateVerificationTokensServiceFactory::GetForProfile( -- profile_)) { -- pvt_service->DeleteTokens(base::Time(), base::Time::Max(), -- concurrent.CreateClosure(), -- std::vector{*origin}); -- } -- } -- } - - std::move(concurrent).Done(std::move(callback)); - } ---- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -721,29 +721,6 @@ void ChromeBrowsingDataRemoverDelegate:: - #endif // BUILDFLAG(IS_CHROMEOS) - } - -- ////////////////////////////////////////////////////////////////////////////// -- // DATA_TYPE_PRIVATE_VERIFICATION_TOKENS -- if (remove_mask & constants::DATA_TYPE_PRIVATE_VERIFICATION_TOKENS) { -- if (base::FeatureList::IsEnabled( -- net::features::kEnablePrivateVerificationTokens)) { -- if (auto* pvt_service = -- PrivateVerificationTokensServiceFactory::GetForProfile( -- profile_)) { -- auto done_closure = CreateTaskCompletionClosure( -- TracingDataType::kPrivateVerificationTokens); -- -- if (filter_builder->MatchesAllOriginsAndDomains()) { -- pvt_service->DeleteTokens(delete_begin_, delete_end_, -- std::move(done_closure), -- /*issuers=*/std::nullopt); -- } else { -- pvt_service->DeleteTokensByFilter( -- delete_begin_, delete_end_, -- filter_builder->BuildStorageKeyFilter(), std::move(done_closure)); -- } -- } -- } -- } - - ////////////////////////////////////////////////////////////////////////////// - // DATA_TYPE_CONTENT_SETTINGS ---- a/chrome/browser/chrome_content_browser_client.cc -+++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6089,21 +6089,6 @@ ChromeContentBrowserClient::CreateURLLoa - result.push_back(std::move(signin_throttle)); - } - -- if (base::FeatureList::IsEnabled( -- net::features::kEnablePrivateVerificationTokens) && -- request.is_outermost_main_frame) { -- if (auto* pvt_service = -- PrivateVerificationTokensServiceFactory::GetForProfile(profile)) { -- auto url_loader_factory = profile->GetDefaultStoragePartition() -- ->GetURLLoaderFactoryForBrowserProcess(); -- if (auto pvt_throttle = -- PrivateVerificationTokensURLLoaderThrottle::Create( -- pvt_service, profile->GetWeakPtr(), -- std::move(url_loader_factory))) { -- result.push_back(std::move(pvt_throttle)); -- } -- } -- } - - if (auto contextual_tasks_throttle = - contextual_tasks::ContextualTasksURLLoaderThrottle::MaybeCreate( ---- a/chrome/browser/component_updater/BUILD.gn -+++ b/chrome/browser/component_updater/BUILD.gn -@@ -152,7 +152,6 @@ source_set("impl") { - "//chrome/browser/net", - "//chrome/browser/page_load_metrics", - "//chrome/browser/permissions", -- "//chrome/browser/private_verification_tokens", - "//chrome/browser/profiles:profile", - "//chrome/browser/update_client", - "//chrome/common", -@@ -168,7 +167,6 @@ source_set("impl") { - "//components/permissions", - "//components/privacy_sandbox:features", - "//components/privacy_sandbox/privacy_sandbox_attestations", -- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", - "//components/safe_browsing/core/common:features", - "//components/search", - "//components/security_interstitials/content:security_interstitial_page", ---- a/chrome/browser/component_updater/private_verification_tokens_installer.cc -+++ b/chrome/browser/component_updater/private_verification_tokens_installer.cc -@@ -25,32 +25,6 @@ namespace component_updater { - - void RegisterPrivateVerificationTokensComponentIfEnabled( - ComponentUpdateService* cus) { -- if (!base::FeatureList::IsEnabled( -- net::features::kEnablePrivateVerificationTokens)) { -- return; -- } -- -- auto installer = base::MakeRefCounted( -- std::make_unique( -- base::BindRepeating( -- [](scoped_refptr -- issuer_config) { -- PrivateVerificationTokensServiceFactory::SetGlobalIssuerConfig( -- issuer_config); -- if (g_browser_process && g_browser_process->profile_manager()) { -- for (Profile* profile : g_browser_process->profile_manager() -- ->GetLoadedProfiles()) { -- if (PrivateVerificationTokensService* service = -- PrivateVerificationTokensServiceFactory:: -- GetForProfileIfExists(profile)) { -- service->SetIssuerConfig(issuer_config); -- } -- } -- } -- }))); -- -- installer->Register(cus, base::OnceClosure()); - } - - } // namespace component_updater ---- a/chrome/browser/private_verification_tokens/BUILD.gn -+++ b/chrome/browser/private_verification_tokens/BUILD.gn -@@ -26,11 +26,6 @@ static_library("private_verification_tok - "//chrome/browser/profiles:profile", - "//components/content_settings/core/browser", - "//components/keyed_service/core", -- "//components/private_verification_tokens/common:privacy_pass_athm_batch_request", -- "//components/private_verification_tokens/common:private_verification_tokens_fetcher", -- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", -- "//components/private_verification_tokens/common:private_verification_tokens_parameters", -- "//components/private_verification_tokens/common:private_verification_tokens_store", - "//content/public/browser", - "//net", - "//services/network/public/cpp", -@@ -49,10 +44,6 @@ source_set("browser_tests") { - "//chrome/browser/content_settings:content_settings_factory", - "//chrome/test:test_support", - "//components/content_settings/core/common", -- "//components/private_verification_tokens/common:private_verification_tokens_database", -- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", -- "//components/private_verification_tokens/common:test_support", -- "//components/private_verification_tokens/common/athm_ffi:athm_ffi_bindings", - "//net:test_support", - "//services/network:test_support", - "//url", -@@ -73,11 +64,6 @@ source_set("unit_tests") { - "//chrome/test:test_support", - "//components/content_settings/core/browser", - "//components/content_settings/core/common", -- "//components/private_verification_tokens/common:private_verification_tokens_database", -- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", -- "//components/private_verification_tokens/common:private_verification_tokens_parameters", -- "//components/private_verification_tokens/common:test_support", -- "//components/private_verification_tokens/common/athm_ffi:athm_ffi_bindings", - "//content/test:test_support", - "//net", - "//services/network:test_support", ---- a/chrome/browser/profiles/BUILD.gn -+++ b/chrome/browser/profiles/BUILD.gn -@@ -808,7 +808,6 @@ source_set("profiles_extra_parts_impl") - "//chrome/browser/privacy_sandbox:headers", - "//chrome/browser/private_ai", - "//chrome/browser/private_insights", -- "//chrome/browser/private_verification_tokens", - "//chrome/browser/push_messaging", - "//chrome/browser/reading_list", - "//chrome/browser/reduce_accept_language", ---- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -1366,7 +1366,6 @@ void ChromeBrowserMainExtraPartsProfiles - PrivacyMetricsServiceFactory::GetInstance(); - PrivacySandboxServiceFactory::GetInstance(); - PrivacySandboxSettingsFactory::GetInstance(); -- PrivateVerificationTokensServiceFactory::GetInstance(); - private_ai::PrivateAiServiceFactory::GetInstance(); - ProfileNetworkContextServiceFactory::GetInstance(); - ProfilePasswordStoreFactory::GetInstance(); ---- a/chrome/test/BUILD.gn -+++ b/chrome/test/BUILD.gn -@@ -1884,7 +1884,6 @@ if (!is_android) { - "//chrome/browser/privacy_sandbox:headers", - "//chrome/browser/privacy_sandbox:test_support", - "//chrome/browser/private_ai", -- "//chrome/browser/private_verification_tokens:browser_tests", - "//chrome/browser/profile_resetter", - "//chrome/browser/profile_resetter:browser_tests", - "//chrome/browser/profiles", -@@ -5032,7 +5031,6 @@ test("unit_tests") { - "//chrome/browser/preloading/prerender:unit_tests", - "//chrome/browser/privacy_sandbox:unit_tests", - "//chrome/browser/private_ai:unit_tests", -- "//chrome/browser/private_verification_tokens:unit_tests", - "//chrome/browser/profiles", - "//chrome/browser/profiles:misc", - "//chrome/browser/profiles:profile_downloader", ---- a/components/BUILD.gn -+++ b/components/BUILD.gn -@@ -314,7 +314,6 @@ test("components_unittests") { - "//components/power_metrics:unit_tests", - "//components/prefs:unit_tests", - "//components/privacy_sandbox:unit_tests", -- "//components/private_verification_tokens:unit_tests", - "//components/profile_metrics:unit_tests", - "//components/proto_extras:unit_tests", - "//components/proxy_config:unit_tests", ---- a/components/component_updater/installer_policies/BUILD.gn -+++ b/components/component_updater/installer_policies/BUILD.gn -@@ -38,7 +38,6 @@ static_library("installer_policies_no_co - "//components/lookalikes/core:proto", - "//components/lookalikes/core:safety_tips", - "//components/prefs", -- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", - "//components/update_client", - "//mojo/public/cpp/base:protobuf_support", - "//services/network/public/cpp", -@@ -106,8 +105,6 @@ source_set("unit_tests") { - "//components/history_embeddings/core", - "//components/optimization_guide/core", - "//components/optimization_guide/proto:optimization_guide_proto", -- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", -- "//components/private_verification_tokens/common:test_support", - "//mojo/public/cpp/base:protobuf_support", - "//services/network/public/cpp", - "//testing/gmock", diff --git a/srcpkgs/chromium/patches/chromium-156-crubit-rust-1_99.patch b/srcpkgs/chromium/patches/chromium-156-crubit-rust-1_99.patch new file mode 100644 index 00000000000000..dbcfd397c98cd6 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-156-crubit-rust-1_99.patch @@ -0,0 +1,10 @@ +--- a/third_party/rust-toolchain-intermediate/crubit/cc_bindings_from_rs/generate_bindings/format_type.rs ++++ b/third_party/rust-toolchain-intermediate/crubit/cc_bindings_from_rs/generate_bindings/format_type.rs +@@ -39,6 +39,7 @@ + use rustc_hir::lang_items::LangItem; + use rustc_middle::mir::Mutability; + use rustc_middle::ty::layout::IntegerExt; ++use rustc_middle::ty::RegionExt; + use rustc_middle::ty::{self, AdtDef, GenericArg, Ty, TyCtxt, TypeVisitableExt}; + use rustc_span::def_id::{CrateNum, DefId}; + use rustc_span::symbol::{sym, Symbol}; diff --git a/srcpkgs/chromium/patches/chromium-155-revert-crubit.patch b/srcpkgs/chromium/patches/chromium-156-crubit.patch similarity index 60% rename from srcpkgs/chromium/patches/chromium-155-revert-crubit.patch rename to srcpkgs/chromium/patches/chromium-156-crubit.patch index 0a961bcd510aa4..1f3acda8606937 100644 --- a/srcpkgs/chromium/patches/chromium-155-revert-crubit.patch +++ b/srcpkgs/chromium/patches/chromium-156-crubit.patch @@ -1,5 +1,18 @@ -Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 - +Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/4003 +--- a/chrome/browser/devtools/chrome_devtools_session.cc ++++ b/chrome/browser/devtools/chrome_devtools_session.cc +@@ -78,11 +78,6 @@ ChromeDevToolsSession::ChromeDevToolsSes + cast_handler_ = std::make_unique( + agent_host->GetWebContents(), dispatcher()); + } +- if (IsDomainAvailableToUntrustedClient() || +- channel->GetClient()->IsTrusted()) { +- storage_handler_ = std::make_unique( +- agent_host->GetWebContents(), dispatcher()); +- } + } + if (agent_host->GetWebContents() && + (agent_host->GetType() == content::DevToolsAgentHost::kTypePage || --- a/components/cbor/BUILD.gn +++ b/components/cbor/BUILD.gn @@ -12,7 +12,7 @@ buildflag_header("buildflags") { @@ -10,17 +23,17 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 + flags = [ "USE_CBOR_RUST=$enable_cpp_api_from_rust" ] } - component("cbor") { -@@ -35,7 +35,7 @@ component("cbor") { + source_set("cbor_headers") { +@@ -48,7 +48,7 @@ source_set("cbor_rust_impl") { "//base", ] - if (!is_cronet_build) { + if (enable_cpp_api_from_rust) { - public_deps = [ + deps += [ "//build/rust/crubit", "//components/cbor/rust:cbor_rust_bindings", -@@ -62,7 +62,7 @@ source_set("unit_tests") { +@@ -91,7 +91,7 @@ source_set("unit_tests") { "//testing/gtest", "//third_party/fuzztest", ] @@ -31,26 +44,41 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 "//components/cbor/rust:cbor_rust_unittests", --- a/components/web_package/BUILD.gn +++ b/components/web_package/BUILD.gn -@@ -40,7 +40,6 @@ static_library("web_package") { - "//base", +@@ -51,8 +51,6 @@ source_set("web_package_rust_impl") { "//components/base32", "//components/cbor", + "//components/web_package/mojom", +- "//components/web_package/rust:web_package_rust_bindings", - "//components/web_package/signed_web_bundles/rust:signed_web_bundles_rust_bindings", "//mojo/public/cpp/bindings", "//net", "//services/network/public/mojom", -@@ -70,7 +69,6 @@ source_set("mojom_mapped_types") { +@@ -67,12 +65,10 @@ static_library("web_package") { + "signed_web_bundles/signed_web_bundle_signature_stack.cc", + "signed_web_bundles/signed_web_bundle_signature_stack_entry.cc", + "web_bundle_builder.cc", +- "web_bundle_parser_factory.cc", + "web_bundle_utils.cc", + ] deps = [ +- ":web_package_rust_impl", + "//base", + "//components/base32", + "//components/cbor", +@@ -115,7 +111,6 @@ source_set("mojom_mapped_types_rust_impl + deps = [ + ":mojom_mapped_types_headers", "//base", - "//components/web_package/signed_web_bundles/rust:signed_web_bundles_rust_bindings", "//crypto", "//mojo/public/cpp/bindings", ] -@@ -98,7 +96,6 @@ source_set("unit_tests") { +@@ -159,8 +154,6 @@ source_set("unit_tests") { ":web_package", "//base/test:test_support", "//components/cbor", +- "//components/web_package/rust:web_package_rust_unittests", - "//components/web_package/signed_web_bundles/rust:signed_web_bundles_rust_unittests", "//components/web_package/test_support", "//mojo/public/cpp/bindings", @@ -572,6 +600,210 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 } } // namespace web_package +--- a/components/webapps/isolated_web_apps/bundle_operations/bundle_operations.cc ++++ b/components/webapps/isolated_web_apps/bundle_operations/bundle_operations.cc +@@ -79,16 +79,7 @@ void ReadSignedWebBundleIdInsecurely( + const base::FilePath& path, + base::OnceCallback)> callback) { +- UnsecureSignedWebBundleIdReader::GetWebBundleId( +- path, +- base::BindOnce([](base::expected result) { +- return result.transform_error([](const UnusableSwbnFileError& error) { +- return "Failed to read the integrity block of the " +- "signed web bundle: " + +- error.message(); +- }); +- }).Then(std::move(callback))); ++ std::move(callback); + } + + void ValidateSignedWebBundleSignatures( +@@ -96,20 +87,6 @@ void ValidateSignedWebBundleSignatures( + const base::FilePath& path, + const web_package::SignedWebBundleId& expected_web_bundle_id, + base::OnceCallback callback) { +- auto create_reader = base::BindOnce( +- &SignedWebBundleReader::Create, path, +- IwaOrigin(expected_web_bundle_id).origin().GetURL(), +- /*verify_signatures=*/true, +- base::BindOnce(&OnTrustAndSignaturesOfBundleChecked, +- browser_context->GetWeakPtr(), expected_web_bundle_id, +- std::move(callback))); +- +- if (auto* provider = IwaClient::GetInstance()->GetRuntimeDataProvider()) { +- provider->OnBestEffortRuntimeDataReady().Post(FROM_HERE, +- std::move(create_reader)); +- } else { +- std::move(create_reader).Run(); +- } + } + + void CloseBundle(content::BrowserContext* browser_context, +--- a/components/webapps/isolated_web_apps/reading/BUILD.gn ++++ b/components/webapps/isolated_web_apps/reading/BUILD.gn +@@ -14,8 +14,6 @@ source_set("reading") { + "response_reader_registry.h", + "response_reader_registry_factory.cc", + "response_reader_registry_factory.h", +- "signed_web_bundle_reader.cc", +- "signed_web_bundle_reader.h", + "validator.cc", + "validator.h", + ] +--- a/components/webapps/isolated_web_apps/reading/response_reader_factory.cc ++++ b/components/webapps/isolated_web_apps/reading/response_reader_factory.cc +@@ -45,19 +45,6 @@ void IsolatedWebAppResponseReaderFactory + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(!web_bundle_id.is_for_proxy_mode()); + +- auto create_reader = base::BindOnce( +- &SignedWebBundleReader::Create, web_bundle_path, +- IwaOrigin(web_bundle_id).origin().GetURL(), verify_signatures, +- base::BindOnce(&IsolatedWebAppResponseReaderFactory::OnReaderCreated, +- weak_ptr_factory_.GetWeakPtr(), web_bundle_path, +- web_bundle_id, std::move(callback))); +- +- if (auto* provider = IwaClient::GetInstance()->GetRuntimeDataProvider()) { +- provider->OnBestEffortRuntimeDataReady().Post(FROM_HERE, +- std::move(create_reader)); +- } else { +- std::move(create_reader).Run(); +- } + } + + void IsolatedWebAppResponseReaderFactory::OnReaderCreated( +--- a/services/data_decoder/data_decoder_service.cc ++++ b/services/data_decoder/data_decoder_service.cc +@@ -63,9 +63,6 @@ void DataDecoderService::BindXmlParser( + void DataDecoderService::BindWebBundleParserFactory( + mojo::PendingReceiver + receiver) { +- mojo::MakeSelfOwnedReceiver( +- std::make_unique(), +- std::move(receiver)); + } + + void DataDecoderService::BindGzipper( +--- a/services/network/web_bundle/web_bundle_url_loader_factory.cc ++++ b/services/network/web_bundle/web_bundle_url_loader_factory.cc +@@ -586,25 +586,6 @@ bool WebBundleURLLoaderFactory::HasError + + void WebBundleURLLoaderFactory::SetBundleStream( + mojo::ScopedDataPipeConsumerHandle body) { +- if (HasError()) +- return; +- mojo::PendingRemote data_source; +- source_ = std::make_unique( +- data_source.InitWithNewPipeAndPassReceiver(), std::move(body), +- std::move(web_bundle_memory_quota_consumer_), +- base::BindOnce(&WebBundleURLLoaderFactory::OnMemoryQuotaExceeded, +- weak_ptr_factory_.GetWeakPtr()), +- base::BindOnce(&WebBundleURLLoaderFactory::OnDataCompleted, +- weak_ptr_factory_.GetWeakPtr())); +- +- mojo::MakeSelfOwnedReceiver(std::make_unique( +- std::move(data_source), bundle_url_), +- parser_.BindNewPipeAndPassReceiver()); +- +- parser_->ParseMetadata( +- /*offset=*/std::nullopt, +- base::BindOnce(&WebBundleURLLoaderFactory::OnMetadataParsed, +- weak_ptr_factory_.GetWeakPtr())); + } + + mojo::PendingRemote +--- a/third_party/blink/renderer/core/loader/resource/font_resource.cc ++++ b/third_party/blink/renderer/core/loader/resource/font_resource.cc +@@ -44,7 +44,6 @@ + #include "third_party/blink/public/mojom/loader/request_context_frame_type.mojom-blink.h" + #include "third_party/blink/renderer/platform/fonts/font_custom_platform_data.h" + #include "third_party/blink/renderer/platform/fonts/font_platform_data.h" +-#include "third_party/blink/renderer/platform/fonts/ift/ift_patcher.h" + #include "third_party/blink/renderer/platform/fonts/web_font_decoder.h" + #include "third_party/blink/renderer/platform/heap/cross_thread_handle.h" + #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h" +@@ -85,7 +84,8 @@ base::expected D + return base::unexpected(""); + } + auto decode_start_time = base::TimeTicks::Now(); +- base::expected result = DecodeWebFont(buffer); ++ base::expected result = ++ DecodedWebFont::Create(buffer); + base::UmaHistogramMicrosecondsTimes( + "Blink.Fonts.BackgroundDecodeTime", + base::TimeTicks::Now() - decode_start_time); +@@ -316,22 +316,13 @@ const FontCustomPlatformData* FontResour + font_data_ = FontCustomPlatformData::Create( + std::move(background_decode_result_->sk_typeface), + background_decode_result_->decoded_size); +- ift_patcher_ = std::move(background_decode_result_->ift_patcher); + } else { + auto decode_start_time = base::TimeTicks::Now(); +- base::expected decode_result = +- DecodeWebFont(Data()); ++ font_data_ = ++ FontCustomPlatformData::Create(Data(), ots_parsing_message_); + base::UmaHistogramMicrosecondsTimes( + "Blink.Fonts.DecodeTime", + base::TimeTicks::Now() - decode_start_time); +- if (decode_result.has_value()) { +- font_data_ = FontCustomPlatformData::Create( +- std::move(decode_result->sk_typeface), +- decode_result->decoded_size); +- ift_patcher_ = std::move(decode_result->ift_patcher); +- } else { +- ots_parsing_message_ = std::move(decode_result).error(); +- } + } + } else { + ots_parsing_message_ = background_decode_result_.error(); +@@ -340,7 +331,6 @@ const FontCustomPlatformData* FontResour + + if (!font_data_) { + SetStatus(ResourceStatus::kDecodeError); +- ift_patcher_.reset(); + } else { + // Call observers once and remove them. + HeapHashSet> observers; +@@ -353,10 +343,6 @@ const FontCustomPlatformData* FontResour + return font_data_; + } + +-std::unique_ptr FontResource::TakeIftPatcher() { +- return std::move(ift_patcher_); +-} +- + void FontResource::WillReloadAfterDiskCacheMiss() { + DCHECK(IsLoading()); + DCHECK(Loader()->IsCacheAwareLoadingActivated()); +--- a/third_party/blink/renderer/core/loader/resource/font_resource.h ++++ b/third_party/blink/renderer/core/loader/resource/font_resource.h +@@ -47,7 +47,6 @@ class FetchParameters; + class ResourceFetcher; + class FontCustomPlatformData; + class FontResourceClient; +-class IftPatcher; + + // An observer that will be notified when original data is cleared + // from the resource. Inspector may collect this data and store it for +@@ -78,7 +77,6 @@ class CORE_EXPORT FontResource final : p + String OtsParsingMessage() const { return ots_parsing_message_; } + + const FontCustomPlatformData* GetCustomFontData(); +- std::unique_ptr TakeIftPatcher(); + + // Returns true if the loading priority of the remote font resource can be + // lowered. The loading priority of the font can be lowered only if the +@@ -127,7 +125,6 @@ class CORE_EXPORT FontResource final : p + }; + + Member font_data_; +- std::unique_ptr ift_patcher_; + String ots_parsing_message_; + LoadLimitState load_limit_state_; + bool cors_failed_; --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn @@ -186,6 +186,18 @@ group("make_platform_generated") { @@ -593,7 +825,15 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 rust_static_library("rustfft_ffi") { allow_unsafe = true # Needed for FFI that underpins the `cxx` crate. crate_root = "audio/rustfft_ffi.rs" -@@ -712,8 +724,6 @@ component("platform") { +@@ -253,7 +265,6 @@ group("blink_platform_public_deps") { + "//third_party/boringssl", + "//third_party/libwebp", + "//third_party/ots", +- "//third_party/woff2:woff2_dec", + "//ui/gfx/animation/keyframe", + "//url", + "//v8", +@@ -713,8 +724,6 @@ component("platform") { "fonts/generic_font_family_settings.cc", "fonts/generic_font_family_settings.h", "fonts/glyph_metrics_map.h", @@ -602,7 +842,7 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 "fonts/opentype/color_table_lookup.cc", "fonts/opentype/color_table_lookup.h", "fonts/opentype/font_format_check.cc", -@@ -1792,7 +1802,6 @@ component("platform") { +@@ -1795,7 +1804,6 @@ component("platform") { ":allow_discouraged_type", ":blink_platform_public_deps", ":platform_export", @@ -610,7 +850,7 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 "//components/language_detection/core", "//gpu/command_buffer/client:raster_interface", "//media/capture:capture_lib", -@@ -1819,9 +1828,8 @@ component("platform") { +@@ -1822,9 +1830,8 @@ component("platform") { "//ui/native_theme/features", ] deps = [ @@ -621,6 +861,18 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 "//base:base_static", "//base/allocator:buildflags", "//build:chromecast_buildflags", +--- a/third_party/blink/renderer/platform/fonts/font_custom_platform_data.cc ++++ b/third_party/blink/renderer/platform/fonts/font_custom_platform_data.cc +@@ -328,7 +328,8 @@ FontCustomPlatformData* FontCustomPlatfo + SharedBuffer* buffer, + String& ots_parse_message) { + DCHECK(buffer); +- base::expected decode_result = DecodeWebFont(buffer); ++ base::expected decode_result = ++ DecodedWebFont::Create(buffer); + if (!decode_result.has_value()) { + ots_parse_message = std::move(decode_result).error(); + return nullptr; --- a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc +++ b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc @@ -7,6 +7,7 @@ @@ -754,16 +1006,16 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 matches!(&format_info.format_flags, Some(FontFormatFlags { color_version: Some(0), .. }),) } -@@ -56,7 +56,7 @@ fn get_avar_version(font_ref: &FontRef) - Some((version.major, version.minor)) - } +@@ -58,7 +58,7 @@ fn get_avar_version(font_ref: &FontRef) + // https://crbug.com/513446410: For safety we want to pass unknown avar2 + // versions through fontations, too. -pub fn is_avar2(format_info: &FontFormatInfo) -> bool { +fn is_avar2(format_info: &FontFormatInfo) -> bool { - matches!(&format_info.format_flags, Some(FontFormatFlags { avar_version: Some((2, _)), .. }),) - } - -@@ -69,22 +69,39 @@ fn has_tags(format_info: &FontFormatInfo + matches!( + &format_info.format_flags, + Some(FontFormatFlags { +@@ -77,22 +77,39 @@ fn has_tags(format_info: &FontFormatInfo } } @@ -808,3 +1060,233 @@ Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/3983 + fn is_avar2(format_info: &FontFormatInfo) -> bool; + } +} +--- a/third_party/blink/renderer/platform/fonts/web_font_decoder.cc ++++ b/third_party/blink/renderer/platform/fonts/web_font_decoder.cc +@@ -33,27 +33,19 @@ + #include + #include + +-#include +- + #include "base/compiler_specific.h" +-#include "base/containers/span.h" +-#include "base/numerics/byte_conversions.h" + #include "base/numerics/safe_conversions.h" + #include "build/build_config.h" + #include "third_party/blink/public/platform/platform.h" + #include "third_party/blink/renderer/platform/fonts/font_cache.h" +-#include "third_party/blink/renderer/platform/fonts/ift/ift_patcher.h" + #include "third_party/blink/renderer/platform/fonts/web_font_typeface_factory.h" + #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" +-#include "third_party/blink/renderer/platform/runtime_enabled_features.h" + #include "third_party/blink/renderer/platform/wtf/shared_buffer.h" + #include "third_party/blink/renderer/platform/wtf/text/format.h" + #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + #include "third_party/ots/src/include/ots-memory-stream.h" + #include "third_party/skia/include/core/SkStream.h" +-#include "third_party/woff2/include/woff2/decode.h" +-#include "third_party/woff2/include/woff2/output.h" + + namespace blink { + +@@ -65,11 +57,6 @@ const size_t kMaxDecompressedSizeMb = 30 + const size_t kMaxDecompressedSizeMb = 128; + #endif + +-constexpr size_t kMaxDecompressedSize = kMaxDecompressedSizeMb * 1024 * 1024; +- +-constexpr uint32_t kWoffTag = OTS_TAG('w', 'O', 'F', 'F'); +-constexpr uint32_t kWoff2Tag = OTS_TAG('w', 'O', 'F', '2'); +- + class BlinkOTSContext final : public ots::OTSContext { + DISALLOW_NEW(); + +@@ -189,94 +176,17 @@ ots::TableAction BlinkOTSContext::GetTab + } + } + +-struct FontDecodeResult { +- std::unique_ptr ift_patcher; +-}; +- +-// Decompresses and sanitizes `font_data` into an output stream using +-// `ots_context`, and initializes `ift_patcher` if `font_data` is an IFT-enabled +-// font. Returns whether decoding succeeded. On failure, the error string can be +-// retrieved from `ots_context`. +-bool DecodeFontWithIft(BlinkOTSContext& ots_context, +- base::span font_data, +- ots::ExpandingMemoryStream* output, +- std::unique_ptr& ift_patcher) { +- TRACE_EVENT("blink", "DecodeFont"); +- +- uint32_t magic = 0; +- if (font_data.size() >= 4) { +- magic = base::U32FromBigEndian(font_data.first<4u>()); +- } +- +- switch (magic) { +- case kWoff2Tag: { +- size_t decompressed_size = +- woff2::ComputeWOFF2FinalSize(font_data.data(), font_data.size()); +- if (decompressed_size == 0) { +- ots_context.Message(0, "Size of decompressed WOFF 2.0 is set to 0"); +- return false; +- } +- if (decompressed_size < font_data.size()) { +- ots_context.Message( +- 0, "Size of decompressed WOFF 2.0 is less than compressed size"); +- return false; +- } +- if (decompressed_size > kMaxDecompressedSize) { +- ots_context.Message(0, +- "Size of decompressed WOFF 2.0 font exceeds %gMB", +- kMaxDecompressedSize / (1024.0 * 1024.0)); +- return false; +- } +- +- std::string buf(decompressed_size, 0); +- woff2::WOFF2StringOut out(&buf); +- if (!woff2::ConvertWOFF2ToTTF(font_data.data(), font_data.size(), &out)) { +- ots_context.Message(0, "Failed to convert WOFF 2.0 font to SFNT"); +- return false; +- } +- +- base::span decompressed_span = +- base::as_byte_span(buf).first(out.Size()); +- if (!ots_context.Process(output, decompressed_span.data(), +- decompressed_span.size())) { +- return false; +- } +- ift_patcher = IftPatcher::Create(decompressed_span); +- break; +- } +- case kWoffTag: { +- // The IFT (Incremental Font Transfer) specification recommends using +- // WOFF2. OTS handles WOFF decompression directly, so we do not extract +- // unsanitized font data or create an IftPatcher for the WOFF format. +- if (!ots_context.Process(output, font_data.data(), font_data.size())) { +- return false; +- } +- break; +- } +- default: { +- if (!ots_context.Process(output, font_data.data(), font_data.size())) { +- return false; +- } +- ift_patcher = IftPatcher::Create(font_data); +- break; +- } +- } +- +- return true; +-} +- + } // namespace + +-DecodedWebFont::DecodedWebFont() = default; +-DecodedWebFont::DecodedWebFont(DecodedWebFont&&) noexcept = default; +-DecodedWebFont& DecodedWebFont::operator=(DecodedWebFont&&) noexcept = default; +-DecodedWebFont::~DecodedWebFont() = default; +- +-base::expected DecodeWebFont(SegmentedBuffer* buffer) { ++base::expected DecodedWebFont::Create( ++ SegmentedBuffer* buffer) { + if (!buffer) { + return base::unexpected("Empty Buffer"); + } + ++ // This is the largest web font size which we'll try to transcode. ++ static const size_t kMaxDecompressedSize = ++ kMaxDecompressedSizeMb * 1024 * 1024; + if (buffer->size() > kMaxDecompressedSize) { + return base::unexpected( + Format("Web font size more than {}MB", kMaxDecompressedSizeMb)); +@@ -291,11 +201,7 @@ base::expected D + SegmentedBuffer::DeprecatedFlatData flattened_buffer(buffer); + + bool ok; +- std::unique_ptr ift_patcher; +- if (RuntimeEnabledFeatures::IncrementalFontTransferEnabled()) { +- ok = DecodeFontWithIft(ots_context, base::as_byte_span(flattened_buffer), +- output.get(), ift_patcher); +- } else { ++ { + TRACE_EVENT("blink", "DecodeFont"); + ok = ots_context.Process( + output.get(), reinterpret_cast(flattened_buffer.data()), +@@ -307,9 +213,9 @@ base::expected D + } + + const void* decoded_data = output->get(); +- DecodedWebFont result; +- result.ift_patcher = std::move(ift_patcher); +- result.decoded_size = base::checked_cast(output->Tell()); ++ DecodedWebFont result{ ++ .decoded_size = base::checked_cast(output->Tell()), ++ }; + sk_sp sk_data = SkData::MakeWithProc( + decoded_data, result.decoded_size, + [](const void*, void* output) { +--- a/third_party/blink/renderer/platform/fonts/web_font_decoder.h ++++ b/third_party/blink/renderer/platform/fonts/web_font_decoder.h +@@ -31,8 +31,6 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_WEB_FONT_DECODER_H_ + #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_WEB_FONT_DECODER_H_ + +-#include +- + #include "base/types/expected.h" + #include "third_party/blink/renderer/platform/platform_export.h" + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" +@@ -42,7 +40,6 @@ class SkTypeface; + + namespace blink { + +-class IftPatcher; + class SegmentedBuffer; + + // Represents a font that has been successfully decoded and sanitized. +@@ -56,32 +53,18 @@ struct PLATFORM_EXPORT DecodedWebFont { + // The size of the font after decoding and sanitizing. + size_t decoded_size = 0; + +- // Used to discover and apply patches to fonts. `nullptr` if the font is not +- // IFT-encoded or if Incremental Font Transfer is disabled. +- std::unique_ptr ift_patcher; +- +- // Defined out of line so that `IftPatcher` only needs to be forward declared +- // here. +- DecodedWebFont(); +- DecodedWebFont(DecodedWebFont&&) noexcept; +- DecodedWebFont& operator=(DecodedWebFont&&) noexcept; +- DecodedWebFont(const DecodedWebFont&) = delete; +- DecodedWebFont& operator=(const DecodedWebFont&) = delete; +- ~DecodedWebFont(); ++ // Decodes, decompresses, and sanitizes the raw font data from the provided ++ // `buffer` (which typically contains WOFF, WOFF2, or TTF data). ++ // ++ // Returns: ++ // - On success: A `DecodedWebFont` containing the successfully created ++ // font. ++ // - On failure: A `String` containing a descriptive error message (e.g., if ++ // the buffer is empty, the decompressed size exceeds limits, or OTS ++ // validation fails). ++ static base::expected Create(SegmentedBuffer*); + }; + +-// Decodes, decompresses, and sanitizes the raw font data from the provided +-// `buffer` (which typically contains WOFF, WOFF2, or TTF data). +-// +-// Returns: +-// - On success: A `DecodedWebFont` containing the successfully created +-// font. +-// - On failure: A `String` containing a descriptive error message (e.g., if +-// the buffer is empty, the decompressed size exceeds limits, or OTS +-// validation fails). +-PLATFORM_EXPORT base::expected DecodeWebFont( +- SegmentedBuffer* buffer); +- + } // namespace blink + + #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_WEB_FONT_DECODER_H_ diff --git a/srcpkgs/chromium/patches/chromium-156-fix-crubit-gn.patch.bak b/srcpkgs/chromium/patches/chromium-156-fix-crubit-gn.patch.bak new file mode 100644 index 00000000000000..c4f042fb969e04 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-156-fix-crubit-gn.patch.bak @@ -0,0 +1,36 @@ +--- a/build/rust/gni_impl/cpp_api_from_rust.gni ++++ b/build/rust/gni_impl/cpp_api_from_rust.gni +@@ -47,20 +47,7 @@ + # + # + template("cpp_api_from_rust") { +- # `enable_rust` and `use_chromium_rust_toolchain` enforce that `rustc` and +- # `cpp_api_from_rust` use the same version of Rust compiler sources - this is +- # required (e.g. to see the same memory layout of repr-Rusts structs) as +- # explained in +- # https://github.com/google/crubit/blob/89417b58802e20a6a11db7fea7c31692fef25276/docs/design/design.md?plain=1#L599-L602 +- assert(enable_rust && use_chromium_rust_toolchain) +- +- # TODO(https://crbug.com/549864599): `cpp_api_from_rust`-generated bindings +- # may depend on C++ bindings of Rust standard library. Currently Chromium is +- # only able to invoke Crubit in `.rs`-consuming mode (rather than +- # `.rlib`-consuming mode). Together, these two constraints mean that +- # `cpp_api_from_rust` only works for the target platform and doesn't yet work +- # for the host platform. +- assert(!rust_prebuilt_stdlib) ++ assert(enable_rust) + + # PDFium, V8 and other "2nd-party" Chromium projects don't yet have their own + # `//build_overrides/crubit.gni` build file. Until this is fixed, we assert +--- a/build/config/rust.gni ++++ b/build/config/rust.gni +@@ -435,8 +435,7 @@ + # + # See the `assert` comments in `cpp_api_from_rust.gni` for explanation of + # the conditions used here. +-enable_cpp_api_from_rust = enable_rust && use_chromium_rust_toolchain && +- !rust_prebuilt_stdlib && build_with_chromium ++enable_cpp_api_from_rust = enable_rust && build_with_chromium + + rustc_wrapper_inputs = [ + "//build/action_helpers.py", diff --git a/srcpkgs/chromium/patches/chromium-156-private-verification-tokens.patch b/srcpkgs/chromium/patches/chromium-156-private-verification-tokens.patch new file mode 100644 index 00000000000000..324ffd70fc44b4 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-156-private-verification-tokens.patch @@ -0,0 +1,623 @@ +Source: https://github.com/ungoogled-software/ungoogled-chromium/pull/4003 +--- a/chrome/browser/BUILD.gn ++++ b/chrome/browser/BUILD.gn +@@ -1016,7 +1016,6 @@ source_set("core") { + "//chrome/browser/preloading/search_preload:feature", + "//chrome/browser/privacy_sandbox:headers", + "//chrome/browser/private_ai", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/profiles:misc", + "//chrome/browser/profiles:profile_io_data", + "//chrome/browser/profiles:profiles_extra_parts", +@@ -2248,7 +2247,6 @@ source_set("browser") { + "//chrome/browser/preloading/search_preload", + "//chrome/browser/privacy", + "//chrome/browser/privacy_sandbox:impl", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/profiles:misc", + "//chrome/browser/profiles:profile_util_impl", + "//chrome/browser/profiles:profiles_extra_parts_impl", +--- a/chrome/browser/browsing_data/BUILD.gn ++++ b/chrome/browser/browsing_data/BUILD.gn +@@ -125,7 +125,6 @@ source_set("impl") { + "//chrome/browser/preloading/prefetch/no_state_prefetch", + "//chrome/browser/preloading/prefetch/search_prefetch", + "//chrome/browser/privacy_sandbox:headers", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/profiles/keep_alive", + "//chrome/browser/reading_list", + "//chrome/browser/safe_browsing", +@@ -269,7 +268,6 @@ source_set("unit_tests") { + "//chrome/browser/payments/browser_binding:browser_bound_key_deleter", + "//chrome/browser/payments/browser_binding:test_support", + "//chrome/browser/permissions", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/reading_list", + "//chrome/browser/safe_browsing:verdict_cache_manager_factory", + "//chrome/browser/segmentation_platform", +@@ -298,7 +296,6 @@ source_set("unit_tests") { + "//components/privacy_sandbox:privacy_sandbox_settings_headers", + "//components/privacy_sandbox/privacy_sandbox_attestations", + "//components/privacy_sandbox/privacy_sandbox_attestations:test_support", +- "//components/private_verification_tokens/common:private_verification_tokens_database", + "//components/reading_list/core:test_support", + "//components/safe_browsing/core/browser:suspicious_site_warning_allowlist", + "//components/safe_browsing/core/browser:verdict_cache_manager", +--- a/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc ++++ b/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc +@@ -127,15 +127,6 @@ void ChromeBrowsingDataModelDelegate::Ge + + GetAllMediaDeviceSaltDataKeys(concurrent.CreateCallback(), {}); + +- if (base::FeatureList::IsEnabled( +- net::features::kEnablePrivateVerificationTokens)) { +- if (auto* pvt_service = +- PrivateVerificationTokensServiceFactory::GetForProfile(profile_)) { +- pvt_service->GetTokenIssuers( +- base::BindOnce(&PrivateVerificationTokenBrowsingDataToDelegateEntries) +- .Then(concurrent.CreateCallback())); +- } +- } + + // TODO(crbug.com/40205603): Implement data retrieval for remaining data + // types. +@@ -180,20 +171,6 @@ void ChromeBrowsingDataModelDelegate::Re + } + #endif // !BUILDFLAG(IS_ANDROID) + +- if (base::FeatureList::IsEnabled( +- net::features::kEnablePrivateVerificationTokens) && +- storage_types.Has(static_cast( +- StorageType::kPrivateVerificationTokens))) { +- if (const url::Origin* origin = std::get_if(&data_key)) { +- if (auto* pvt_service = +- PrivateVerificationTokensServiceFactory::GetForProfile( +- profile_)) { +- pvt_service->DeleteTokens(base::Time(), base::Time::Max(), +- concurrent.CreateClosure(), +- std::vector{*origin}); +- } +- } +- } + + std::move(concurrent).Done(std::move(callback)); + } +--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc ++++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +@@ -726,29 +726,6 @@ void ChromeBrowsingDataRemoverDelegate:: + #endif // BUILDFLAG(IS_CHROMEOS) + } + +- ////////////////////////////////////////////////////////////////////////////// +- // DATA_TYPE_PRIVATE_VERIFICATION_TOKENS +- if (remove_mask & constants::DATA_TYPE_PRIVATE_VERIFICATION_TOKENS) { +- if (base::FeatureList::IsEnabled( +- net::features::kEnablePrivateVerificationTokens)) { +- if (auto* pvt_service = +- PrivateVerificationTokensServiceFactory::GetForProfile( +- profile_)) { +- auto done_closure = CreateTaskCompletionClosure( +- TracingDataType::kPrivateVerificationTokens); +- +- if (filter_builder->MatchesAllOriginsAndDomains()) { +- pvt_service->DeleteTokens(delete_begin_, delete_end_, +- std::move(done_closure), +- /*issuers=*/std::nullopt); +- } else { +- pvt_service->DeleteTokensByFilter( +- delete_begin_, delete_end_, +- filter_builder->BuildStorageKeyFilter(), std::move(done_closure)); +- } +- } +- } +- } + + ////////////////////////////////////////////////////////////////////////////// + // DATA_TYPE_CONTENT_SETTINGS +--- a/chrome/browser/chrome_content_browser_client.cc ++++ b/chrome/browser/chrome_content_browser_client.cc +@@ -6193,21 +6193,6 @@ ChromeContentBrowserClient::CreateURLLoa + result.push_back(std::move(signin_throttle)); + } + +- if (base::FeatureList::IsEnabled( +- net::features::kEnablePrivateVerificationTokens) && +- request.is_outermost_main_frame) { +- if (auto* pvt_service = +- PrivateVerificationTokensServiceFactory::GetForProfile(profile)) { +- auto url_loader_factory = profile->GetDefaultStoragePartition() +- ->GetURLLoaderFactoryForBrowserProcess(); +- if (auto pvt_throttle = +- PrivateVerificationTokensURLLoaderThrottle::Create( +- pvt_service, profile->GetWeakPtr(), +- std::move(url_loader_factory))) { +- result.push_back(std::move(pvt_throttle)); +- } +- } +- } + + if (auto contextual_tasks_throttle = + contextual_tasks::ContextualTasksURLLoaderThrottle::MaybeCreate( +--- a/chrome/browser/component_updater/BUILD.gn ++++ b/chrome/browser/component_updater/BUILD.gn +@@ -151,7 +151,6 @@ source_set("impl") { + "//chrome/browser/net", + "//chrome/browser/page_load_metrics", + "//chrome/browser/permissions", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/profiles:profile", + "//chrome/browser/update_client", + "//chrome/common", +@@ -167,7 +166,6 @@ source_set("impl") { + "//components/permissions", + "//components/privacy_sandbox:features", + "//components/privacy_sandbox/privacy_sandbox_attestations", +- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", + "//components/safe_browsing/core/common:features", + "//components/search", + "//components/security_interstitials/content:security_interstitial_page", +--- a/chrome/browser/component_updater/private_verification_tokens_installer.cc ++++ b/chrome/browser/component_updater/private_verification_tokens_installer.cc +@@ -25,32 +25,6 @@ namespace component_updater { + + void RegisterPrivateVerificationTokensComponentIfEnabled( + ComponentUpdateService* cus) { +- if (!base::FeatureList::IsEnabled( +- net::features::kEnablePrivateVerificationTokens)) { +- return; +- } +- +- auto installer = base::MakeRefCounted( +- std::make_unique( +- base::BindRepeating( +- [](scoped_refptr +- issuer_config) { +- PrivateVerificationTokensServiceFactory::SetGlobalIssuerConfig( +- issuer_config); +- if (g_browser_process && g_browser_process->profile_manager()) { +- for (Profile* profile : g_browser_process->profile_manager() +- ->GetLoadedProfiles()) { +- if (PrivateVerificationTokensService* service = +- PrivateVerificationTokensServiceFactory:: +- GetForProfileIfExists(profile)) { +- service->SetIssuerConfig(issuer_config); +- } +- } +- } +- }))); +- +- installer->Register(cus, base::OnceClosure()); + } + + } // namespace component_updater +--- a/chrome/browser/devtools/BUILD.gn ++++ b/chrome/browser/devtools/BUILD.gn +@@ -433,7 +433,6 @@ static_library("devtools") { + "//chrome/app:command_ids", + "//chrome/browser/badging", + "//chrome/browser/custom_handlers", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/ui:browser_window_header", + "//chrome/browser/ui/media_router", + "//chrome/browser/ui/startup", +@@ -446,7 +445,6 @@ static_library("devtools") { + "//components/origin_gating/core", + "//components/payments/content", + "//components/privacy_sandbox/privacy_sandbox_attestations", +- "//components/private_verification_tokens/common:private_verification_tokens_database", + "//components/security_state/content", + "//components/subresource_filter/content/browser", + "//components/web_package", +@@ -672,7 +670,6 @@ if (enable_devtools_frontend) { + "//chrome/browser/prefs:util", + "//chrome/browser/preloading:prefs", + "//chrome/browser/preloading:test_support", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/search_engines", + "//chrome/browser/sync/test/integration:sync_integration_test_support", + "//chrome/browser/ui/autofill", +@@ -683,7 +680,6 @@ if (enable_devtools_frontend) { + "//components/infobars/content", + "//components/javascript_dialogs", + "//components/language/core/browser", +- "//components/private_verification_tokens/common:private_verification_tokens_token", + "//components/ukm:test_support", + "//content/test:test_support", + "//testing/gtest", +--- a/chrome/browser/devtools/protocol/storage_handler.cc ++++ b/chrome/browser/devtools/protocol/storage_handler.cc +@@ -9,54 +9,22 @@ + #include + #include + +-#include "base/base64.h" + #include "base/check.h" +-#include "base/strings/string_number_conversions.h" + #include "chrome/browser/browser_process.h" + #include "chrome/browser/devtools/protocol/protocol.h" + #include "chrome/browser/devtools/protocol/storage.h" +-#include "chrome/browser/private_verification_tokens/private_verification_tokens_service.h" +-#include "chrome/browser/private_verification_tokens/private_verification_tokens_service_factory.h" +-#include "chrome/browser/profiles/profile.h" + #include "chrome/browser/profiles/profile_manager.h" +-#include "components/private_verification_tokens/common/private_verification_tokens_database.h" + #include "content/public/browser/btm_service.h" + #include "content/public/browser/web_contents.h" +-#include "url/gurl.h" +-#include "url/origin.h" +- +-namespace { +- +-PrivateVerificationTokensService* GetPrivateVerificationTokensService( +- content::WebContents* web_contents) { +- if (!web_contents) { +- return nullptr; +- } +- Profile* profile = +- Profile::FromBrowserContext(web_contents->GetBrowserContext()); +- if (!profile) { +- return nullptr; +- } +- return PrivateVerificationTokensServiceFactory::GetForProfile(profile); +-} +- +-} // namespace + + StorageHandler::StorageHandler(content::WebContents* web_contents, + protocol::UberDispatcher* dispatcher) + : web_contents_(web_contents->GetWeakPtr()) { +- frontend_ = +- std::make_unique(dispatcher->channel()); + protocol::Storage::Dispatcher::wire(dispatcher, this); + } + + StorageHandler::~StorageHandler() = default; + +-protocol::Response StorageHandler::Disable() { +- pvt_observation_.Reset(); +- return protocol::Response::FallThrough(); +-} +- + // TODO: crbug.com/380896828 - move CDP support for BTM to //content. + void StorageHandler::RunBounceTrackingMitigations( + std::unique_ptr callback) { +@@ -82,152 +50,3 @@ void StorageHandler::GotDeletedSites( + std::make_unique>(sites); + callback->sendSuccess(std::move(deleted_sites)); + } +- +-void StorageHandler::GetPrivateVerificationTokens( +- std::unique_ptr callback) { +- PrivateVerificationTokensService* pvt_service = +- GetPrivateVerificationTokensService(web_contents_.get()); +- if (!pvt_service) { +- callback->sendFailure(protocol::Response::ServerError( +- "Private Verification Tokens service is not available")); +- return; +- } +- +- pvt_service->GetAllTokens(base::BindOnce( +- [](std::unique_ptr callback, +- std::vector tokens) { +- auto result = std::make_unique< +- protocol::Array>(); +- for (const auto& item : tokens) { +- result->push_back( +- protocol::Storage::PrivateVerificationToken::Create() +- .SetId(base::NumberToString(item.id)) +- .SetIssuerOrigin(item.token.issuer().Serialize()) +- .SetKeyId(static_cast(item.token.key_id())) +- .SetExpiration( +- item.token.expiration().InSecondsFSinceUnixEpoch()) +- .SetCreationTime( +- item.token.creation_time().InSecondsFSinceUnixEpoch()) +- .SetVersion(static_cast(item.token.version())) +- .SetToken(base::Base64Encode(item.token.token())) +- .Build()); +- } +- callback->sendSuccess(std::move(result)); +- }, +- std::move(callback))); +-} +- +-protocol::Response StorageHandler::GetPrivateVerificationTokensIssuerConfigs( +- std::unique_ptr>* +- out_configs) { +- PrivateVerificationTokensService* pvt_service = +- GetPrivateVerificationTokensService(web_contents_.get()); +- if (!pvt_service) { +- return protocol::Response::ServerError( +- "Private Verification Tokens service is not available"); +- } +- +- auto configs = std::make_unique>(); +- scoped_refptr< +- const private_verification_tokens::PrivateVerificationTokensIssuerConfig> +- issuer_config = pvt_service->issuer_config(); +- if (issuer_config) { +- for (const auto& [issuer_origin, config] : issuer_config->config()) { +- auto redeemer_origins = +- std::make_unique>(); +- for (const url::Origin& redeemer : config.redeemers) { +- redeemer_origins->push_back(redeemer.Serialize()); +- } +- configs->push_back( +- protocol::Storage::PrivateVerificationTokensIssuerConfig::Create() +- .SetIssuerOrigin(issuer_origin.Serialize()) +- .SetRedeemerOrigins(std::move(redeemer_origins)) +- .Build()); +- } +- } +- +- *out_configs = std::move(configs); +- return protocol::Response::Success(); +-} +- +-void StorageHandler::ClearPrivateVerificationTokens( +- const std::string& in_issuerOrigin, +- std::unique_ptr callback) { +- PrivateVerificationTokensService* pvt_service = +- GetPrivateVerificationTokensService(web_contents_.get()); +- if (!pvt_service) { +- callback->sendFailure(protocol::Response::ServerError( +- "Private Verification Tokens service is not available")); +- return; +- } +- +- url::Origin issuer_origin = url::Origin::Create(GURL(in_issuerOrigin)); +- if (issuer_origin.opaque()) { +- callback->sendFailure( +- protocol::Response::InvalidParams("Invalid issuer origin")); +- return; +- } +- +- pvt_service->DeleteTokens( +- base::Time::Min(), base::Time::Max(), +- base::BindOnce(&ClearPrivateVerificationTokensCallback::sendSuccess, +- std::move(callback)), +- std::vector{issuer_origin}); +-} +- +-void StorageHandler::DeletePrivateVerificationToken( +- const std::string& in_tokenId, +- std::unique_ptr callback) { +- PrivateVerificationTokensService* pvt_service = +- GetPrivateVerificationTokensService(web_contents_.get()); +- if (!pvt_service) { +- callback->sendFailure(protocol::Response::ServerError( +- "Private Verification Tokens service is not available")); +- return; +- } +- +- int64_t token_id = 0; +- if (!base::StringToInt64(in_tokenId, &token_id)) { +- callback->sendFailure( +- protocol::Response::InvalidParams("Invalid token ID")); +- return; +- } +- +- pvt_service->DeleteToken( +- token_id, +- base::BindOnce(&DeletePrivateVerificationTokenCallback::sendSuccess, +- std::move(callback))); +-} +- +-protocol::Response StorageHandler::SetPrivateVerificationTokensTracking( +- bool enable) { +- PrivateVerificationTokensService* pvt_service = +- GetPrivateVerificationTokensService(web_contents_.get()); +- if (!pvt_service) { +- return protocol::Response::ServerError( +- "Private Verification Tokens service is not available"); +- } +- +- if (enable) { +- if (!pvt_observation_.IsObserving()) { +- pvt_observation_.Observe(pvt_service); +- } +- } else { +- pvt_observation_.Reset(); +- } +- return protocol::Response::Success(); +-} +- +-void StorageHandler::OnTokensStored() { +- frontend_->PrivateVerificationTokensUpdated(); +-} +- +-void StorageHandler::OnTokensDeleted() { +- frontend_->PrivateVerificationTokensUpdated(); +-} +- +-void StorageHandler::OnShutdown() { +- pvt_observation_.Reset(); +-} +--- a/chrome/browser/devtools/protocol/storage_handler.h ++++ b/chrome/browser/devtools/protocol/storage_handler.h +@@ -5,22 +5,15 @@ + #ifndef CHROME_BROWSER_DEVTOOLS_PROTOCOL_STORAGE_HANDLER_H_ + #define CHROME_BROWSER_DEVTOOLS_PROTOCOL_STORAGE_HANDLER_H_ + +-#include +-#include +-#include +- + #include "base/memory/weak_ptr.h" +-#include "base/scoped_observation.h" + #include "chrome/browser/devtools/protocol/protocol.h" + #include "chrome/browser/devtools/protocol/storage.h" +-#include "chrome/browser/private_verification_tokens/private_verification_tokens_service.h" + + namespace content { + class WebContents; + } // namespace content + +-class StorageHandler : public protocol::Storage::Backend, +- public PrivateVerificationTokensService::Observer { ++class StorageHandler : public protocol::Storage::Backend { + public: + StorageHandler(content::WebContents* web_contents, + protocol::UberDispatcher* dispatcher); +@@ -31,41 +24,14 @@ class StorageHandler : public protocol:: + ~StorageHandler() override; + + private: +- protocol::Response Disable() override; +- + void RunBounceTrackingMitigations( + std::unique_ptr callback) override; + +- void GetPrivateVerificationTokens( +- std::unique_ptr callback) override; +- protocol::Response GetPrivateVerificationTokensIssuerConfigs( +- std::unique_ptr>* +- out_configs) override; +- void ClearPrivateVerificationTokens( +- const std::string& in_issuerOrigin, +- std::unique_ptr callback) +- override; +- void DeletePrivateVerificationToken( +- const std::string& in_tokenId, +- std::unique_ptr callback) +- override; +- protocol::Response SetPrivateVerificationTokensTracking(bool enable) override; +- +- // PrivateVerificationTokensService::Observer: +- void OnTokensStored() override; +- void OnTokensDeleted() override; +- void OnShutdown() override; +- + static void GotDeletedSites( + std::unique_ptr callback, + const std::vector& sites); + + base::WeakPtr web_contents_; +- std::unique_ptr frontend_; +- base::ScopedObservation +- pvt_observation_{this}; + }; + + #endif // CHROME_BROWSER_DEVTOOLS_PROTOCOL_STORAGE_HANDLER_H_ +--- a/chrome/browser/private_verification_tokens/BUILD.gn ++++ b/chrome/browser/private_verification_tokens/BUILD.gn +@@ -8,9 +8,7 @@ static_library("private_verification_tok + "//chrome/browser:*", + "//chrome/browser/browsing_data:*", + "//chrome/browser/component_updater:*", +- "//chrome/browser/devtools:*", + "//chrome/browser/profiles:profiles_extra_parts_impl", +- "//chrome/test:*", + ] + + sources = [ +@@ -28,12 +26,6 @@ static_library("private_verification_tok + "//chrome/browser/profiles:profile", + "//components/content_settings/core/browser", + "//components/keyed_service/core", +- "//components/private_verification_tokens/common:privacy_pass_athm_batch_request", +- "//components/private_verification_tokens/common:private_verification_tokens_fetcher", +- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", +- "//components/private_verification_tokens/common:private_verification_tokens_metrics", +- "//components/private_verification_tokens/common:private_verification_tokens_parameters", +- "//components/private_verification_tokens/common:private_verification_tokens_store", + "//content/public/browser", + "//net", + "//services/network/public/cpp", +@@ -53,10 +45,6 @@ source_set("browser_tests") { + "//chrome/test:test_support", + "//chrome/test/base:chrome_test_utils", + "//components/content_settings/core/common", +- "//components/private_verification_tokens/common:private_verification_tokens_database", +- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", +- "//components/private_verification_tokens/common:test_support", +- "//components/private_verification_tokens/common/athm_ffi:athm_ffi_bindings", + "//net:test_support", + "//services/network:test_support", + "//url", +@@ -77,13 +65,6 @@ source_set("unit_tests") { + "//chrome/test:test_support", + "//components/content_settings/core/browser", + "//components/content_settings/core/common", +- "//components/private_verification_tokens/common:privacy_pass_athm_batch_request", +- "//components/private_verification_tokens/common:private_verification_tokens_database", +- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", +- "//components/private_verification_tokens/common:private_verification_tokens_metrics", +- "//components/private_verification_tokens/common:private_verification_tokens_parameters", +- "//components/private_verification_tokens/common:test_support", +- "//components/private_verification_tokens/common/athm_ffi:athm_ffi_bindings", + "//content/test:test_support", + "//net", + "//services/network:test_support", +--- a/chrome/browser/profiles/BUILD.gn ++++ b/chrome/browser/profiles/BUILD.gn +@@ -811,7 +811,6 @@ source_set("profiles_extra_parts_impl") + "//chrome/browser/privacy_sandbox:headers", + "//chrome/browser/private_ai", + "//chrome/browser/private_insights", +- "//chrome/browser/private_verification_tokens", + "//chrome/browser/push_messaging", + "//chrome/browser/reading_list", + "//chrome/browser/reduce_accept_language", +--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc ++++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +@@ -1360,7 +1360,6 @@ void ChromeBrowserMainExtraPartsProfiles + PrivacyMetricsServiceFactory::GetInstance(); + PrivacySandboxServiceFactory::GetInstance(); + PrivacySandboxSettingsFactory::GetInstance(); +- PrivateVerificationTokensServiceFactory::GetInstance(); + private_ai::PrivateAiServiceFactory::GetInstance(); + ProfileNetworkContextServiceFactory::GetInstance(); + ProfilePasswordStoreFactory::GetInstance(); +--- a/chrome/test/BUILD.gn ++++ b/chrome/test/BUILD.gn +@@ -1869,8 +1869,6 @@ if (!is_android) { + "//chrome/browser/privacy_sandbox:headers", + "//chrome/browser/privacy_sandbox:test_support", + "//chrome/browser/private_ai", +- "//chrome/browser/private_verification_tokens", +- "//chrome/browser/private_verification_tokens:browser_tests", + "//chrome/browser/profile_resetter", + "//chrome/browser/profile_resetter:browser_tests", + "//chrome/browser/profiles", +@@ -5043,7 +5041,6 @@ test("unit_tests") { + "//chrome/browser/preloading/prerender:unit_tests", + "//chrome/browser/privacy_sandbox:unit_tests", + "//chrome/browser/private_ai:unit_tests", +- "//chrome/browser/private_verification_tokens:unit_tests", + "//chrome/browser/profiles", + "//chrome/browser/profiles:misc", + "//chrome/browser/profiles:profile_downloader", +--- a/components/BUILD.gn ++++ b/components/BUILD.gn +@@ -313,7 +313,6 @@ test("components_unittests") { + "//components/power_metrics:unit_tests", + "//components/prefs:unit_tests", + "//components/privacy_sandbox:unit_tests", +- "//components/private_verification_tokens:unit_tests", + "//components/profile_metrics:unit_tests", + "//components/proto_extras:unit_tests", + "//components/proxy_config:unit_tests", +--- a/components/component_updater/installer_policies/BUILD.gn ++++ b/components/component_updater/installer_policies/BUILD.gn +@@ -38,7 +38,6 @@ static_library("installer_policies_no_co + "//components/lookalikes/core:proto", + "//components/lookalikes/core:safety_tips", + "//components/prefs", +- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", + "//components/update_client", + "//mojo/public/cpp/base:protobuf_support", + "//services/network/public/cpp", +@@ -106,8 +105,6 @@ source_set("unit_tests") { + "//components/history_embeddings/core", + "//components/optimization_guide/core", + "//components/optimization_guide/proto:optimization_guide_proto", +- "//components/private_verification_tokens/common:private_verification_tokens_issuer_config", +- "//components/private_verification_tokens/common:test_support", + "//mojo/public/cpp/base:protobuf_support", + "//services/network/public/cpp", + "//testing/gmock", diff --git a/srcpkgs/chromium/patches/chromium-156-unbundle-icu-remoting.patch b/srcpkgs/chromium/patches/chromium-156-unbundle-icu-remoting.patch new file mode 100644 index 00000000000000..0d44aea790996c --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-156-unbundle-icu-remoting.patch @@ -0,0 +1,21 @@ +From 98285095e4e04bedf27fcf88b23dcd8cbf756a4b Mon Sep 17 00:00:00 2001 +From: LN Liberda +Date: Mon, 28 Sep 2026 16:23:51 +0200 +Subject: [PATCH] Fix build with unbundled icu + +--- + remoting/host/installer/linux/BUILD.gn | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/remoting/host/installer/linux/BUILD.gn b/remoting/host/installer/linux/BUILD.gn +index 1ff0030672b97..f1cb6292ebff6 100644 +--- a/remoting/host/installer/linux/BUILD.gn ++++ b/remoting/host/installer/linux/BUILD.gn +@@ -82,7 +82,6 @@ if (enable_me2me_host && target_cpu == "x64") { + "//remoting/host/linux/wireplumber.conf.template", + "//remoting/resources/chromoting128.png", + "$root_gen_dir/remoting/CREDITS.txt", +- "$root_out_dir/icudtl.dat", + "$root_out_dir/libremoting_core.so", + "$root_out_dir/remoting_migrate_host", + "$root_out_dir/remote_assistance_host", diff --git a/srcpkgs/chromium/patches/chromium-148-v8-no-san-trap.patch b/srcpkgs/chromium/patches/chromium-156-v8-no-san-trap.patch similarity index 69% rename from srcpkgs/chromium/patches/chromium-148-v8-no-san-trap.patch rename to srcpkgs/chromium/patches/chromium-156-v8-no-san-trap.patch index f90258a9798e50..8012698a33ffb0 100644 --- a/srcpkgs/chromium/patches/chromium-148-v8-no-san-trap.patch +++ b/srcpkgs/chromium/patches/chromium-156-v8-no-san-trap.patch @@ -1,39 +1,39 @@ -From c2a290c80bcf93d506c377f44e426ebbb5f16e36 Mon Sep 17 00:00:00 2001 +From d44d5bdc2c97f0a491c73f38e868823c4913f05b Mon Sep 17 00:00:00 2001 From: LN Liberda -Date: Sat, 4 Apr 2026 23:23:29 +0200 +Date: Mon, 28 Sep 2026 17:12:13 +0200 Subject: [PATCH] Not sanitizing. -I think partial sanitizers are causing this to trigger. Fails to link. +Fails to link. Rebased for 8072 --- src/sandbox/testing.cc | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/v8/src/sandbox/testing.cc b/v8/src/sandbox/testing.cc -index 99346c55..ffb86e7e 100644 +index 88283ae8f83..ee3539bff95 100644 --- a/v8/src/sandbox/testing.cc +++ b/v8/src/sandbox/testing.cc -@@ -850,13 +850,6 @@ void UninstallCrashFilter() { +@@ -1096,13 +1096,6 @@ void UninstallCrashFilter() { for (int signal : kSignalsToHandle) { sigaction(signal, &g_old_handlers[signal], nullptr); } - - // We should also uninstall the sanitizer death callback as our crash filter -- // may hand a crash over to sanitizers, which should then not enter our crash -- // filtering logic a second time. +- // may hand a crash over to sanitizers, which should then not print the +- // sandbox violation message a second time. -#ifdef V8_USE_ANY_SANITIZER - __sanitizer_set_death_callback(nullptr); -#endif // V8_USE_ANY_SANITIZER } void ForwardToOldHandler(int signal, siginfo_t* info, void* context) { -@@ -1133,15 +1126,6 @@ void InstallCrashFilter() { +@@ -1479,15 +1472,6 @@ void InstallCrashFilter() { success &= (sigaction(signal, &action, &g_old_handlers[signal]) == 0); } CHECK(success); - -#ifdef V8_USE_ANY_SANITIZER -- // We install sanitizer specific crash handlers. These can only check for -- // in-sandbox crashes on certain configurations. +- // We install a sanitizer death callback. For ASan, this will check the flag +- // set by __asan_on_error to determine if the fault was harmless. - // - // The crash handler also resets the signal handler as sanitizer may use - // `abort()` via `abort_on_error=1` option to signal problems. diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index f8d39c573d9aa1..af7401a058b544 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,14 +1,16 @@ # Template file for 'chromium' pkgname=chromium # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version -version=155.0.8059.39 +version=156.0.8078.73 revision=1 archs="i686* x86_64* aarch64* armv7l*" -_llvmver=22 +_llvmver=23 +# grep 'CRUBIT_REVISION =' masterdir-*/builddir/chromium-*/tools/rust/update_rust.py +_crubit_rev=a355b02da81bc9f350925c73ec0322ce4d5140f1 hostmakedepends=" - $(vopt_if clang "clang${_llvmver} lld${_llvmver} llvm${_llvmver} compiler-rt${_llvmver}") + $(vopt_if clang "clang${_llvmver} lld${_llvmver} llvm${_llvmver} clang${_llvmver}-headers compiler-rt${_llvmver}") bison git gperf hwids ninja nodejs perl pkg-config python3 - libepoxy-devel libglib-devel rust rust-bindgen esbuild + libepoxy-devel libglib-devel cargo rust rust-src rust-bindgen esbuild go gn $(vopt_if qt6 qt6-base)" makedepends=" alsa-lib-devel libdav1d-devel brotli-devel cups-devel elfutils-devel @@ -33,8 +35,12 @@ homepage="https://www.chromium.org/" # distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz" # distfiles="https://chromium-tarballs.distfiles.gentoo.org/chromium-${version}.tar.xz" # distfiles="https://chromium.googlesource.com/chromium/src.git/+archive/refs/tags/${version}.tar.gz" -distfiles="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${version}/chromium-${version}-linux.tar.xz" -checksum="b84bbab0eef2dd4abd73544a95f15dd2c3c815980c4fa47496f3d0ce4f8a2aa7" +distfiles="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${version}/chromium-${version}-linux.tar.xz + https://github.com/google/crubit/archive/${_crubit_rev}.tar.gz>crubit-${_crubit_rev}.tar.gz" +checksum="bb701465f0d3991e7266d24add8b0d39e202a1f209a5b169387785326b0d079a + a7d9149cdbe49a4ca49074d5b80ca3afd572bb5f7aa45b1eb15a5bd424ba292d" + +skip_extraction="crubit-${_crubit_rev}.tar.gz" lib32disabled=yes @@ -82,6 +88,10 @@ if [ "$build_option_qt6" ]; then subpackages+=" chromium-qt6" fi +post_extract() { + vsrcextract -C third_party/rust-toolchain-intermediate/crubit "crubit-${_crubit_rev}.tar.gz" +} + post_patch() { if [ "$XBPS_TARGET_LIBC" = "musl" ]; then for f in "${FILESDIR}"/musl-patches/*.patch; do @@ -115,6 +125,17 @@ post_patch() { ln -sv /usr/bin/gperf third_party/gperf/cipd/bin/gperf rm -v buildtools/linux64/gn + + # mkdir -p third_party/rust-toolchain/lib/third_party + # ln -rsv third_party/rust-toolchain-intermediate/crubit third_party/rust-toolchain/lib/third_party/crubit + + mkdir -p third_party/rust-toolchain/bin + ln -sv /usr/bin/cargo third_party/rust-toolchain/bin/ + ln -sv /usr/bin/rustc third_party/rust-toolchain/bin/ + ln -sv /usr/bin/rustfmt third_party/rust-toolchain/bin/ + + mkdir -p third_party/rust-toolchain/lib/rustlib + ln -rsv /usr/lib/rustlib third_party/rust-toolchain/lib/rustlib } _setup_clang() { @@ -172,6 +193,19 @@ do_configure() { CFLAGS=$CFLAGS_FOR_BUILD CXXFLAGS=$CXXFLAGS_FOR_BUILD LDFLAGS=$LDFLAGS_FOR_BUILD \ tools/gn/bootstrap/bootstrap.py ${makejobs} --skip-generate-buildfiles fi + if false; then + RUSTC_BOOTSTRAP=1 python3 ./tools/rust/build_crubit.py --skip-checkout + + rustc -V >third_party/rust-toolchain/VERSION + rustc -V >third_party/rust-toolchain/INSTALLED_VERSION + + ( + cd tools/crates/gnrt + cargo build --locked --release + ) + + ./tools/crates/gnrt/target/release/gnrt gen --for-std third_party/rust-toolchain/lib/rustlib/src/rust + fi # Use system-provided libraries. # TODO: use_system_hunspell (upstream changes needed). @@ -229,7 +263,7 @@ do_configure() { "use_lld=$(vopt_if clang true false)" 'clang_use_chrome_plugins=false' 'clang_base_path="/usr"' - "clang_cross_path=\"${XBPS_CROSS_BASE}\"" + "clang_cross_path=\"${XBPS_CROSS_BASE}/usr/lib/llvm/${_llvmver}\"" "clang_version=\"${clang_version%%.*}\"" 'use_clang_modules=false' # not yet supported with void's libcxx diff --git a/srcpkgs/gn/template b/srcpkgs/gn/template index 19e97c2a195325..ad0655d4314a67 100644 --- a/srcpkgs/gn/template +++ b/srcpkgs/gn/template @@ -1,8 +1,8 @@ # Template file for 'gn' pkgname=gn -version=0.0.20260830 +version=0.0.20261022 revision=1 -_commit=d71c4a70bd2ece461a09cbd6321970b9247fdab2 +_commit=d78676b2abbd0d124d1ad97f180ed156ead07a3a create_wrksrc=yes hostmakedepends="python3 ninja" short_desc="Meta-build system that generates build files for Ninja" @@ -10,7 +10,7 @@ maintainer="Duncaen " license="BSD-3-Clause" homepage="https://gn.googlesource.com/gn" distfiles="https://gn.googlesource.com/gn/+archive/${_commit}.tar.gz" -checksum=@818a09586de72275e9d7c3c29f1b979a3cebca8785c7ed919f57b0fc09ada908 +checksum=@dd57407ff8c075fbee0f65493996bf1fdf591e77c026a8cb02cf2961b4b6c00d do_configure() { cat <<-EOF >src/gn/last_commit_position.h diff --git a/srcpkgs/rust-bindgen/template b/srcpkgs/rust-bindgen/template index 9aa8242ce82bbf..53d2e746ba02c6 100644 --- a/srcpkgs/rust-bindgen/template +++ b/srcpkgs/rust-bindgen/template @@ -1,20 +1,20 @@ # Template file for 'rust-bindgen' pkgname=rust-bindgen -version=0.72.1 +version=0.73.2 revision=1 -_llvmver=21 +_llvmver=23 build_style="cargo" configure_args="--bins" make_install_args="--path bindgen-cli" depends="libclang${_llvmver}" checkdepends="libclang${_llvmver}" short_desc="Tool to generate Rust FFI bindings to C (and some C++) libraries" -maintainer="Erick Vilcica " +maintainer="Duncaen " license="BSD-3-Clause" homepage="https://rust-lang.github.io/rust-bindgen/" changelog="https://raw.githubusercontent.com/rust-lang/rust-bindgen/master/CHANGELOG.md" distfiles="https://github.com/rust-lang/rust-bindgen/archive/refs/tags/v${version}.tar.gz" -checksum=4ffb17061b2d71f19c5062d2e17e64107248f484f9775c0b7d30a16a8238dfd1 +checksum=5fc3277dd334e4bbbd7bdb8cad5d4fb87a667b2e95a2bae350a8d5424c280629 post_install() { vlicense LICENSE