- Update to 115.0.5790.98

- Disable rust
- Added many fixes
- Added GOST support
i9-test
Arkady L. Shane 1 year ago
parent add23f2fed
commit 8cd6424c32
Signed by: tigro
GPG Key ID: 9C7900103E1C4F8B

@ -1 +1,3 @@
8d093d534d9a67b1a3c88d97bd47d6b326f3fa71 SOURCES/chromium-114.0.5735.198.tar.xz
7353fcb2efef3b4ca4f2ba97d5ed6df1b8cda29b SOURCES/chromium-gost-eff0aba6091bcf9ca9b8a6d31402dfe55ddaf8ce.tar.gz
7f2dae4d92fd16ba75b35408e1c0a9003d27eb38 SOURCES/msspi-dddd947089110165db71fdc660157f102bab3660.tar.gz

2
.gitignore vendored

@ -1 +1,3 @@
SOURCES/chromium-114.0.5735.198.tar.xz
SOURCES/chromium-gost-eff0aba6091bcf9ca9b8a6d31402dfe55ddaf8ce.tar.gz
SOURCES/msspi-dddd947089110165db71fdc660157f102bab3660.tar.gz

@ -1,6 +1,13 @@
diff -urN chromium-114.0.5735.133.orig/components/search_engines/prepopulated_engines.json chromium-114.0.5735.133/components/search_engines/prepopulated_engines.json
--- chromium-114.0.5735.133.orig/components/search_engines/prepopulated_engines.json 2023-06-30 16:00:39.781216875 +0300
+++ chromium-114.0.5735.133/components/search_engines/prepopulated_engines.json 2023-06-30 16:10:06.030718785 +0300
commit f6f27ebf8f82990da4c5fdff103eb62586ee12d9
Author: tigro <arkadiy.sheyn@softline.com>
Date: Sun Jul 23 09:57:21 2023 +0300
Set Yandex as default search engine
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
index e672076a3..1ef0e7504 100644
--- a/components/search_engines/prepopulated_engines.json
+++ b/components/search_engines/prepopulated_engines.json
@@ -560,7 +560,7 @@
"suggest_url": "https://suggest.yandex.by/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}",
"image_url": "https://yandex.by/images/search/?rpt=imageview",
@ -54,10 +61,11 @@ diff -urN chromium-114.0.5735.133.orig/components/search_engines/prepopulated_en
"type": "SEARCH_ENGINE_YANDEX",
"id": 15
},
diff -urN chromium-114.0.5735.133.orig/components/search_engines/template_url_prepopulate_data.cc chromium-114.0.5735.133/components/search_engines/template_url_prepopulate_data.cc
--- chromium-114.0.5735.133.orig/components/search_engines/template_url_prepopulate_data.cc 2023-06-30 16:00:39.780216890 +0300
+++ chromium-114.0.5735.133/components/search_engines/template_url_prepopulate_data.cc 2023-06-30 16:12:58.769100093 +0300
@@ -29,6 +29,7 @@
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
index efaa4b294..7f25a36e8 100644
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -29,6 +29,7 @@ namespace {
// Default (for countries with no better engine set)
const PrepopulatedEngine* const engines_default[] = {
@ -65,7 +73,7 @@ diff -urN chromium-114.0.5735.133.orig/components/search_engines/template_url_pr
&google,
&bing,
&yahoo,
@@ -156,8 +157,8 @@
@@ -156,8 +157,8 @@ const PrepopulatedEngine* const engines_BR[] = {
// Belarus
const PrepopulatedEngine* const engines_BY[] = {
@ -75,7 +83,7 @@ diff -urN chromium-114.0.5735.133.orig/components/search_engines/template_url_pr
&mail_ru,
&bing,
&duckduckgo,
@@ -435,10 +436,10 @@
@@ -435,10 +436,10 @@ const PrepopulatedEngine* const engines_IN[] = {
// Iraq
const PrepopulatedEngine* const engines_IQ[] = {
@ -87,7 +95,7 @@ diff -urN chromium-114.0.5735.133.orig/components/search_engines/template_url_pr
&petal_search,
};
@@ -525,8 +526,8 @@
@@ -525,8 +526,8 @@ const PrepopulatedEngine* const engines_KW[] = {
// Kazakhstan
const PrepopulatedEngine* const engines_KZ[] = {
@ -97,7 +105,7 @@ diff -urN chromium-114.0.5735.133.orig/components/search_engines/template_url_pr
&mail_ru,
&bing,
&duckduckgo,
@@ -894,8 +895,8 @@
@@ -894,8 +895,8 @@ const PrepopulatedEngine* const engines_TN[] = {
// Turkey
const PrepopulatedEngine* const engines_TR[] = {
@ -107,13 +115,13 @@ diff -urN chromium-114.0.5735.133.orig/components/search_engines/template_url_pr
&yahoo_tr,
&bing,
&duckduckgo,
@@ -1382,12 +1383,15 @@
@@ -1388,12 +1389,15 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
t_urls = GetPrepopulationSetFromCountryID(
country_codes::GetCountryIDFromPrefs(prefs));
}
- if (default_search_provider_index) {
- const auto itr =
- base::ranges::find(t_urls, google.id, &TemplateURLData::prepopulate_id);
- base::ranges::find(t_urls, yandex_ru.id, &TemplateURLData::prepopulate_id);
- *default_search_provider_index =
- itr == t_urls.end() ? 0 : std::distance(t_urls.begin(), itr);
- }

@ -0,0 +1,34 @@
../../third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc:94:22: error: no matching constructor for initialization of 'SkColor4f' (aka 'SkRGBA4f<kUnpremul_SkAlphaType>')
flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/skia/include/core/SkColor.h:262:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 4 were provided
struct SkRGBA4f {
^
../../third_party/skia/include/core/SkColor.h:262:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 4 were provided
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
@@ -84,6 +84,7 @@ CanvasStyle::CanvasStyle(const CanvasSty
void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
float global_alpha) const {
+ SkColor4f clr = { 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(clr);
break;
case kImagePattern:
GetCanvasPattern()->GetPattern()->ApplyToFlags(
flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
+ flags.setColor(clr);
break;
default:
NOTREACHED();

@ -0,0 +1,35 @@
Add a missing constructor for BrandVersion; otherwise, we get build
errors:
In file included from ../../chrome/test/chromedriver/capabilities.cc:5:
In file included from ../../chrome/test/chromedriver/capabilities.h:10:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/map:60:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tree.h:67:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/ext/alloc_traits.h:34:
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/alloc_traits.h:518:4: error: no matching function for call to 'construct_at'
std::construct_at(__p, std::forward<_Args>(__args)...);
^~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/vector.tcc:117:21: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<BrandVersion>>::construct<BrandVersion, const std::basic_string<char> &, const std::basic_string<char> &>' requested here
_Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
^
../../chrome/test/chromedriver/capabilities.cc:358:16: note: in instantiation of function template specialization 'std::vector<BrandVersion>::emplace_back<const std::basic_string<char> &, const std::basic_string<char> &>' requested here
brands.emplace_back(*brand, *version);
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_construct.h:94:5: note: candidate template ignored: substitution failure [with _Tp = BrandVersion, _Args = <const std::basic_string<char> &, const std::basic_string<char> &>]: no matching constructor for initialization of 'BrandVersion'
construct_at(_Tp* __location, _Args&&... __args)
^
1 error generated.
--- a/chrome/test/chromedriver/chrome/client_hints.h
+++ b/chrome/test/chromedriver/chrome/client_hints.h
@@ -18,6 +18,8 @@ struct BrandVersion {
// * "major version" for "brands",
// * "full version" for "fullVersionList".
std::string version;
+
+ BrandVersion(const std::string& b, const std::string& v) : brand(b), version(v) { }
};
// User-Agent Client Hints

@ -1,62 +0,0 @@
diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc
--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-05-03 17:46:37.194000834 +0200
+++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-05-03 17:48:05.170317575 +0200
@@ -87,7 +87,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>::iterator GetLastIter(SortedItems<Item>& cache) {
+typename SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
CHECK(!cache.empty());
auto it = cache.end();
return std::prev(it);
@@ -789,9 +789,9 @@ bool DownloadBubbleUpdateService::Remove
}
template <typename Id, typename Item>
-SortedItems<Item>::iterator
+typename SortedItems<Item>::iterator
DownloadBubbleUpdateService::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-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h
--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me 2023-05-03 17:48:14.079551820 +0200
+++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h 2023-05-03 17:49:24.702387180 +0200
@@ -208,8 +208,8 @@ class DownloadBubbleUpdateService
// Removes item if we already have the iterator to it. Returns next iterator.
template <typename Id, typename Item>
- SortedItems<Item>::iterator RemoveItemFromCacheByIter(
- SortedItems<Item>::iterator iter,
+ typename SortedItems<Item>::iterator RemoveItemFromCacheByIter(
+ typename SortedItems<Item>::iterator iter,
SortedItems<Item>& cache,
IterMap<Id, Item>& iter_map);
diff -up chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h.me chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h
--- chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h.me 2023-05-14 00:03:48.455961696 +0200
+++ chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h 2023-05-14 00:04:24.776589164 +0200
@@ -587,7 +587,7 @@ class PrintBackendServiceManager {
template <class... T>
void RunSavedCallbacks(RemoteSavedCallbacks<T...>& saved_callbacks,
const RemoteId& remote_id,
- std::remove_reference<T>::type... result);
+ typename std::remove_reference<T>::type... result);
// Test support for client ID management.
static void SetClientsForTesting(
diff -up chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc.me chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc
--- chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc.me 2023-05-14 12:40:29.555926646 +0200
+++ chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc 2023-05-14 12:41:12.150471791 +0200
@@ -1477,7 +1477,7 @@ template <class... T>
void PrintBackendServiceManager::RunSavedCallbacks(
RemoteSavedCallbacks<T...>& saved_callbacks,
const RemoteId& remote_id,
- std::remove_reference<T>::type... result) {
+ typename std::remove_reference<T>::type... result) {
auto found_callbacks_map = saved_callbacks.find(remote_id);
if (found_callbacks_map == saved_callbacks.end())
return; // No callbacks to run.

@ -1,81 +0,0 @@
diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
--- chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding 2023-05-11 03:36:27.000000000 +0200
+++ chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc 2023-05-14 11:49:42.558129164 +0200
@@ -238,7 +238,10 @@ const NGLayoutResult* NGGridLayoutAlgori
: BuildGridSizingTree(&oof_children);
LayoutUnit intrinsic_block_size;
- auto& [grid_items, layout_data, tree_size] = grid_sizing_tree.TreeRootData();
+ auto& [g_i, l_d, t_s] = grid_sizing_tree.TreeRootData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& tree_size = t_s;
if (IsBreakInside(BreakToken())) {
// TODO(layout-dev): When we support variable inline-size fragments we'll
@@ -520,8 +523,10 @@ wtf_size_t NGGridLayoutAlgorithm::BuildG
row_auto_repetitions);
bool has_nested_subgrid = false;
- auto& [grid_items, layout_data, subtree_size] =
- sizing_tree->CreateSizingData(opt_subgrid_data);
+ auto& [g_i, l_d, s_s] = sizing_tree->CreateSizingData(opt_subgrid_data);
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& subtree_size = s_s;
if (!must_ignore_children) {
// Construct grid items that are not subgridded.
@@ -650,8 +655,10 @@ NGGridSizingTree NGGridLayoutAlgorithm::
NGGridSizingTree sizing_tree;
if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) {
- auto& [grid_items, layout_data, subtree_size] =
- sizing_tree.CreateSizingData();
+ auto& [g_i, l_d, s_s] = sizing_tree.CreateSizingData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& subtree_size = s_s;
const auto& node = Node();
grid_items =
@@ -1640,8 +1647,10 @@ void NGGridLayoutAlgorithm::InitializeTr
const absl::optional<GridTrackSizingDirection>& opt_track_direction) const {
DCHECK(sizing_subtree);
- 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;
auto InitAndCacheTrackSizes = [&](GridTrackSizingDirection track_direction) {
InitializeTrackCollection(opt_subgrid_data, track_direction, &layout_data);
@@ -1825,8 +1834,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
bool* opt_needs_additional_pass) const {
DCHECK(sizing_subtree);
- 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;
const bool is_for_columns = track_direction == kForColumns;
const bool has_non_definite_track =
diff -up chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc
--- chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me 2023-05-14 17:35:00.446844465 +0200
+++ chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc 2023-05-14 17:39:22.991733926 +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");

@ -0,0 +1,19 @@
commit 62f1d7caca64a8df55fb69c913309da2121a537f
Author: tigro <arkadiy.sheyn@softline.com>
Date: Fri Jul 21 16:51:31 2023 +0300
chromium-115-skia-include.patch
diff --git a/skia/ext/skcolorspace_trfn.cc b/skia/ext/skcolorspace_trfn.cc
index c0d6bd2a8..97c4dfad9 100644
--- a/skia/ext/skcolorspace_trfn.cc
+++ b/skia/ext/skcolorspace_trfn.cc
@@ -4,6 +4,8 @@
#include "skia/ext/skcolorspace_trfn.h"
+#include <cmath>
+
namespace skia {
namespace {

@ -0,0 +1,48 @@
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,
base::TimeTicks start_time,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
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;

@ -0,0 +1,25 @@
From 74c464ae56275f4de46b7d1f7e103fa758a637d2 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Wed, 31 May 2023 17:03:02 +0000
Subject: [PATCH] IWYU: std::vector used in verify_name_match.h without include
Bug: 957519
Change-Id: Ie753fadae35adb293f854a0f8d4f675e67a2fc31
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4533815
Reviewed-by: David Benjamin <davidben@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1151307}
---
diff --git a/net/cert/pki/verify_name_match.h b/net/cert/pki/verify_name_match.h
index d22cf7f..e30b221 100644
--- a/net/cert/pki/verify_name_match.h
+++ b/net/cert/pki/verify_name_match.h
@@ -6,6 +6,7 @@
#define NET_CERT_PKI_VERIFY_NAME_MATCH_H_
#include <string>
+#include <vector>
#include "net/base/net_export.h"

@ -0,0 +1,60 @@
author: Andres Salomon <dilinger@debian.org>
description: work around https://github.com/llvm/llvm-project/issues/48582
../../media/base/cdm_promise_adapter.cc:99:66: error: reference to local binding 'promise_id' declared in enclosing function 'media::CdmPromiseAdapter::Clear'
"media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
^
../../media/base/cdm_promise_adapter.cc:97:15: note: 'promise_id' declared here
for (auto& [promise_id, promise] : promises_) {
^
This is some kind of clang14 scope bug, whereby variable are defined
in a structured binding, and then used inside of a (valid, but) different
scope. Eg,
auto& [foo, bar, baz] = sizing_tree->CreateSizingData();
do { auto& x = bar; } while (0);
auto x = [&](GridTrackSizingDirection lambdavar) {
for (auto& i : foo) { ... }
}
The compiler gets confused about scope and spits out an error. The
workaround is to define the variable not in a structured binding.
--- a/media/base/cdm_promise_adapter.cc
+++ b/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_id, p] : promises_) {
+ auto& promise_id = p_id;
+ auto& promise = p;
TRACE_EVENT_NESTABLE_ASYNC_END1(
"media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
"status", "cleared");
--- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
@@ -1798,8 +1798,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
bool* opt_needs_additional_pass) const {
DCHECK(sizing_subtree);
- auto& [grid_items, layout_data, subtree_size] =
+ auto& [g_i, l_d, subtree_size] =
sizing_subtree.SubtreeRootData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
const bool is_for_columns = track_direction == kForColumns;
const bool has_non_definite_track =
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -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 = std::move(d_u);
DCHECK(document_url.is_valid());
TRACE_EVENT1("ServiceWorker",

@ -0,0 +1,19 @@
diff --git a/chrome/browser/first_run/first_run_internal_linux.cc b/chrome/browser/first_run/first_run_internal_linux.cc
index 33fd57901..989069437 100644
--- a/chrome/browser/first_run/first_run_internal_linux.cc
+++ b/chrome/browser/first_run/first_run_internal_linux.cc
@@ -20,12 +20,9 @@ bool IsOrganicFirstRun() {
base::FilePath InitialPrefsPath() {
// The standard location of the initial prefs is next to the chrome binary.
+ // ...but we patch it to use /etc/chromium
base::FilePath dir_exe;
- if (!base::PathService::Get(base::DIR_EXE, &dir_exe)) {
- return base::FilePath();
- }
-
- return installer::InitialPreferences::Path(dir_exe);
+ dir_exe = base::FilePath("/etc/chromium");
}
} // namespace internal

@ -1,15 +0,0 @@
diff -up chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc
--- chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc.etc 2021-06-01 16:37:39.182531036 -0400
+++ chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc 2021-06-01 16:39:31.590102809 -0400
@@ -20,9 +20,9 @@ bool IsOrganicFirstRun() {
base::FilePath InitialPrefsPath() {
// The standard location of the initial prefs is next to the chrome binary.
+ // ...but we patch it to use /etc/chromium
base::FilePath initial_prefs;
- if (!base::PathService::Get(base::DIR_EXE, &initial_prefs))
- return base::FilePath();
+ initial_prefs = base::FilePath("/etc/chromium");
base::FilePath new_path = initial_prefs.AppendASCII(installer::kInitialPrefs);
if (base::PathIsReadable(new_path))

@ -0,0 +1,23 @@
../../chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc:106:7: error: no matching constructor for initialization of 'BoundSessionRefreshCookieFetcher::Result'
Result(net_error, headers ? absl::optional<int>(headers->response_code())
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h:17:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
struct Result {
^
--- 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
@@ -101,8 +101,8 @@ void BoundSessionRefreshCookieFetcherImp
void BoundSessionRefreshCookieFetcherImpl::OnURLLoaderComplete(
scoped_refptr<net::HttpResponseHeaders> headers) {
net::Error net_error = static_cast<net::Error>(url_loader_->NetError());
+ Result r = { net_error, headers ? absl::optional<int>(headers->response_code())
+ : absl::nullopt };
- std::move(callback_).Run(
- Result(net_error, headers ? absl::optional<int>(headers->response_code())
- : absl::nullopt));
+ std::move(callback_).Run(r);
}

@ -124,7 +124,7 @@
# for RHEL7, append libfontconfig to the end
# make sure there is not a trailing | at the end of the list
# We always filter provides. We only filter Requires when building shared.
%global __provides_exclude_from ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*)$
%global __provides_exclude_from ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*|%{chromium_lib}/.*\\.so)$
%global __requires_exclude ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*|%{chromium_lib}/.*\\.so)$
# enable clang by default
@ -138,7 +138,7 @@
%endif
# enable system brotli
%global bundlebrotli 0
%global bundlebrotli 1
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@ -208,6 +208,13 @@
%endif
%endif
# Build with GOST patches
# https://github.com/deemru/chromium-gost/
%global gost 1
%define chromium_gost_commit eff0aba6091bcf9ca9b8a6d31402dfe55ddaf8ce
%define msspi_commit dddd947089110165db71fdc660157f102bab3660
%define chromium_path_gost %{_builddir}/chromium-gost
### From 2013 until early 2021, Google permitted distribution builds of
### Chromium to access Google APIs that added significant features to
### Chromium including, but not limited to, Sync and geolocation.
@ -242,8 +249,8 @@
%endif
Name: chromium%{chromium_channel}
Version: 114.0.5735.198
Release: 1%{?dist}.inferit.1
Version: 115.0.5790.98
Release: 1%{?dist}.inferit
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
@ -252,7 +259,7 @@ License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND G
Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for initial_prefs
Patch1: chromium-91.0.4472.77-initial_prefs-etc-path.patch
Patch1: chromium-115.0.5790.98-initial_prefs-etc-path.patch
# Use gn system files
Patch2: chromium-107.0.5304.110-gn-system.patch
@ -261,7 +268,7 @@ Patch2: chromium-107.0.5304.110-gn-system.patch
Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
Patch6: chromium-114-norar.patch
#Patch6: chromium-114-norar.patch
# Try to load widevine from other places
Patch8: chromium-108-widevine-other-locations.patch
@ -359,9 +366,19 @@ Patch130: chromium-114-revert-av1enc-el9.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-113-rhel8-force-disable-use_gnome_keyring.patch
# workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
Patch302: chromium-114-workaround_clang_bug-structured_binding.patch
Patch302: chromium-115-workaround_clang_bug-structured_binding.patch
# missing typename
Patch303: chromium-114-typename.patch
Patch303: chromium-115-typename.patch
# Skia issue
Patch304: chromium-115-skia-include.patch
# IWYU: std::vector used in verify_name_match.h without include
Patch305: chromium-115-verify_name_match-include.patch
# flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
Patch306: SkColor4f-init.patch
# Result(net_error, headers ? absl::optional<int>(headers->response_code())
Patch307: cookieresult.patch
# std::construct_at(__p, std::forward<_Args>(__args)...)
Patch308: brandversion-construct.patch
# Qt issue
Patch320: chromium-114-add_qt6_linuxui_backend.patch
Patch321: chromium-114-qt-handle_scale_factor_changes.patch
@ -404,6 +421,10 @@ Source21: https://nodejs.org/dist/latest-v16.x/node-%{nodejs_version}-linux-arm6
# Yandex logo
Source50: https://upload.wikimedia.org/wikipedia/commons/f/f1/Yandex_logo_2021_Russian.svg
# GOST
Source101: https://github.com/deemru/chromium-gost/archive/%{chromium_gost_commit}.tar.gz?/chromium-gost-%{chromium_gost_commit}.tar.gz
Source102: https://github.com/deemru/msspi/archive/%{msspi_commit}.tar.gz?/msspi-%{msspi_commit}.tar.gz
%if %{clang}
%if 0%{?rhel} == 7
BuildRequires: llvm-toolset-%{llvm_toolset_version}
@ -826,8 +847,16 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
%if %{gost}
Provides: %{name}-gost-lib = %{version}-%{release}
%endif
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
%if %{gost}
chromium-gost patches are integrated, this Chromium supports GOST TLS
if proprietary CryptoPro is installed.
%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
@ -895,12 +924,38 @@ udev.
%prep
%setup -q -n chromium-%{version}
%if %{gost}
rm -rf %{chromium_path_gost}
mkdir -p %{chromium_path_gost}
tar -C %{chromium_path_gost} --strip 1 -xf %{SOURCE101}
sed -i \
-e "s,^#include <../ssl/internal.h>,#include \"${PWD}/third_party/boringssl/src/ssl/internal.h\",g" \
%{chromium_path_gost}/src/gostssl.cpp
tar -C %{chromium_path_gost}/src/msspi --strip 1 -xf %{SOURCE102}
sed -i'' %{chromium_path_gost}/patch/chromium.patch \
-e 's/ (Chromium GOST)//g' \
-e 's/Chromium GOST/Chromium/g' \
-e 's/Chromium-Gost/Chromium/g' \
-e 's/"chromium-gost"/"chromium-browser"/g' \
-e 's/"chromium-gost.desktop"/"chromium-browser.desktop"/g' \
-e 's/(%s; Chromium GOST)/(%s)/' \
--
patch -p1 < %{chromium_path_gost}/patch/chromium.patch
( cd ./third_party/boringssl/src
patch -p1 < %{chromium_path_gost}/patch/boringssl.patch )
cp -f %{chromium_path_gost}/src/gostssl.cpp third_party/boringssl/gostssl.cpp
cp -f %{chromium_path_gost}/src/msspi/src/* third_party/boringssl
cp -f %{chromium_path_gost}/src/msspi/third_party/cprocsp/include/* third_party/boringssl/src/include
%endif
### Chromium Fedora Patches ###
%patch -P0 -p1 -b .sandboxpie
%patch -P1 -p1 -b .etc
%patch -P2 -p1 -b .gnsystem
%patch -P5 -p1 -b .nozlibmangle
%patch -P6 -p1 -b .nounrar
#patch -P6 -p1 -b .nounrar
%patch -P8 -p1 -b .widevine-other-locations
%patch -P11 -p1 -b .py3
@ -961,7 +1016,9 @@ udev.
%patch -P110 -p1 -b .buildflag-el7
%endif
%if ! %{clang}
%patch -P122 -p1 -b .gcc13
%endif
%if 0%{?rhel} == 9
%patch -P130 -p1 -b .revert-av1enc
@ -978,8 +1035,14 @@ udev.
%endif
%patch -P303 -p1 -b .typename
%patch -P304 -p1 -b .skia-include
%patch -P305 -p1 -b .verify_name_match-include
%patch -P306 -p1 -b .SkColor4f-init
%patch -P307 -p1 -b .cookieresult
%patch -P308 -p1 -b .brandversion-construct
%patch -P320 -p1 -b .add_qt6_linuxui_backend
#patch -P320 -p1 -b .add_qt6_linuxui_backend
%patch -P321 -p1 -b .handle_scale_factor_changes
%patch -P322 -p1 -b .fix_font_double_scaling
%patch -P323 -p1 -b .qt_deps
@ -1038,7 +1101,7 @@ cp -a %{_includedir}/libusb-1.0/libusb.h third_party/libusb/src/libusb/libusb.h
%endif
# Hard code extra version
sed -i 's/getenv("CHROME_VERSION_EXTRA")/"MSVSphere"/' chrome/common/channel_info_posix.cc
sed -i 's/getenv("CHROME_VERSION_EXTRA")/"MSVSphere, %{name} %{version}-%{release}%{?gost: + GOST TLS via CryptoPro}"/' chrome/common/channel_info_posix.cc
# Fix hardcoded path in remoting code
sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc
@ -1209,6 +1272,7 @@ CHROMIUM_BROWSER_GN_DEFINES+=' rtc_use_pipewire=true rtc_link_pipewire=true'
%endif
CHROMIUM_BROWSER_GN_DEFINES+=' use_system_libffi=true'
CHROMIUM_BROWSER_GN_DEFINES+=' enable_rust=false'
export CHROMIUM_BROWSER_GN_DEFINES
# headless gn defines
@ -1222,6 +1286,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_libpci=false use_pulseaudio=false use_udev=f
CHROMIUM_HEADLESS_GN_DEFINES+=' v8_enable_lazy_source_positions=false use_glib=false use_gtk=false use_pangocairo=false'
CHROMIUM_HEADLESS_GN_DEFINES+=' use_qt=false is_component_build=false enable_ffmpeg_video_decoders=false media_use_ffmpeg=false'
CHROMIUM_HEADLESS_GN_DEFINES+=' media_use_libvpx=false proprietary_codecs=false'
CHROMIUM_HEADLESS_GN_DEFINES+=' enable_rust=false'
export CHROMIUM_HEADLESS_GN_DEFINES
build/linux/unbundle/replace_gn_files.py --system-libraries \
@ -1679,6 +1744,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
* Fri Jul 21 2023 Arkady L. Shane <ashejn@msvsphere.ru> - 115.0.5790.98-1.inferit
- Update to 115.0.5790.98
- Disable rust
- Added many fixes
- Added GOST support
* Fri Jul 21 2023 Arkady L. Shane <ashejn@msvsphere.ru> - 114.0.5735.198-1.inferit.1
- Use original tarball
- Build with internal FFmpeg

Loading…
Cancel
Save