Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package chromium for openSUSE:Factory checked in at 2023-07-24 18:26:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.1467 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Mon Jul 24 18:26:22 2023 rev:389 rq:1100173 version:115.0.5790.102 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2023-07-19 19:11:41.284936055 +0200 +++ /work/SRC/openSUSE:Factory/.chromium.new.1467/chromium.changes 2023-07-24 18:27:13.526593856 +0200 @@ -1,0 +2,13 @@ +Sun Jul 23 11:55:15 UTC 2023 - Andreas Stieger <andreas.stie...@gmx.de> + +- 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 + +------------------------------------------------------------------- Old: ---- chromium-114-workaround_clang_bug-structured_binding.patch chromium-115.0.5790.98.tar.xz 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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.DB52KK/_old 2023-07-24 18:27:20.734636196 +0200 +++ /var/tmp/diff_new_pack.DB52KK/_new 2023-07-24 18:27:20.738636220 +0200 @@ -1,5 +1,5 @@ # -# spec file for package chromium +# spec file # # Copyright (c) 2023 SUSE LLC # Copyright (c) 2023 Callum Farmer <gm...@opensuse.org> @@ -79,7 +79,7 @@ %define n_suffix %{nil} %endif Name: 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,12 +127,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 +Patch223: chromium-115-emplace_back_on_vector-c++20.patch +Patch224: chromium-115-compiler-SkColor4f.patch +Patch225: chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch %if 0%{?sle_version} == 150400 Patch300: chromium-114-revert-av1enc-lp154.patch %endif ++++++ 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.DB52KK/_old 2023-07-24 18:27:20.878637042 +0200 +++ /var/tmp/diff_new_pack.DB52KK/_new 2023-07-24 18:27:20.882637066 +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/chromium/chromium-114-workaround_clang_bug-structured_binding.patch 2023-07-19 19:11:20.008811612 +0200 +++ /work/SRC/openSUSE:Factory/.chromium.new.1467/chromium-115-workaround_clang_bug-structured_binding.patch 2023-07-24 18:26:52.862472473 +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/chromium/chromium-115.0.5790.98.tar.xz /work/SRC/openSUSE:Factory/.chromium.new.1467/chromium-115.0.5790.102.tar.xz differ: char 15, line 1