Closed Ahrotahn closed 1 week ago
Side-note: The tarballs for 130 were delayed due to failures of tarball builds for 131. The failure was fixed in 132, so as far as I can tell this means that there may not be any tarballs available at all for 131.
There seems to be an issue with windows-fix-building-without-safebrowsing.patch
from the Windows repository when building this PR - the patch doesn't apply cleanly. I have a fix for that but not sure whether it's correct - I've removed some of the switch cases, building now to verify.
I already fixed that platform patch and I am waiting for compiling to complete.
@teeminus would you mind sharing the updated patch? Mine just blew out after 6h building :/
@Ahrotahn I got the following linking error:
FAILED: chrome.dll chrome.dll.lib chrome.dll.pdb
..\..\third_party\llvm-build\Release+Asserts\bin\lld-link.exe "/OUT:./chrome.dll" /nologo -libpath:..\..\third_party\llvm-build\Release+Asserts\lib\clang\20\lib\windows "-libpath:../../../../../Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/ATLMFC/lib/x64" "-libpath:../../../../../Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/lib/x64" "-libpath:../../../../../Program Files (x86)/Windows Kits/10/lib/10.0.22621.0/ucrt/x64" "-libpath:../../../../../Program Files (x86)/Windows Kits/10/lib/10.0.22621.0/um/x64" /MACHINE:X64 "/IMPLIB:./chrome.dll.lib" /DLL "/PDB:./chrome.dll.pdb" "@./chrome.dll.rsp"
lld-link: error: undefined symbol: public: __cdecl enterprise_connectors::ContentAnalysisDelegate::Data::Data(void)
>>> referenced by ../../chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
>>> obj/chrome/browser/ui/tab_contents/impl/chrome_web_contents_view_handle_drop.obj
lld-link: error: undefined symbol: public: static bool __cdecl enterprise_connectors::ContentAnalysisDelegate::IsEnabled(class Profile *, class GURL, struct enterprise_connectors::ContentAnalysisDelegate::Data *, enum enterprise_connectors::AnalysisConnector)
>>> referenced by ../../chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
>>> obj/chrome/browser/ui/tab_contents/impl/chrome_web_contents_view_handle_drop.obj
lld-link: error: undefined symbol: public: __cdecl enterprise_connectors::ContentAnalysisDelegate::Data::Data(struct enterprise_connectors::ContentAnalysisDelegate::Data &&)
>>> referenced by ../../chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
>>> obj/chrome/browser/ui/tab_contents/impl/chrome_web_contents_view_handle_drop.obj
lld-link: error: undefined symbol: public: __cdecl enterprise_connectors::ContentAnalysisDelegate::Data::~Data(void)
>>> referenced by ../../chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
>>> obj/chrome/browser/ui/tab_contents/impl/chrome_web_contents_view_handle_drop.obj
lld-link: error: undefined symbol: public: static void __cdecl enterprise_connectors::ContentAnalysisDelegate::CreateForWebContents(class content::WebContents *, struct enterprise_connectors::ContentAnalysisDelegate::Data, class base::OnceCallback<void __cdecl(struct enterprise_connectors::ContentAnalysisDelegate::Data const &, struct enterprise_connectors::ContentAnalysisDelegate::Result &)>, enum safe_browsing::DeepScanAccessPoint)
>>> referenced by ../../chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
>>> obj/chrome/browser/ui/tab_contents/impl/chrome_web_contents_view_handle_drop.obj
I fixed it by excluding chrome_web_contents_view_handle_drop.cc
from the list of files to compile but I am not quite sure if this is the correct approach or if my patch is correct/complete:
--- a/chrome/browser/ui/tab_contents/BUILD.gn
+++ b/chrome/browser/ui/tab_contents/BUILD.gn
@@ -50,7 +50,6 @@ source_set("impl") {
if (is_win || is_mac || is_linux || is_chromeos) {
sources += [
"chrome_web_contents_menu_helper.cc",
- "chrome_web_contents_view_handle_drop.cc",
]
}
That's correct, we had that removed previously but [5903969] moved it and I forgot to add a removal for the the new location. We had the header removed as well but I guess that wasn't necessary.
I'll update the PR with the change in a bit.
Problem solved, thank you very much š
@teeminus the update for windows-fix-building-without-safebrowsing.patch
is still required?
Builds and runs fine on windows.
@teeminus the update for
windows-fix-building-without-safebrowsing.patch
is still required?
Yes, the patch needs to be updated. Iirc the patch does not apply completely because there are some minor changes in the source files which were straight forward to adapt.
Is the updated Windows patch available? I'm working on a build restoring some JS APIs and this piece is missing to complete M131 build for me.
I usually push my changes for for windows repo once the PR in this repo has been merged. Otherwise there would be an inconsistency as patches and submodule do not match.
In a few days, this PR will we merged. If that's to late I can push my changes without updating the submodule so you would have to manually replace it with the state of this PR.
I already have ungoogled-chromium and ungoogled-chromium-windows forked with the submodule in the Windows repo pointed to my fork. It would be appreciated if you could share the updated patch as a gist or just in a comment. šš»
clones, builds and runs fine for portable linux
@lofcz I pushed the patches for .69 to my update branch.
I'm seeing
ninja: error: '../../chrome/browser/resources/media/mei_preload/preloaded_data.pb', needed by 'phony/chrome/browser/resources/media/mei_preload/component_bundle', missing and no known rule to make it
when building for macOS.
It used clone to fetch the source, but the chrome/browser/resources/media/mei_preload/preloaded_data.pb
is indeed missing.
I don't have much free time to figure it out now, so I'll look deeper into this later.
It seems they added a new dependency for macOS in [5906628]. See if this change is all that's needed, if so then we should add that to disable-mei-preload.patch:
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -1212,7 +1212,6 @@
":optimization_guide_library",
":swiftshader_binaries",
":widevine_cdm_library",
- "//chrome/browser/resources/media/mei_preload:component_bundle",
"//components/privacy_sandbox/privacy_sandbox_attestations/preload:component_bundle",
]
It seems they added a new dependency for macOS in [5906628]. See if this change is all that's needed, if so then we should add that to disable-mei-preload.patch:
--- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -1212,7 +1212,6 @@ ":optimization_guide_library", ":swiftshader_binaries", ":widevine_cdm_library", - "//chrome/browser/resources/media/mei_preload:component_bundle", "//components/privacy_sandbox/privacy_sandbox_attestations/preload:component_bundle", ]
Another error came up:
ninja: error: '../../components/privacy_sandbox/privacy_sandbox_attestations/preload/privacy-sandbox-attestations.dat', needed by 'phony/components/privacy_sandbox/privacy_sandbox_attestations/preload/component_bundle', missing and no known rule to make it
so I changed the patch to
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -1212,8 +1212,6 @@ if (is_win) {
":optimization_guide_library",
":swiftshader_binaries",
":widevine_cdm_library",
- "//chrome/browser/resources/media/mei_preload:component_bundle",
- "//components/privacy_sandbox/privacy_sandbox_attestations/preload:component_bundle",
]
if (is_chrome_branded) {
Currently building [18966/51341]
, will come back if have other issues.
It seems they added a new dependency for macOS in [5906628]. See if this change is all that's needed, if so then we should add that to disable-mei-preload.patch:
--- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -1212,7 +1212,6 @@ ":optimization_guide_library", ":swiftshader_binaries", ":widevine_cdm_library", - "//chrome/browser/resources/media/mei_preload:component_bundle", "//components/privacy_sandbox/privacy_sandbox_attestations/preload:component_bundle", ]
Another error came up:
ninja: error: '../../components/privacy_sandbox/privacy_sandbox_attestations/preload/privacy-sandbox-attestations.dat', needed by 'phony/components/privacy_sandbox/privacy_sandbox_attestations/preload/component_bundle', missing and no known rule to make it
so I changed the patch to
--- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -1212,8 +1212,6 @@ if (is_win) { ":optimization_guide_library", ":swiftshader_binaries", ":widevine_cdm_library", - "//chrome/browser/resources/media/mei_preload:component_bundle", - "//components/privacy_sandbox/privacy_sandbox_attestations/preload:component_bundle", ] if (is_chrome_branded) {
Currently building
[18966/51341]
, will come back if have other issues.
Can confirm that the change above (that removes two depedencies) is all changes needed to make it build on macOS (arm64). /cc @Ahrotahn
Good to know! I guess the easiest route for now would be to include those changes as a platform patch. Next time we do an update those changes should probably be moved into the disable-mei-preload and disable-privacy-sandbox patches in the core repo.
Another issue appeared on GitHub Action runner:
[10171/50939] OBJCXX obj/ui/events/events_base/keyboard_code_conversion_mac.o
FAILED: obj/ui/events/events_base/keyboard_code_conversion_mac.o
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/ui/events/events_base/keyboard_code_conversion_mac.o.d -DEVENTS_BASE_IMPLEMENTATION -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DCR_XCODE_VERSION=1501 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=6a68fd412b9aecd515a20a7cf84d11b598bfaf96 -DTEMP_REBUILD_HACK -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DCR_CXX_INCLUDE=\"third_party/rust/chromium_crates_io/vendor/cxx-1.0.128/include/cxx.h\" -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -femit-dwarf-unwind=no-compact-unwind -fcolor-diagnostics -fmerge-all-constants -fno-sized-deallocation -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -mllvm -split-threshold-for-reg-with-hint=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -mllvm -inlinehint-threshold=360 -fwhole-program-vtables -fcomplete-member-pointers --target=x86_64-apple-macos -Wno-unknown-warning-option -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fno-math-errno -fno-omit-frame-pointer -g0 -isysroot ../../../../../../../../../Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -mmacos-version-min=11.0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -DPROTOBUF_ALLOW_DEPRECATED=1 -Wimplicit-retain-self -Wobjc-missing-property-synthesis -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fobjc-arc -fno-objc-arc-exceptions -fvisibility-inlines-hidden -c ../../ui/events/keycodes/keyboard_code_conversion_mac.mm -o obj/ui/events/events_base/keyboard_code_conversion_mac.o
../../ui/events/keycodes/keyboard_code_conversion_mac.mm:150:8: error: use of undeclared identifier 'kVK_ContextualMenu'
150 | {kVK_ContextualMenu, DomKey::CONTEXT_MENU},
| ^
1 error generated.
and it was not there when building locally...
It seems that kVK_ContextualMenu
wasn't added until macOS 15, so you would either need to update the action to use a newer version or include a new patch that reverts the change in [5894764].
It seems that
kVK_ContextualMenu
wasn't added until macOS 15, so you would either need to update the action to use a newer version or include a new patch that reverts the change in [5894764].
Thanks for the information, I am super busy during these days, I'll take a closer look later.
I can't test this but __MAC_OS_X_VERSION_MAX_ALLOWED
should be set to the version of the SDK you're building with. So as an alternative, if you want to support older versions, you could handle the problem by adding a patch with something like this:
--- a/ui/events/keycodes/keyboard_code_conversion_mac.mm
+++ b/ui/events/keycodes/keyboard_code_conversion_mac.mm
@@ -48,6 +48,11 @@
return base::IsValidCodepoint(c) && !base::IsUnicodeControl(c);
}
+#if (__MAC_OS_X_VERSION_MAX_ALLOWED < 150000)
+constexpr int kVK_RightCommand = 0x36;
+constexpr int kVK_ContextualMenu = 0x6E;
+#endif
+
bool IsKeypadOrNumericKeyEvent(NSEvent* event) {
// Check that this is the type of event that has a keyCode.
switch (event.type) {
This PR Updates to Chromium 131.0.6778.69.
Notes:
There were new additions to the extensions-manifestv2 patch for [588911] and [5870920]
The pruned-binaries patch had removals for [5894450] and new additions for [5739036]
The safebrowsing patch had changes for [5875189], [5878090], [5903969], and [5914754]
remove-unused-preferences-fields.patch had changes for [5913162], [5860535], and [5878090]
The close window with last tab patch had a section moved due to [5898348]
Due to [5915452] and the issue that necessitated #3081 I have moved the changes in add-flags-for-referrer-customization.patch from chrome/common to services/network/public/cpp so that now no longer requires any gn exemptions.
The first run page patch has been updated to use a webui config setup since that has finally been affected by the migrations in (40222519)
The remove ui patch had some changes for [5900076]
I've added a new upstream fix for the changes in [5922801]. They removed the glue_core_pools flag but didn't clean up everything. I'm honestly not sure how they are building like this, but judging by the state of the tarball builder they may not be...
I've added a small change to the cloning script to checkout gn at the commit specified in the DEPS file rather than HEAD. This should make things easier for some platform setups.
Change log Blog post