Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ungoogled-chromium for openSUSE:Factory checked in at 2023-08-03 17:28:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ungoogled-chromium (Old) and /work/SRC/openSUSE:Factory/.ungoogled-chromium.new.22712 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ungoogled-chromium" Thu Aug 3 17:28:39 2023 rev:7 rq:1102076 version:115.0.5790.102 Changes: -------- --- /work/SRC/openSUSE:Factory/ungoogled-chromium/ungoogled-chromium.changes 2023-07-24 18:25:23.509947606 +0200 +++ /work/SRC/openSUSE:Factory/.ungoogled-chromium.new.22712/ungoogled-chromium.changes 2023-08-03 17:28:58.359469094 +0200 @@ -1,0 +2,25 @@ +Wed Aug 2 17:19:49 UTC 2023 - MichaÅ Szczepaniak <m.szczepaniak....@gmail.com> + +- ungoogled-chromium 115.0.5790.102: + * stability fix +- Add build fixes on Leap: + * chromium-115-emplace_back_on_vector-c++20.patch + * chromium-115-compiler-SkColor4f.patch + * chromium-115-workaround_clang_bug-structured_binding.patch + * chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch +- adjust chromium-115-lp155-typename.patch +- drop chromium-114-workaround_clang_bug-structured_binding.patch +- Specify re2 build dependency in a way that makes Leap packages + build in devel project and in Maintenance + +------------------------------------------------------------------- +Wed Aug 2 14:27:12 UTC 2023 - MichaÅ Szczepaniak <m.szczepaniak....@gmail.com> + +- Add conflicts to chormedriver + +------------------------------------------------------------------- +Wed Aug 2 14:21:04 UTC 2023 - MichaÅ Szczepaniak <m.szczepaniak....@gmail.com> + +- change chromedriver package name + +------------------------------------------------------------------- Old: ---- chromium-114-workaround_clang_bug-structured_binding.patch chromium-115.0.5790.98.tar.xz ungoogled-chromium-115.0.5790.98-1.tar.gz New: ---- chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch chromium-115-compiler-SkColor4f.patch chromium-115-emplace_back_on_vector-c++20.patch chromium-115-workaround_clang_bug-structured_binding.patch chromium-115.0.5790.102.tar.xz ungoogled-chromium-115.0.5790.102-1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ungoogled-chromium.spec ++++++ --- /var/tmp/diff_new_pack.kQfZQE/_old 2023-08-03 17:29:17.439584569 +0200 +++ /var/tmp/diff_new_pack.kQfZQE/_new 2023-08-03 17:29:17.443584593 +0200 @@ -20,7 +20,6 @@ %define rname chromium %define outputdir out -%bcond_with is_beta # CHANNEL SWITCH # bsc#1108175 %define __provides_exclude ^lib.*\\.so.*$ %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400 @@ -50,11 +49,12 @@ %bcond_with ffmpeg_51 %bcond_with qt6 %endif -%bcond_with system_avif # LLVM version %define llvm_version 15 # GCC version %define gcc_version 12 +%bcond_with is_beta # CHANNEL SWITCH +%bcond_with system_avif # Compiler %bcond_without clang # Chromium built with GCC 11 and LTO enabled crashes (boo#1194055) @@ -69,7 +69,6 @@ %else %define ffmpeg_version 58 %endif -%bcond_without chromedriver # Package names %if %{with is_beta} %define chromedriver_name %{name}-chromedriver @@ -79,7 +78,7 @@ %define n_suffix %{nil} %endif Name: ungoogled-chromium%{n_suffix} -Version: 115.0.5790.98 +Version: 115.0.5790.102 Release: 0 Summary: Google's open source browser project License: BSD-3-Clause AND LGPL-2.1-or-later @@ -127,15 +126,15 @@ Patch211: gcc13-fix.patch Patch214: chromium-113-webview-namespace.patch Patch215: chromium-113-webauth-include-variant.patch -Patch217: chromium-114-workaround_clang_bug-structured_binding.patch +Patch217: chromium-115-workaround_clang_bug-structured_binding.patch Patch218: chromium-114-lld-argument.patch Patch219: chromium-115-skia-include.patch Patch220: chromium-115-verify_name_match-include.patch Patch221: chromium-115-lp155-typename.patch Patch222: chromium-115-Qt-moc-version.patch -%if 0%{?sle_version} == 150400 -Patch300: chromium-114-revert-av1enc-lp154.patch -%endif +Patch223: chromium-115-emplace_back_on_vector-c++20.patch +Patch224: chromium-115-compiler-SkColor4f.patch +Patch225: chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch BuildRequires: SDL-devel BuildRequires: bison BuildRequires: cups-devel @@ -273,6 +272,9 @@ Obsoletes: chromium-ffmpegsumo < %{version} # no 32bit supported and it takes ages to build ExclusiveArch: x86_64 aarch64 riscv64 +%if 0%{?sle_version} == 150400 +Patch300: chromium-114-revert-av1enc-lp154.patch +%endif %if 0%{?suse_version} <= 1500 BuildRequires: pkgconfig(glproto) %endif @@ -344,23 +346,22 @@ BuildRequires: gcc%{gcc_version}-c++ %endif %endif +%if 0%{?suse_version} < 1699 +BuildRequires: pkgconfig(re2) = 10.0.0 +%endif %description Chromium is the open-source project behind Google Chrome. We invite you to join us in our effort to help build a safer, faster, and more stable way for all Internet users to experience the web, and to create a powerful platform for developing a new generation of web applications. -%if %{with chromedriver} -%package -n %{chromedriver_name} +%package %{chromedriver_name} Summary: WebDriver for Google Chrome/Chromium License: BSD-3-Clause Requires: %{name} = %{version} -%if %{with is_beta} Provides: chromedriver = %{version}-%{release} Conflicts: chromedriver -%endif -%description -n %{chromedriver_name} +%description %{chromedriver_name} WebDriver is an open source tool for automated testing of webapps across many browsers. It provides capabilities for navigating to web pages, user input, JavaScript execution, and more. ChromeDriver is a standalone server which implements WebDriver's wire protocol for Chromium. It is being developed by members of the Chromium and WebDriver teams. -%endif %prep %setup -q -n %{rname}-%{version} @@ -919,12 +920,10 @@ %install bash %{SOURCE105} -s %{buildroot} -l %{_libdir} %{!?with_system_icu:-i true} -o %{outputdir} -%if %{with chromedriver} # chromedriver # ungoogled-chromium patch doesn't generate .unstripped cp -a %{outputdir}/chromedriver %{buildroot}%{_libdir}/chromium/chromedriver ln -s %{_libdir}/chromium/chromedriver %{buildroot}%{_bindir}/chromedriver -%endif # link to browser plugin path. Plugin patch doesn't work. Why? mkdir -p %{buildroot}%{_libdir}/browser-plugins ln -s %{_libdir}/browser-plugins %{buildroot}%{_libdir}/chromium/plugins @@ -964,10 +963,9 @@ %{_bindir}/chromium %{_mandir}/man1/chromium-browser.1%{?ext_man} -%if %{with chromedriver} -%files -n %{chromedriver_name} +%files %{chromedriver_name} +%license LICENSE %{_libdir}/chromium/chromedriver %{_bindir}/chromedriver -%endif %changelog ++++++ INSTALL.sh ++++++ --- /var/tmp/diff_new_pack.kQfZQE/_old 2023-08-03 17:29:17.483584835 +0200 +++ /var/tmp/diff_new_pack.kQfZQE/_new 2023-08-03 17:29:17.487584860 +0200 @@ -13,7 +13,7 @@ PROGNAME="chrome" PACKAGE="chromium-browser" MENUNAME="Chromium Web Browser" -CHANNEL="beta" +CHANNEL="stable" INSTALLDIR="${LIBDIR}/chromium" install -m 755 -d \ ++++++ chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch ++++++ commit 73e9d865abd6b636280c4bb45720af2ff2c1e374 Author: Monica Basta <msal...@chromium.org> Date: Fri Jun 2 13:25:42 2023 +0000 [BSC]: Add BoundSessionRefreshCookieFetcher::Result Bug: b/273920907 Change-Id: I6508dcb79592420bfa3ebe3aac872c097a303a02 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4574672 Commit-Queue: Monica Basta <msal...@chromium.org> Reviewed-by: Alex Ilin <alexi...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1152484} diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc index 4e7e0b092a568..1c8c0110e3516 100644 --- a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc +++ b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc @@ -93,7 +93,7 @@ void BoundSessionCookieControllerImpl::MaybeRefreshCookie() { void BoundSessionCookieControllerImpl::OnCookieRefreshFetched( BoundSessionRefreshCookieFetcher::Result result) { refresh_cookie_fetcher_.reset(); - if (result.net_error == net::OK && result.response_code == net::HTTP_OK) { + if (result == BoundSessionRefreshCookieFetcher::Result::kSuccess) { // Requests are resumed once the cookie is set in the cookie jar. The // cookie is expected to be fresh and `this` is notified with its // expiration date before `OnCookieRefreshFetched` is called. diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h index db62988635a26..f7a8b3693346f 100644 --- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h +++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h @@ -14,10 +14,13 @@ // created per request. class BoundSessionRefreshCookieFetcher { public: - struct Result { - net::Error net_error; - absl::optional<int> response_code; + enum class Result { + kSuccess = 0, + kConnectionError = 1, + kServerTransientError = 2, + kServerPersistentError = 3, }; + // Reports the result of the fetch request. using RefreshCookieCompleteCallback = base::OnceCallback<void(Result)>; diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc index 46be6f06b147a..a6f038b158311 100644 --- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc +++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc @@ -8,6 +8,7 @@ #include "components/signin/public/base/signin_client.h" #include "google_apis/gaia/gaia_urls.h" +#include "net/http/http_status_code.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/shared_url_loader_factory.h" @@ -102,7 +103,36 @@ void BoundSessionRefreshCookieFetcherImpl::OnURLLoaderComplete( scoped_refptr<net::HttpResponseHeaders> headers) { net::Error net_error = static_cast<net::Error>(url_loader_->NetError()); - std::move(callback_).Run( - Result(net_error, headers ? absl::optional<int>(headers->response_code()) - : absl::nullopt)); + Result result = GetResultFromNetErrorAndHttpStatusCode( + net_error, + headers ? absl::optional<int>(headers->response_code()) : absl::nullopt); + std::move(callback_).Run(result); +} + +BoundSessionRefreshCookieFetcher::Result +BoundSessionRefreshCookieFetcherImpl::GetResultFromNetErrorAndHttpStatusCode( + net::Error net_error, + absl::optional<int> response_code) { + if ((net_error != net::OK && + net_error != net::ERR_HTTP_RESPONSE_CODE_FAILURE) || + !response_code) { + return BoundSessionRefreshCookieFetcher::Result::kConnectionError; + } + + if (response_code == net::HTTP_OK) { + return BoundSessionRefreshCookieFetcher::Result::kSuccess; + } + + if (response_code >= net::HTTP_INTERNAL_SERVER_ERROR) { + // Server error 5xx. + return BoundSessionRefreshCookieFetcher::Result::kServerTransientError; + } + + if (response_code >= net::HTTP_BAD_REQUEST) { + // Server error 4xx. + return BoundSessionRefreshCookieFetcher::Result::kServerPersistentError; + } + + // Unexpected response code. + return BoundSessionRefreshCookieFetcher::Result::kServerPersistentError; } diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h index 733ffbaae088c..52943f0194c32 100644 --- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h +++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h @@ -31,8 +31,14 @@ class BoundSessionRefreshCookieFetcherImpl void Start(RefreshCookieCompleteCallback callback) override; private: + FRIEND_TEST_ALL_PREFIXES(BoundSessionRefreshCookieFetcherImplTest, + GetResultFromNetErrorAndHttpStatusCode); + void StartRefreshRequest(); void OnURLLoaderComplete(scoped_refptr<net::HttpResponseHeaders> headers); + Result GetResultFromNetErrorAndHttpStatusCode( + net::Error net_error, + absl::optional<int> response_code); const raw_ptr<SigninClient> client_; const scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc index d018592022d55..36ae64f83e4ee 100644 --- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc +++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc @@ -19,8 +19,6 @@ #include "services/network/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" -namespace { - class BoundSessionRefreshCookieFetcherImplTest : public ::testing::Test { public: BoundSessionRefreshCookieFetcherImplTest() { @@ -55,8 +53,7 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, Success) { pending_request->request.url.spec(), ""); EXPECT_TRUE(future.Wait()); BoundSessionRefreshCookieFetcher::Result result = future.Get(); - EXPECT_EQ(result.net_error, net::OK); - EXPECT_EQ(result.response_code, net::HTTP_OK); + EXPECT_EQ(result, BoundSessionRefreshCookieFetcher::Result::kSuccess); } TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureNetError) { @@ -75,8 +72,7 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureNetError) { EXPECT_TRUE(future.Wait()); BoundSessionRefreshCookieFetcher::Result result = future.Get(); - EXPECT_EQ(result.net_error, status.error_code); - EXPECT_FALSE(result.response_code.has_value()); + EXPECT_EQ(result, BoundSessionRefreshCookieFetcher::Result::kConnectionError); } TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureHttpError) { @@ -93,8 +89,38 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureHttpError) { EXPECT_TRUE(future.Wait()); BoundSessionRefreshCookieFetcher::Result result = future.Get(); - EXPECT_EQ(result.net_error, net::ERR_HTTP_RESPONSE_CODE_FAILURE); - EXPECT_EQ(result.response_code, net::HTTP_UNAUTHORIZED); + EXPECT_EQ(result, + BoundSessionRefreshCookieFetcher::Result::kServerPersistentError); +} + +TEST_F(BoundSessionRefreshCookieFetcherImplTest, + GetResultFromNetErrorAndHttpStatusCode) { + // Connection error. + EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode( + net::ERR_CONNECTION_TIMED_OUT, absl::nullopt), + BoundSessionRefreshCookieFetcher::Result::kConnectionError); + // net::OK. + EXPECT_EQ( + fetcher_->GetResultFromNetErrorAndHttpStatusCode(net::OK, net::HTTP_OK), + BoundSessionRefreshCookieFetcher::Result::kSuccess); + // net::ERR_HTTP_RESPONSE_CODE_FAILURE + EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode( + net::ERR_HTTP_RESPONSE_CODE_FAILURE, net::HTTP_BAD_REQUEST), + BoundSessionRefreshCookieFetcher::Result::kServerPersistentError); + // Persistent error. + EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode( + net::OK, net::HTTP_BAD_REQUEST), + BoundSessionRefreshCookieFetcher::Result::kServerPersistentError); + EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode( + net::OK, net::HTTP_NOT_FOUND), + BoundSessionRefreshCookieFetcher::Result::kServerPersistentError); + // Transient error. + EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode( + net::OK, net::HTTP_INTERNAL_SERVER_ERROR), + BoundSessionRefreshCookieFetcher::Result::kServerTransientError); + EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode( + net::OK, net::HTTP_GATEWAY_TIMEOUT), + BoundSessionRefreshCookieFetcher::Result::kServerTransientError); } TEST_F(BoundSessionRefreshCookieFetcherImplTest, NetworkDelayed) { @@ -114,5 +140,3 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, NetworkDelayed) { EXPECT_TRUE(future.Wait()); } - -} // namespace diff --git a/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc b/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc index b4b1a07e687cb..fcfa9305d04e9 100644 --- a/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc +++ b/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc @@ -51,7 +51,8 @@ void FakeBoundSessionRefreshCookieFetcher::SimulateCompleteRefreshRequest( // Synchronous since tests use `BoundSessionTestCookieManager`. OnRefreshCookieCompleted(CreateFakeCookie(cookie_expiration.value())); } else { - std::move(callback_).Run(Result(net::Error::OK, net::HTTP_FORBIDDEN)); + std::move(callback_).Run( + BoundSessionRefreshCookieFetcher::Result::kServerPersistentError); } } @@ -83,9 +84,11 @@ void FakeBoundSessionRefreshCookieFetcher::OnCookieSet( net::CookieAccessResult access_result) { bool success = access_result.status.IsInclude(); if (!success) { - std::move(callback_).Run(Result(net::Error::OK, net::HTTP_FORBIDDEN)); + std::move(callback_).Run( + BoundSessionRefreshCookieFetcher::Result::kServerPersistentError); } else { - std::move(callback_).Run(Result(net::Error::OK, net::HTTP_OK)); + std::move(callback_).Run( + BoundSessionRefreshCookieFetcher::Result::kSuccess); } // |This| may be destroyed } ++++++ chromium-115-compiler-SkColor4f.patch ++++++ diff -up chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc --- chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me 2023-06-24 10:38:11.011511463 +0200 +++ chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc 2023-06-24 13:07:35.865375884 +0200 @@ -84,6 +84,7 @@ CanvasStyle::CanvasStyle(const CanvasSty void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags, float global_alpha) const { + SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha}; switch (type_) { case kColor: ApplyColorToFlags(flags, global_alpha); @@ -91,12 +92,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint case kGradient: GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(), ImageDrawOptions()); - flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha)); + flags.setColor(custom_color); break; case kImagePattern: GetCanvasPattern()->GetPattern()->ApplyToFlags( flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform())); - flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha)); + flags.setColor(custom_color); break; default: NOTREACHED(); ++++++ chromium-115-emplace_back_on_vector-c++20.patch ++++++ diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc --- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me 2023-06-25 10:06:58.445990069 +0200 +++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc 2023-06-25 10:51:17.640818231 +0200 @@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base:: "'version' field of type string"); } - brands.emplace_back(*brand, *version); + brands.emplace_back() = {*brand, *version}; } client_hints.brands = std::move(brands); @@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base:: "a 'version' field of type string"); } - full_version_list.emplace_back(*brand, *version); + full_version_list.emplace_back() = {*brand, *version}; } client_hints.full_version_list = std::move(full_version_list); ++++++ chromium-115-lp155-typename.patch ++++++ --- /var/tmp/diff_new_pack.kQfZQE/_old 2023-08-03 17:29:17.575585392 +0200 +++ /var/tmp/diff_new_pack.kQfZQE/_new 2023-08-03 17:29:17.579585417 +0200 @@ -1,7 +1,30 @@ -Index: chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h -=================================================================== ---- chromium-115.0.5790.32.orig/components/optimization_guide/core/tflite_model_executor.h -+++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h +diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc +--- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.typename 2023-06-17 14:50:56.342591702 +0200 ++++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-06-17 14:57:48.024377375 +0200 +@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item) + // Helper to get an iterator to the last element in the cache. The cache + // must not be empty. + template <typename Item> +-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) { ++typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) { + CHECK(!cache.empty()); + auto it = cache.end(); + return std::prev(it); +@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM + } + + template <typename Id, typename Item> +-SortedItems<Item>::iterator ++typename SortedItems<Item>::iterator + DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter( +- SortedItems<Item>::iterator iter, ++ typename SortedItems<Item>::iterator iter, + SortedItems<Item>& cache, + IterMap<Id, Item>& iter_map) { + CHECK(iter != cache.end()); +diff -up chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h +--- chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me 2023-06-18 21:52:53.515625237 +0200 ++++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h 2023-06-18 21:53:06.881881293 +0200 @@ -189,7 +189,7 @@ class TFLiteModelExecutor : public Model void SendForBatchExecution( BatchExecutionCallback callback_on_complete, @@ -11,4 +34,16 @@ override { DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +diff -up chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me1 chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc +--- chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me1 2023-06-19 10:03:32.319218678 +0200 ++++ chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2023-06-19 10:04:12.023942232 +0200 +@@ -169,7 +169,7 @@ class HTMLFastPathParser { + using Span = base::span<const Char>; + using USpan = base::span<const UChar>; + // 32 matches that used by HTMLToken::Attribute. +- typedef std::conditional<std::is_same_v<Char, UChar>, ++ typedef typename std::conditional<std::is_same_v<Char, UChar>, + UCharLiteralBuffer<32>, + LCharLiteralBuffer<32>>::type LiteralBufferType; + typedef UCharLiteralBuffer<32> UCharLiteralBufferType; ++++++ chromium-114-workaround_clang_bug-structured_binding.patch -> chromium-115-workaround_clang_bug-structured_binding.patch ++++++ --- /work/SRC/openSUSE:Factory/ungoogled-chromium/chromium-114-workaround_clang_bug-structured_binding.patch 2023-07-24 18:24:59.653807472 +0200 +++ /work/SRC/openSUSE:Factory/.ungoogled-chromium.new.22712/chromium-115-workaround_clang_bug-structured_binding.patch 2023-08-03 17:28:41.999370081 +0200 @@ -1,7 +1,20 @@ -Index: chromium-115.0.5790.32/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc -=================================================================== ---- chromium-115.0.5790.32.orig/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc -+++ chromium-115.0.5790.32/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc +diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc +--- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:37.000000000 +0200 ++++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc 2023-06-17 16:53:20.216628557 +0200 +@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui + void CdmPromiseAdapter::Clear(ClearReason reason) { + // Reject all outstanding promises. + DCHECK(thread_checker_.CalledOnValidThread()); +- for (auto& [promise_id, promise] : promises_) { ++ for (auto& [p_i, p_e] : promises_) { ++ auto& promise_id = p_i; ++ auto& promise = p_e; + TRACE_EVENT_NESTABLE_ASYNC_END1( + "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id), + "status", "cleared"); +diff -up chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc +--- chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:41.000000000 +0200 ++++ chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc 2023-06-17 18:47:06.001403966 +0200 @@ -238,7 +238,10 @@ const NGLayoutResult* NGGridLayoutAlgori : BuildGridSizingTree(&oof_children); @@ -40,18 +53,29 @@ const bool is_for_columns = track_direction == kForColumns; const bool has_non_definite_track = -Index: chromium-115.0.5790.32/media/base/cdm_promise_adapter.cc -=================================================================== ---- chromium-115.0.5790.32.orig/media/base/cdm_promise_adapter.cc -+++ chromium-115.0.5790.32/media/base/cdm_promise_adapter.cc -@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui - void CdmPromiseAdapter::Clear(ClearReason reason) { - // Reject all outstanding promises. - DCHECK(thread_checker_.CalledOnValidThread()); -- for (auto& [promise_id, promise] : promises_) { -+ for (auto& [p_i, p_e] : promises_) { -+ auto& promise_id = p_i; -+ auto& promise = p_e; - TRACE_EVENT_NESTABLE_ASYNC_END1( - "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id), - "status", "cleared"); +@@ -1924,8 +1931,10 @@ template <typename CallbackFunc> + void NGGridLayoutAlgorithm::ForEachSubgrid( + const NGGridSizingSubtree& sizing_subtree, + const CallbackFunc& callback_func) const { +- auto& [grid_items, layout_data, subtree_size] = +- sizing_subtree.SubtreeRootData(); ++ auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData(); ++ auto& grid_items = g_i; ++ auto& layout_data = l_d; ++ auto& subtree_size = s_s; + + // If we know this subtree doesn't have nested subgrids we can exit early + // instead of iterating over every grid item looking for them. +diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc +--- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me 2023-06-19 08:04:02.287072722 +0200 ++++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc 2023-06-19 08:18:24.576814950 +0200 +@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP + return; + } + +- auto [document_url, key, callback] = std::move(*request); ++ auto [d_u, key, callback] = std::move(*request); ++ auto document_url = d_u; + + DCHECK(document_url.is_valid()); + TRACE_EVENT1("ServiceWorker", ++++++ chromium-115.0.5790.98.tar.xz -> chromium-115.0.5790.102.tar.xz ++++++ /work/SRC/openSUSE:Factory/ungoogled-chromium/chromium-115.0.5790.98.tar.xz /work/SRC/openSUSE:Factory/.ungoogled-chromium.new.22712/chromium-115.0.5790.102.tar.xz differ: char 15, line 1 ++++++ ungoogled-chromium-115.0.5790.98-1.tar.gz -> ungoogled-chromium-115.0.5790.102-1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ungoogled-chromium-115.0.5790.98-1/chromium_version.txt new/ungoogled-chromium-115.0.5790.102-1/chromium_version.txt --- old/ungoogled-chromium-115.0.5790.98-1/chromium_version.txt 2023-07-17 21:47:26.000000000 +0200 +++ new/ungoogled-chromium-115.0.5790.102-1/chromium_version.txt 2023-07-21 11:27:47.000000000 +0200 @@ -1 +1 @@ -115.0.5790.98 +115.0.5790.102 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ungoogled-chromium-115.0.5790.98-1/domain_substitution.list new/ungoogled-chromium-115.0.5790.102-1/domain_substitution.list --- old/ungoogled-chromium-115.0.5790.98-1/domain_substitution.list 2023-07-17 21:47:26.000000000 +0200 +++ new/ungoogled-chromium-115.0.5790.102-1/domain_substitution.list 2023-07-21 11:27:47.000000000 +0200 @@ -13263,6 +13263,7 @@ tools/gn/src/base/values.h tools/gn/src/base/win/registry.cc tools/gn/src/base/win/registry.h +tools/gn/src/gn/args.cc tools/gn/src/gn/command_gen.cc tools/gn/src/gn/compile_commands_writer.h tools/gn/src/gn/standard_out.cc