Merge branch 'rawhide' into f37

This commit is contained in:
Than Ngo 2023-05-03 12:54:56 +02:00
commit 12933d604c
17 changed files with 695 additions and 435 deletions

View File

@ -1,62 +0,0 @@
diff -up chromium-104.0.5112.101/chrome/browser/about_flags.cc.accel-mjpeg chromium-104.0.5112.101/chrome/browser/about_flags.cc
--- chromium-104.0.5112.101/chrome/browser/about_flags.cc.accel-mjpeg 2022-08-16 23:29:08.000000000 +0000
+++ chromium-104.0.5112.101/chrome/browser/about_flags.cc 2022-08-18 14:21:36.762266571 +0000
@@ -4485,12 +4485,12 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
#endif // ENABLE_VR
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
{"disable-accelerated-mjpeg-decode",
flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
diff -up chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc.accel-mjpeg chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc
--- chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc.accel-mjpeg 2022-08-16 23:29:09.000000000 +0000
+++ chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc 2022-08-18 14:25:23.609572649 +0000
@@ -4170,7 +4170,7 @@ const char kUseAngleGL[] = "OpenGL";
// ChromeOS -------------------------------------------------------------------
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame";
@@ -4178,6 +4178,10 @@ const char kAcceleratedMjpegDecodeDescri
"Enable hardware-accelerated mjpeg decode for captured frame where "
"available.";
+#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
const char kAdaptiveChargingForTestingName[] =
"Show adaptive charging notifications for testing";
const char kAdaptiveChargingForTestingDescription[] =
diff -up chromium-104.0.5112.101/chrome/browser/flag_descriptions.h.accel-mjpeg chromium-104.0.5112.101/chrome/browser/flag_descriptions.h
--- chromium-104.0.5112.101/chrome/browser/flag_descriptions.h.accel-mjpeg 2022-08-18 14:21:36.765266469 +0000
+++ chromium-104.0.5112.101/chrome/browser/flag_descriptions.h 2022-08-18 14:26:10.469983301 +0000
@@ -2390,11 +2390,15 @@ extern const char kUseAngleGL[];
// ChromeOS -------------------------------------------------------------------
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
extern const char kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[];
+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
extern const char kAdaptiveChargingName[];
extern const char kAdaptiveChargingDescription[];

View File

@ -1,19 +0,0 @@
diff -up chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc
--- chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-01-11 15:27:50.587737070 +0100
+++ chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc 2023-01-11 15:30:35.136829951 +0100
@@ -48,15 +48,9 @@ BASE_FEATURE(kMediaRemotingWithoutFullsc
"MediaRemotingWithoutFullscreen",
base::FEATURE_DISABLED_BY_DEFAULT);
-#if BUILDFLAG(IS_CHROMEOS)
BASE_FEATURE(kGlobalMediaControlsCastStartStop,
"GlobalMediaControlsCastStartStop",
base::FEATURE_DISABLED_BY_DEFAULT);
-#else
-BASE_FEATURE(kGlobalMediaControlsCastStartStop,
- "GlobalMediaControlsCastStartStop",
- base::FEATURE_ENABLED_BY_DEFAULT);
-#endif // BUILDFLAG(IS_CHROMEOS)
#endif // BUILDFLAG(IS_ANDROID)

View File

@ -1,79 +0,0 @@
Update web_instance on GTK when checking for dark mode
Adds some extra code to change the theme in the web instance when on GTK,
to fix prefers-color-scheme.
Also makes SystemDarkModeSupported return true on Linux,
since the most modern Linux distributions support it,
and Linux dark mode code doesnt detect whether or not it is supported.
This function seems to only be used in telemetry, so maybe it doesnt
need to be changed.
Bug: 998903
Change-Id: I02a084d9f733b01c8e6ad0f5ca5f1ebcfb16d475
diff --git a/AUTHORS b/AUTHORS
index 758d0bf..8c91146 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -735,6 +735,7 @@
Leith Bade <leith@leithalweapon.geek.nz>
Lei Gao <leigao@huawei.com>
Lei Li <lli.kernel.kvm@gmail.com>
+Lena Wildervanck <lena.wildervanck@gmail.com>
Lenny Khazan <lenny.khazan@gmail.com>
Leo Wolf <jclw@ymail.com>
Leon Han <leon.han@intel.com>
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 85c3931..2b0c2a84 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -1430,12 +1430,12 @@
BASE_FEATURE(kWebUIDarkMode,
"WebUIDarkMode",
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
- BUILDFLAG(IS_CHROMEOS)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
- // BUILDFLAG(IS_CHROMEOS)
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
);
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index a60d6e3..1200a80 100644
--- a/ui/gtk/native_theme_gtk.cc
+++ b/ui/gtk/native_theme_gtk.cc
@@ -165,6 +165,14 @@
UserHasContrastPreference()
? ui::NativeThemeBase::PreferredContrast::kMore
: ui::NativeThemeBase::PreferredContrast::kNoPreference);
+
+ // Update the web instance too to fix prefers-color-theme
+ NativeTheme* web_instance = NativeTheme::GetInstanceForWeb();
+ web_instance->set_use_dark_colors(ShouldUseDarkColors());
+ web_instance->set_preferred_color_scheme(CalculatePreferredColorScheme());
+ web_instance->SetPreferredContrast(CalculatePreferredContrast());
+ web_instance->NotifyOnNativeThemeUpdated();
+
native_theme->NotifyOnNativeThemeUpdated();
}
diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc
index 835fa36..feec109 100644
--- a/ui/native_theme/native_theme.cc
+++ b/ui/native_theme/native_theme.cc
@@ -36,7 +36,11 @@
#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_APPLE)
// static
bool NativeTheme::SystemDarkModeSupported() {
+#if BUILDFLAG(IS_LINUX)
+ return true;
+#else
return false;
+#endif
}
#endif

View File

@ -1,27 +1,29 @@
diff -up chromium-108.0.5359.124/AUTHORS.first_dts chromium-108.0.5359.124/AUTHORS
--- chromium-108.0.5359.124/AUTHORS.first_dts 2022-12-31 15:30:52.923006393 +0100
+++ chromium-108.0.5359.124/AUTHORS 2022-12-31 15:32:50.431215836 +0100
@@ -97,6 +97,7 @@ Andra Paraschiv <andra.paraschiv@intel.c
Andras Tokodi <a.tokodi@eyeo.com>
Andreas Nazlidis <andreas221b@gmail.com>
Andreas Papacharalampous <andreas@apap04.com>
+Andreas Schneider <asn@cryptomilk.org>
Andrei Borza <andrei.borza@gmail.com>
Andrei Parvu <andrei.prv@gmail.com>
Andrei Parvu <parvu@adobe.com>
diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc
--- chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc 2022-12-31 15:30:52.923006393 +0100
@@ -58,7 +58,7 @@ namespace media {
namespace {
-constexpr int64_t kInvalidPTSMarker = static_cast<int64_t>(0x8000000000000000);
+constexpr int64_t kRelativeTsBase = static_cast<int64_t>(0x7ffeffffffffffff);
void SetAVStreamDiscard(AVStream* stream, AVDiscard discard) {
DCHECK(stream);
@@ -91,7 +91,7 @@ static base::TimeDelta FramesToTimeDelta
From 2aef9000a1c8d76d3072365ffcb471ebffa20d3d Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@cryptomilk.org>
Date: Tue, 15 Mar 2022 14:26:16 +0100
Subject: [PATCH] Track first_dts instead of using non-upstream functions
The function av_stream_get_first_dts() is not an upstream ffmpeg function and
is not available if you build with system ffmpeg. We can easily track the
first_dts on our own.
See also
https://ffmpeg.org/pipermail/ffmpeg-devel/2021-September/285401.html
Bug: 1306560
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Change-Id: I90ba3cf2f2e16f56a0b405f26c67f911349fb71d
---
media/filters/ffmpeg_demuxer.cc | 18 ++++++++++++------
media/filters/ffmpeg_demuxer.h | 3 +++
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 111899b661..799fc6e941 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -97,7 +97,7 @@ static base::TimeDelta FramesToTimeDelta(int frames, double sample_rate) {
sample_rate);
}
@ -30,7 +32,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom
// The default start time is zero.
base::TimeDelta start_time;
@@ -101,12 +101,12 @@ static base::TimeDelta ExtractStartTime(
@@ -107,12 +107,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
// Next try to use the first DTS value, for codecs where we know PTS == DTS
// (excludes all H26x codecs). The start time must be returned in PTS.
@ -45,7 +47,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom
if (first_pts < start_time)
start_time = first_pts;
}
@@ -275,6 +275,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream
@@ -283,6 +283,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream(
fixup_negative_timestamps_(false),
fixup_chained_ogg_(false),
num_discarded_packet_warnings_(0),
@ -53,27 +55,18 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom
last_packet_pos_(AV_NOPTS_VALUE),
last_packet_dts_(AV_NOPTS_VALUE) {
DCHECK(demuxer_);
@@ -341,6 +342,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
@@ -349,6 +350,10 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
int64_t packet_dts =
packet->dts == AV_NOPTS_VALUE ? packet->pts : packet->dts;
+ if (first_dts_ == AV_NOPTS_VALUE && packet->dts != AV_NOPTS_VALUE &&
+ last_packet_dts_ != AV_NOPTS_VALUE) {
+ first_dts_ = packet->dts - (last_packet_dts_ + kRelativeTsBase);
+ if (first_dts_ == AV_NOPTS_VALUE) {
+ first_dts_ = packet_dts;
+ }
+
// Chained ogg files have non-monotonically increasing position and time stamp
// values, which prevents us from using them to determine if a packet should
// be dropped. Since chained ogg is only allowed on single track audio only
@@ -683,6 +689,7 @@ void FFmpegDemuxerStream::FlushBuffers(b
ResetBitstreamConverter();
if (!preserve_packet_position) {
+ first_dts_ = AV_NOPTS_VALUE;
last_packet_pos_ = AV_NOPTS_VALUE;
last_packet_dts_ = AV_NOPTS_VALUE;
}
@@ -1434,7 +1441,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone
@@ -1442,7 +1447,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone(int result) {
max_duration = std::max(max_duration, streams_[i]->duration());
@ -83,7 +76,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom
// Note: This value is used for seeking, so we must take the true value and
// not the one possibly clamped to zero below.
@@ -1591,7 +1599,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::Find
@@ -1599,7 +1605,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindStreamWithLowestStartTimestamp(
for (const auto& stream : streams_) {
if (!stream || stream->IsEnabled() != enabled)
continue;
@ -92,7 +85,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom
continue;
if (!lowest_start_time_stream ||
stream->start_time() < lowest_start_time_stream->start_time()) {
@@ -1612,7 +1620,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::Find
@@ -1620,7 +1626,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking(
if (stream->type() != DemuxerStream::VIDEO)
continue;
@ -101,17 +94,11 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom
continue;
if (!stream->IsEnabled())
@@ -1926,4 +1934,4 @@ void FFmpegDemuxer::RunPendingSeekCB(Pip
std::move(pending_seek_cb_).Run(status);
}
-} // namespace media
+} // namespace media
\ Kein Zeilenumbruch am Dateiende.
diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h
--- chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h 2022-12-31 15:30:52.924006403 +0100
@@ -145,6 +145,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream :
diff --git a/media/filters/ffmpeg_demuxer.h b/media/filters/ffmpeg_demuxer.h
index c147309d6f..48a8f6ad8c 100644
--- a/media/filters/ffmpeg_demuxer.h
+++ b/media/filters/ffmpeg_demuxer.h
@@ -151,6 +151,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
base::TimeDelta start_time() const { return start_time_; }
void set_start_time(base::TimeDelta time) { start_time_ = time; }
@ -120,7 +107,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts chromi
private:
friend class FFmpegDemuxerTest;
@@ -202,6 +204,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream :
@@ -208,6 +210,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
bool fixup_chained_ogg_;
int num_discarded_packet_warnings_;
@ -128,3 +115,6 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts chromi
int64_t last_packet_pos_;
int64_t last_packet_dts_;
};
--
2.35.1

View File

@ -1,79 +0,0 @@
diff -up chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn
--- chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-03-08 23:00:09.000000000 +0100
+++ chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn 2023-03-10 16:02:12.970759171 +0100
@@ -58,25 +58,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/content/common:file_type_policies",
- "//components/safe_browsing/core/common",
- "//third_party/unrar:unrar",
- ]
-
- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
- }
-
if (is_linux || is_win) {
source_set("document_analyzer") {
sources = [
@@ -172,7 +153,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core/common",
"//third_party/lzma_sdk/google:seven_zip_reader",
]
diff -up chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS.nounrar chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS
--- chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS.nounrar 2023-03-08 23:00:09.000000000 +0100
+++ chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS 2023-03-10 13:20:06.558188423 +0100
@@ -3,7 +3,6 @@ include_rules = [
"+components/safe_browsing/core/common",
"+third_party/maldoca",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
"+third_party/lzma_sdk/google",
]
diff -up chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn.nounrar chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn
--- chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn.nounrar 2023-03-08 23:00:09.000000000 +0100
+++ chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn 2023-03-10 13:20:06.558188423 +0100
@@ -60,7 +60,6 @@ source_set("file_util") {
deps += [
"//chrome/common/safe_browsing",
"//chrome/common/safe_browsing:archive_analyzer_results",
- "//chrome/common/safe_browsing:rar_analyzer",
]
if (is_linux || is_win) {
diff -up chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-03-08 23:00:09.000000000 +0100
+++ chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc 2023-03-10 13:20:06.558188423 +0100
@@ -45,12 +45,16 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}
void SafeArchiveAnalyzer::AnalyzeSevenZipFile(

View File

@ -0,0 +1,454 @@
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 3470da1..ff39851b 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -5628,8 +5628,12 @@
sources += [
"views/chrome_browser_main_extra_parts_views_linux.cc",
"views/chrome_browser_main_extra_parts_views_linux.h",
+ "views/dark_mode_manager_linux.cc",
+ "views/dark_mode_manager_linux.h",
]
deps += [
+ "//components/dbus/thread_linux",
+ "//dbus",
"//ui/base/cursor",
"//ui/ozone",
]
diff --git a/chrome/browser/ui/DEPS b/chrome/browser/ui/DEPS
index fc3fab23..b56a704e 100644
--- a/chrome/browser/ui/DEPS
+++ b/chrome/browser/ui/DEPS
@@ -42,6 +42,9 @@
"browser_navigator_browsertest\.cc": [
"+ash/shell.h",
],
+ "dark_mode_manager_linux\.cc": [
+ "+dbus",
+ ],
"fullscreen_controller_interactive_browsertest\.cc": [
"+ash/shell.h",
],
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
index dbc9cc4e..d7fad5b 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
@@ -7,6 +7,7 @@
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/themes/theme_service_aura_linux.h"
#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
#include "chrome/browser/ui/views/theme_profile_key.h"
#include "ui/base/buildflags.h"
#include "ui/base/cursor/cursor_factory.h"
@@ -56,6 +57,8 @@
UMA_HISTOGRAM_ENUMERATION("Linux.SystemTheme.Default",
linux_ui_theme->GetNativeTheme()->system_theme());
}
+
+ dark_mode_manager_ = std::make_unique<ui::DarkModeManagerLinux>();
}
void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() {
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
index 392d14c..6deb520 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
@@ -13,6 +13,7 @@
namespace ui {
class LinuxUiGetter;
+class DarkModeManagerLinux;
}
// Extra parts, which are used by both Ozone/X11/Wayland and inherited by the
@@ -41,6 +42,8 @@
absl::optional<display::ScopedDisplayObserver> display_observer_;
std::unique_ptr<ui::LinuxUiGetter> linux_ui_getter_;
+
+ std::unique_ptr<ui::DarkModeManagerLinux> dark_mode_manager_;
};
#endif // CHROME_BROWSER_UI_VIEWS_CHROME_BROWSER_MAIN_EXTRA_PARTS_VIEWS_LINUX_H_
diff --git a/chrome/browser/ui/views/dark_mode_manager_linux.cc b/chrome/browser/ui/views/dark_mode_manager_linux.cc
new file mode 100644
index 0000000..bb638f7
--- /dev/null
+++ b/chrome/browser/ui/views/dark_mode_manager_linux.cc
@@ -0,0 +1,160 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
+
+#include "base/functional/bind.h"
+#include "base/logging.h"
+#include "components/dbus/thread_linux/dbus_thread_linux.h"
+#include "dbus/bus.h"
+#include "dbus/message.h"
+#include "dbus/object_proxy.h"
+#include "ui/linux/linux_ui.h"
+#include "ui/linux/linux_ui_factory.h"
+#include "ui/native_theme/native_theme.h"
+
+namespace {
+
+constexpr char kFreedesktopSettingsService[] = "org.freedesktop.portal.Desktop";
+constexpr char kFreedesktopSettingsObjectPath[] =
+ "/org/freedesktop/portal/desktop";
+constexpr char kFreedesktopSettingsInterface[] =
+ "org.freedesktop.portal.Settings";
+constexpr char kSettingChangedSignal[] = "SettingChanged";
+constexpr char kReadMethod[] = "Read";
+constexpr char kSettingsNamespace[] = "org.freedesktop.appearance";
+constexpr char kColorSchemeKey[] = "color-scheme";
+constexpr int kFreedesktopColorSchemeDark = 1;
+
+scoped_refptr<dbus::Bus> CreateBus() {
+ dbus::Bus::Options options;
+ options.bus_type = dbus::Bus::SESSION;
+ options.connection_type = dbus::Bus::PRIVATE;
+ options.dbus_task_runner = dbus_thread_linux::GetTaskRunner();
+ return base::MakeRefCounted<dbus::Bus>(options);
+}
+
+} // namespace
+
+namespace ui {
+
+DarkModeManagerLinux::DarkModeManagerLinux()
+ : bus_(CreateBus()),
+ settings_proxy_(bus_->GetObjectProxy(
+ kFreedesktopSettingsService,
+ dbus::ObjectPath(kFreedesktopSettingsObjectPath))) {
+ // Subscribe to changes in the color scheme preference.
+ settings_proxy_->ConnectToSignal(
+ kFreedesktopSettingsInterface, kSettingChangedSignal,
+ base::BindRepeating(&DarkModeManagerLinux::OnPortalSettingChanged,
+ weak_ptr_factory_.GetWeakPtr()),
+ base::BindOnce(&DarkModeManagerLinux::OnSignalConnected,
+ weak_ptr_factory_.GetWeakPtr()));
+
+ // Read initial color scheme preference.
+ dbus::MethodCall method_call(kFreedesktopSettingsInterface, kReadMethod);
+ dbus::MessageWriter writer(&method_call);
+ writer.AppendString(kSettingsNamespace);
+ writer.AppendString(kColorSchemeKey);
+ settings_proxy_->CallMethod(
+ &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ base::BindOnce(&DarkModeManagerLinux::OnReadColorSchemeResponse,
+ weak_ptr_factory_.GetWeakPtr()));
+
+ // Read the toolkit preference while asynchronously fetching the
+ // portal preference.
+ if (auto* linux_ui_theme = ui::GetDefaultLinuxUiTheme()) {
+ auto* native_theme = linux_ui_theme->GetNativeTheme();
+ native_theme_observer_.Observe(native_theme);
+ SetColorScheme(native_theme->ShouldUseDarkColors());
+ }
+}
+
+DarkModeManagerLinux::~DarkModeManagerLinux() {
+ settings_proxy_ = nullptr;
+ dbus::Bus* const bus_ptr = bus_.get();
+ bus_ptr->GetDBusTaskRunner()->PostTask(
+ FROM_HERE, base::BindOnce(&dbus::Bus::ShutdownAndBlock, std::move(bus_)));
+}
+
+void DarkModeManagerLinux::OnNativeThemeUpdated(
+ ui::NativeTheme* observed_theme) {
+ SetColorScheme(observed_theme->ShouldUseDarkColors());
+}
+
+void DarkModeManagerLinux::OnSignalConnected(const std::string& interface_name,
+ const std::string& signal_name,
+ bool connected) {
+ // Nothing to do. Continue using the toolkit setting if !connected.
+}
+
+void DarkModeManagerLinux::OnPortalSettingChanged(dbus::Signal* signal) {
+ dbus::MessageReader reader(signal);
+
+ std::string namespace_changed;
+ std::string key_changed;
+ dbus::MessageReader variant_reader(nullptr);
+ if (!reader.PopString(&namespace_changed) ||
+ !reader.PopString(&key_changed) || !reader.PopVariant(&variant_reader)) {
+ LOG(ERROR) << "Received malformed Setting Changed signal from "
+ "org.freedesktop.portal.Settings";
+ return;
+ }
+
+ if (namespace_changed != kSettingsNamespace ||
+ key_changed != kColorSchemeKey) {
+ return;
+ }
+
+ uint32_t new_color_scheme;
+ if (!variant_reader.PopUint32(&new_color_scheme)) {
+ LOG(ERROR)
+ << "Failed to read color-scheme value from SettingChanged signal";
+ return;
+ }
+
+ SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark);
+}
+
+void DarkModeManagerLinux::OnReadColorSchemeResponse(dbus::Response* response) {
+ if (!response) {
+ // Continue using the toolkit setting.
+ return;
+ }
+
+ dbus::MessageReader reader(response);
+ dbus::MessageReader variant_reader(nullptr);
+ if (!reader.PopVariant(&variant_reader)) {
+ LOG(ERROR) << "Failed to read variant from Read method response";
+ return;
+ }
+
+ uint32_t new_color_scheme;
+ if (!variant_reader.PopVariantOfUint32(&new_color_scheme)) {
+ LOG(ERROR) << "Failed to read color-scheme value from Read "
+ "method response";
+ return;
+ }
+
+ // Ignore future updates from the toolkit theme.
+ native_theme_observer_.Reset();
+
+ SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark);
+}
+
+void DarkModeManagerLinux::SetColorScheme(bool prefer_dark_theme) {
+ if (prefer_dark_theme_ == prefer_dark_theme) {
+ return;
+ }
+ prefer_dark_theme_ = prefer_dark_theme;
+
+ NativeTheme* web_theme = NativeTheme::GetInstanceForWeb();
+ web_theme->set_use_dark_colors(prefer_dark_theme_);
+ web_theme->set_preferred_color_scheme(
+ prefer_dark_theme_ ? NativeTheme::PreferredColorScheme::kDark
+ : NativeTheme::PreferredColorScheme::kLight);
+ web_theme->NotifyOnNativeThemeUpdated();
+}
+
+} // namespace ui
diff --git a/chrome/browser/ui/views/dark_mode_manager_linux.h b/chrome/browser/ui/views/dark_mode_manager_linux.h
new file mode 100644
index 0000000..34b07ff
--- /dev/null
+++ b/chrome/browser/ui/views/dark_mode_manager_linux.h
@@ -0,0 +1,62 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_DARK_MODE_MANAGER_LINUX_H_
+#define CHROME_BROWSER_UI_VIEWS_DARK_MODE_MANAGER_LINUX_H_
+
+#include <string>
+
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/scoped_observation.h"
+#include "ui/native_theme/native_theme_observer.h"
+
+namespace dbus {
+class Bus;
+class ObjectProxy;
+class Response;
+class Signal;
+} // namespace dbus
+
+namespace ui {
+
+// Observes the system color scheme preference using
+// org.freedesktop.portal.Settings. Falls back to the toolkit preference if
+// org.freedesktop.portal.Settings is unavailable. Propagates the dark mode
+// preference to the web theme.
+class DarkModeManagerLinux : public NativeThemeObserver {
+ public:
+ DarkModeManagerLinux();
+ DarkModeManagerLinux(const DarkModeManagerLinux&) = delete;
+ DarkModeManagerLinux& operator=(const DarkModeManagerLinux&) = delete;
+ ~DarkModeManagerLinux() override;
+
+ private:
+ // ui::NativeThemeObserver:
+ void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override;
+
+ // D-Bus async handlers
+ void OnSignalConnected(const std::string& interface_name,
+ const std::string& signal_name,
+ bool connected);
+ void OnPortalSettingChanged(dbus::Signal* signal);
+ void OnReadColorSchemeResponse(dbus::Response* response);
+
+ // Sets `prefer_dark_theme_` and propagates to the web theme.
+ void SetColorScheme(bool prefer_dark_theme);
+
+ scoped_refptr<dbus::Bus> bus_;
+ raw_ptr<dbus::ObjectProxy> settings_proxy_;
+
+ bool prefer_dark_theme_ = false;
+
+ base::ScopedObservation<NativeTheme, NativeThemeObserver>
+ native_theme_observer_{this};
+
+ base::WeakPtrFactory<DarkModeManagerLinux> weak_ptr_factory_{this};
+};
+
+} // namespace ui
+
+#endif // CHROME_BROWSER_UI_VIEWS_DARK_MODE_MANAGER_LINUX_H_
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 91b1e98..7adddbd 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -1448,17 +1448,17 @@
BASE_FEATURE(kWebShare, "WebShare", base::FEATURE_DISABLED_BY_DEFAULT);
#endif
-// Whether to enable "dark mode" enhancements in Mac Mojave or Windows 10 for
-// UIs implemented with web technologies.
+// Whether to enable "dark mode" enhancements in Mac Mojave, Windows 10, or
+// Linux for UIs implemented with web technologies.
BASE_FEATURE(kWebUIDarkMode,
"WebUIDarkMode",
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
- BUILDFLAG(IS_CHROMEOS)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
- // BUILDFLAG(IS_CHROMEOS)
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
);
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
index b188ad0..6c0d2cd 100644
--- a/ui/qt/qt_ui.cc
+++ b/ui/qt/qt_ui.cc
@@ -98,6 +98,13 @@
QtNativeTheme& operator=(const QtNativeTheme&) = delete;
~QtNativeTheme() override = default;
+ void ThemeChanged(bool prefer_dark_theme) {
+ set_use_dark_colors(IsForcedDarkMode() || prefer_dark_theme);
+ set_preferred_color_scheme(CalculatePreferredColorScheme());
+
+ NotifyOnNativeThemeUpdated();
+ }
+
// ui::NativeTheme:
DISABLE_CFI_VCALL
void PaintFrameTopArea(cc::PaintCanvas* canvas,
@@ -387,7 +394,7 @@
}
void QtUi::ThemeChanged() {
- native_theme_->NotifyOnNativeThemeUpdated();
+ native_theme_->ThemeChanged(PreferDarkTheme());
}
DISABLE_CFI_VCALL
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index decfb02b6817e..108e2af907e25 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -5632,20 +5632,24 @@ static_library("ui") {
]
}
- if (use_aura) {
+ if (use_aura && (is_linux || is_chromeos_lacros)) {
# These files can do Gtk+-based theming for builds with gtk enabled.
- if (is_linux || is_chromeos_lacros) {
+ sources += [
+ "views/chrome_browser_main_extra_parts_views_linux.cc",
+ "views/chrome_browser_main_extra_parts_views_linux.h",
+ ]
+ deps += [
+ "//ui/base/cursor",
+ "//ui/ozone",
+ ]
+ if (use_dbus) {
sources += [
- "views/chrome_browser_main_extra_parts_views_linux.cc",
- "views/chrome_browser_main_extra_parts_views_linux.h",
"views/dark_mode_manager_linux.cc",
"views/dark_mode_manager_linux.h",
]
deps += [
"//components/dbus/thread_linux",
"//dbus",
- "//ui/base/cursor",
- "//ui/ozone",
]
}
}
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
index d7fad5b5b9007..23d0611fdb2b5 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
@@ -7,7 +7,6 @@
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/themes/theme_service_aura_linux.h"
#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
#include "chrome/browser/ui/views/theme_profile_key.h"
#include "ui/base/buildflags.h"
#include "ui/base/cursor/cursor_factory.h"
@@ -19,6 +18,10 @@
#include "ui/native_theme/native_theme.h"
#include "ui/ozone/public/ozone_platform.h"
+#if defined(USE_DBUS)
+#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
+#endif
+
namespace {
class LinuxUiGetterImpl : public ui::LinuxUiGetter {
@@ -57,8 +60,9 @@ void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() {
UMA_HISTOGRAM_ENUMERATION("Linux.SystemTheme.Default",
linux_ui_theme->GetNativeTheme()->system_theme());
}
-
+#if defined(USE_DBUS)
dark_mode_manager_ = std::make_unique<ui::DarkModeManagerLinux>();
+#endif
}
void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() {
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
index 6deb5205d198a..bc9167bda1fc3 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
@@ -13,7 +13,9 @@
namespace ui {
class LinuxUiGetter;
+#if defined(USE_DBUS)
class DarkModeManagerLinux;
+#endif
}
// Extra parts, which are used by both Ozone/X11/Wayland and inherited by the
@@ -42,8 +44,9 @@ class ChromeBrowserMainExtraPartsViewsLinux
absl::optional<display::ScopedDisplayObserver> display_observer_;
std::unique_ptr<ui::LinuxUiGetter> linux_ui_getter_;
-
+#if defined(USE_DBUS)
std::unique_ptr<ui::DarkModeManagerLinux> dark_mode_manager_;
+#endif
};
#endif // CHROME_BROWSER_UI_VIEWS_CHROME_BROWSER_MAIN_EXTRA_PARTS_VIEWS_LINUX_H_

View File

@ -0,0 +1,12 @@
diff -up chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc
--- chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-04-07 13:54:52.562292026 +0200
+++ chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc 2023-04-07 13:57:41.470414086 +0200
@@ -68,7 +68,7 @@ BASE_FEATURE(kGlobalMediaControlsCastSta
#else
BASE_FEATURE(kGlobalMediaControlsCastStartStop,
"GlobalMediaControlsCastStartStop",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS)
#endif // BUILDFLAG(IS_ANDROID)

View File

@ -54,17 +54,6 @@ diff -up chromium-109.0.5414.74/net/base/net_export.h.me chromium-109.0.5414.74/
// Defines NET_EXPORT so that functionality implemented by the net module can
// be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
// access features not intended to be used directly by real consumers.
diff -up chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h.me chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h
--- chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h.me 2023-01-17 17:46:30.830283261 +0100
+++ chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h 2023-01-17 17:46:40.158407274 +0100
@@ -5,6 +5,7 @@
#ifndef QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_
#define QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_
+#include <cstdint>
#include <string>
#include <vector>
diff -up chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h
--- chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me 2023-01-17 17:12:34.184686515 +0100
+++ chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h 2023-01-17 17:13:16.537162420 +0100
@ -386,3 +375,48 @@ diff -up chromium-109.0.5414.74/base/cpu.h.me chromium-109.0.5414.74/base/cpu.h
#include <string>
#include "base/base_export.h"
diff -up chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
--- chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me 2023-04-15 16:44:55.344305412 +0200
+++ chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-04-15 16:47:09.028666995 +0200
@@ -2854,6 +2854,7 @@ static void vma_aligned_free(void* VMA_N
// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
#if VMA_STATS_STRING_ENABLED
+#include <stdio.h>
static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
{
snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
diff -up chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h
--- chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me 2023-04-18 15:55:44.774916319 +0200
+++ chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h 2023-04-18 15:55:54.441085882 +0200
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
#include <vector>
+#include <variant>
#include "base/containers/span.h"
#include "base/functional/callback_forward.h"
diff -up chromium-113.0.5672.37/gin/time_clamper.h.me chromium-113.0.5672.37/gin/time_clamper.h
--- chromium-113.0.5672.37/gin/time_clamper.h.me 2023-04-18 16:38:41.180437467 +0200
+++ chromium-113.0.5672.37/gin/time_clamper.h 2023-04-18 16:39:43.857049432 +0200
@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
const int64_t micros = now_micros % 1000;
// abs() is necessary for devices with times before unix-epoch (most likely
// configured incorrectly).
- if (abs(micros) + kResolutionMicros < 1000) {
+ if (std::abs(micros) + kResolutionMicros < 1000) {
return now_micros / 1000;
}
return ClampTimeResolution(now_micros) / 1000;
diff -up chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc
--- chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me 2023-04-21 08:07:55.362714544 +0200
+++ chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc 2023-04-21 08:14:35.424158693 +0200
@@ -10,6 +10,7 @@
#include <queue>
#include <utility>
#include <vector>
+#include <cstring>
#include "base/check.h"
#include "base/files/file_path.h"

115
chromium-113-norar.patch Normal file
View File

@ -0,0 +1,115 @@
diff -up chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn
--- chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-04-07 13:11:59.495927476 +0200
+++ chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn 2023-04-07 13:47:57.004758029 +0200
@@ -143,8 +143,6 @@ source_set("safe_browsing") {
"protobuf_message_log_macros.h",
"protobuf_message_read_macros.h",
"protobuf_message_write_macros.h",
- "rar_analyzer.cc",
- "rar_analyzer.h",
"seven_zip_analyzer.cc",
"seven_zip_analyzer.h",
"zip_analyzer.cc",
@@ -160,7 +158,6 @@ source_set("safe_browsing") {
"//components/safe_browsing/content/common:file_type_policies",
"//components/safe_browsing/core/common",
"//third_party/lzma_sdk/google:seven_zip_reader",
- "//third_party/unrar:unrar",
]
if (is_linux) {
diff -up chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS.nounrar chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS
--- chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS.nounrar 2023-04-04 20:41:26.000000000 +0200
+++ chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS 2023-04-07 13:11:59.495927476 +0200
@@ -3,7 +3,6 @@ include_rules = [
"+components/safe_browsing/core/common",
"+third_party/maldoca",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
"+third_party/lzma_sdk/google",
]
diff -up chromium-113.0.5672.24/chrome/services/file_util/BUILD.gn.nounrar chromium-113.0.5672.24/chrome/services/file_util/BUILD.gn
diff -up chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-04-07 13:11:59.495927476 +0200
+++ chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc 2023-04-07 13:52:52.998109006 +0200
@@ -61,6 +61,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
base::File rar_file,
mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
temp_file_getter_.Bind(std::move(temp_file_getter));
callback_ = std::move(callback);
@@ -76,6 +77,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
rar_analyzer_.Init(std::move(rar_file), base::FilePath(),
std::move(analysis_finished_callback),
std::move(temp_file_getter_callback), &results_);
+#else
+ NOTREACHED();
+#endif
}
void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
diff -up chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc.me chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc
--- chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc.me 2023-04-23 18:10:06.103858362 +0200
+++ chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc 2023-04-23 18:12:05.428092347 +0200
@@ -18,7 +18,7 @@
#include "base/time/time.h"
#include "build/build_config.h"
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
-#include "chrome/common/safe_browsing/rar_analyzer.h"
+//#include "chrome/common/safe_browsing/rar_analyzer.h"
#include "components/safe_browsing/content/common/file_type_policies.h"
#include "components/safe_browsing/core/common/features.h"
#include "components/safe_browsing/core/common/proto/csd.pb.h"
@@ -132,14 +132,14 @@ bool ZipAnalyzer::AnalyzeNestedArchive(
std::move(nested_analysis_finished_callback),
get_temp_file_callback_, results_);
return true;
- } else if (file_type == DownloadFileType::RAR) {
+ } /* else if (file_type == DownloadFileType::RAR) {
nested_rar_analyzer_ = std::make_unique<safe_browsing::RarAnalyzer>();
nested_rar_analyzer_->Init(temp_file_.Duplicate(),
root_zip_path_.Append(path),
std::move(nested_analysis_finished_callback),
get_temp_file_callback_, results_);
return true;
- }
+ }*/
return false;
}
diff -up chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h.me chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h
--- chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h.me 2023-04-23 18:12:11.316203496 +0200
+++ chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h 2023-04-23 18:12:26.827498082 +0200
@@ -78,7 +78,7 @@ class ZipAnalyzer {
// DFS.
// TODO(crbug.com/1426164) Create a common class to hold all analyzers.
std::unique_ptr<safe_browsing::ZipAnalyzer> nested_zip_analyzer_;
- std::unique_ptr<safe_browsing::RarAnalyzer> nested_rar_analyzer_;
+// std::unique_ptr<safe_browsing::RarAnalyzer> nested_rar_analyzer_;
base::WeakPtrFactory<ZipAnalyzer> weak_factory_{this};
};
diff -up chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h.me chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h
--- chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h.me 2023-04-23 18:06:26.476791520 +0200
+++ chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h 2023-04-23 18:08:58.594606171 +0200
@@ -6,7 +6,7 @@
#define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
-#include "chrome/common/safe_browsing/rar_analyzer.h"
+//#include "chrome/common/safe_browsing/rar_analyzer.h"
#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
#include "mojo/public/cpp/bindings/remote.h"
@@ -59,7 +59,7 @@ class SafeArchiveAnalyzer : public chrom
void Timeout();
safe_browsing::ZipAnalyzer zip_analyzer_;
- safe_browsing::RarAnalyzer rar_analyzer_;
+// safe_browsing::RarAnalyzer rar_analyzer_;
// A timer to ensure no archive takes too long to unpack.
base::OneShotTimer timeout_timer_;

View File

@ -1,6 +1,6 @@
diff -up chromium-99.0.4844.51/components/os_crypt/features.gni.disblegnomekeyring chromium-99.0.4844.51/components/os_crypt/features.gni
--- chromium-99.0.4844.51/components/os_crypt/features.gni.disblegnomekeyring 2022-03-05 14:24:15.073877597 -0500
+++ chromium-99.0.4844.51/components/os_crypt/features.gni 2022-03-05 14:25:04.174183483 -0500
diff -up chromium-113.0.5672.24/components/os_crypt/sync/features.gni.disblegnomekeyring chromium-113.0.5672.24/components/os_crypt/sync/features.gni
--- chromium-113.0.5672.24/components/os_crypt/sync/features.gni.disblegnomekeyring 2023-04-07 14:23:11.083985460 +0200
+++ chromium-113.0.5672.24/components/os_crypt/sync/features.gni 2023-04-07 14:23:44.276599353 +0200
@@ -8,7 +8,7 @@ import("//build/config/ui.gni")
declare_args() {
# Whether to use libgnome-keyring (deprecated by libsecret).

View File

@ -1,10 +0,0 @@
diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h
--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 20:18:01.000000000 +0000
+++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 21:37:45.635374949 +0000
@@ -12,4 +12,6 @@
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
// as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
+
#endif // WIDEVINE_CDM_VERSION_H_

View File

@ -1,36 +0,0 @@
diff -up chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
--- chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix 2020-10-07 12:38:47.000000000 -0400
+++ chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2020-10-14 16:20:46.938556042 -0400
@@ -58,6 +58,7 @@ unsigned int GetVaFormatForVideoCodecPro
return VA_RT_FORMAT_YUV420;
}
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
// Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
// Lake) Cpu platform id's are referenced from the following file in kernel
// source arch/x86/include/asm/intel-family.h
@@ -70,6 +71,7 @@ bool IsGeminiLakeOrLater() {
cpuid.model() >= kGeminiLakeModelId;
return is_geminilake_or_later;
}
+#endif
} // namespace
@@ -1214,6 +1216,8 @@ VaapiVideoDecodeAccelerator::DecideBuffe
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
return BufferAllocationMode::kNormal;
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ // Move this to chromeOs only as it is causing problem in some intel linux drivers
// On Gemini Lake, Kaby Lake and later we can pass to libva the client's
// PictureBuffers to decode onto, which skips the use of the Vpp unit and its
// associated format reconciliation copy, avoiding all internal buffer
@@ -1229,6 +1233,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
num_extra_pics_ = 3;
return BufferAllocationMode::kNone;
}
+#endif
// For H.264 on older devices, another +1 is experimentally needed for
// high-to-high resolution changes.

View File

@ -1,24 +0,0 @@
diff -up chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
--- chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2021-07-19 14:47:19.000000000 -0400
+++ chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2021-07-26 17:02:23.160750472 -0400
@@ -83,7 +83,7 @@ def _MinifyJS(input_js):
with tempfile.NamedTemporaryFile() as _:
args = [
- 'python',
+ 'python2',
rjsmin_path
]
p = subprocess.Popen(args,
diff -up chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py
--- chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 2021-07-19 14:45:43.000000000 -0400
+++ chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py 2021-07-26 17:02:23.160750472 -0400
@@ -130,7 +130,7 @@ def main(argv):
if not options.debug:
gn_gen_args += ' is_debug=false'
subprocess.check_call([
- gn_path, 'gen', out_dir,
+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
'--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
])

View File

@ -1,14 +0,0 @@
diff -up chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc.widevine-no-download chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc
--- chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc.widevine-no-download 2022-03-04 14:57:16.459599123 +0000
+++ chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc 2022-03-04 14:58:39.560763939 +0000
@@ -105,10 +105,6 @@ void RegisterComponentsForUpdate() {
RegisterMediaFoundationWidevineCdmComponent(cus);
#endif
-#if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
- RegisterWidevineCdmComponent(cus);
-#endif // BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
-
#if BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_CHROMEOS_ASH)
// PNaCl on Chrome OS is on rootfs and there is no need to download it. But

View File

@ -1,8 +1,4 @@
# system wide chromium flags
CHROMIUM_FLAGS=""
CHROMIUM_FLAGS+=" --disable-features=AudioServiceSandbox,UseChromeOSDirectVideoDecoder,AllowQt"
CHROMIUM_FLAGS+=" --enable-features=VaapiVideoDecoder,VaapiVideoEncoder"
if [ "$XDG_SESSION_TYPE" == "wayland" ] || [[ $WAYLAND_DISPLAY ]] ; then
CHROMIUM_FLAGS+=" --use-gl=egl"
fi
CHROMIUM_FLAGS+=" --disable-features=AudioServiceSandbox,Vulkan,AllowQt"
CHROMIUM_FLAGS+=" --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL"

View File

@ -241,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
Version: 112.0.5615.165
Version: 113.0.5672.63
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@ -260,18 +260,11 @@ 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-112-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r3.patch
Patch7: chromium-71.0.3578.98-widevine-r3.patch
Patch6: chromium-113-norar.patch
# Try to load widevine from other places
Patch8: chromium-108-widevine-other-locations.patch
# Do not download proprietary widevine module in the background (thanks Debian)
Patch9: chromium-99.0.4844.51-widevine-no-download.patch
# Tell bootstrap.py to always use the version of Python we specify
Patch11: chromium-93.0.4577.63-py3-bootstrap.patch
@ -314,13 +307,13 @@ Patch89: chromium-108-system-brotli.patch
# disable GlobalMediaControlsCastStartStop to avoid crash
# when using the address bar media player button
Patch90: chromium-109-disable-GlobalMediaControlsCastStartStop.patch
Patch90: chromium-113-disable-GlobalMediaControlsCastStartStop.patch
# patch for using system opus
Patch91: chromium-108-system-opus.patch
# fix prefers-color-scheme
Patch92: chromium-110-gtktheme.patch
# enable WebUIDarkMode
Patch92: chromium-113-WebUIDarkMode.patch
# need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
Patch100: chromium-108-el7-include-fcntl-memfd.patch
@ -351,12 +344,12 @@ Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch
Patch114: chromium-107-ffmpeg-duration.patch
Patch115: chromium-107-proprietary-codecs.patch
# drop av_stream_get_first_dts from internal ffmpeg
Patch116: chromium-108-ffmpeg-first_dts.patch
Patch116: chromium-112-ffmpeg-first_dts.patch
# revert new-channel-layout-api on f36, old ffmpeg-free
Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
# gcc13
Patch122: chromium-109-gcc13.patch
Patch122: chromium-113-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
@ -364,17 +357,11 @@ Patch130: chromium-103-VirtualCursor-std-layout.patch
# Pagesize > 4kb
Patch146: chromium-110-LargerThan4k.patch
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
Patch203: chromium-112-check-passthrough-command-decoder.patch
Patch204: chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch
Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch
Patch206: chromium-112-ozone-wayland-vaapi-support.patch
Patch207: chromium-112-enable-vaapi-ozone-wayland.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch
Patch300: chromium-113-rhel8-force-disable-use_gnome_keyring.patch
# workaround for bug in clang 14 with c++20 on rhel9, linker errors std::u16string
Patch301: chromium-112-workaround-llvm14-c++20-epel8.patch
# workaround for bug in clang 14 with c++20 on rhel9, linker errors std::u16string
Patch301: chromium-112-workaround-llvm14-c++20-epel8.patch
@ -896,9 +883,7 @@ udev.
%patch -P2 -p1 -b .gnsystem
%patch -P5 -p1 -b .nozlibmangle
%patch -P6 -p1 -b .nounrar
%patch -P7 -p1 -b .widevine-hack
%patch -P8 -p1 -b .widevine-other-locations
%patch -P9 -p1 -b .widevine-no-download
%patch -P11 -p1 -b .py3
%patch -P20 -p1 -b .disable-font-test
@ -930,7 +915,7 @@ udev.
%patch -P91 -p1 -b .system-opus
%endif
%patch -P92 -p1 -b .gtk-prefers-color-scheme
%patch -P92 -p1 -b .WebUIDarkMod
# Fedora branded user agent
%if 0%{?fedora}
@ -963,16 +948,6 @@ udev.
%patch -P122 -p1 -b .gcc13
# Feature specific patches
%if %{use_vaapi}
%patch -P202 -p1 -b .accel-mjpeg
%patch -P203 -p1 -R -b .revert
%patch -P204 -p1 -R -b .revert
%patch -P205 -p1 -b .vaapi-intel-fix
%patch -P206 -p1 -b .wayland-vaapi
%patch -P207 -p1 -b .enable-wayland-vaapi
%endif
%if 0%{?rhel} >= 8
%patch -P300 -p1 -b .disblegnomekeyring
%endif
@ -1040,7 +1015,7 @@ export LANG=en_US.UTF-8
%if %{clang}
FLAGS=' -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument'
FLAGS+=' -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable'
FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration'
FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes'
%endif
%if %{system_build_flags}
@ -1659,6 +1634,13 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
* Wed May 03 2023 Than Ngo <than@redhat.com> - 113.0.5672.63-1
- update to 113.0.5672.63
* Sun Apr 23 2023 Than Ngo <than@redhat.com> - 112.0.5615.165-2
- make --use-gl=egl default for x11/wayland
- enable WebUIDarkMode
* Thu Apr 20 2023 Than Ngo <than@redhat.com> - 112.0.5615.165-1
- update to 112.0.5615.165

View File

@ -1,3 +1,3 @@
SHA512 (node-v19.8.1-linux-arm64.tar.xz) = 86ff19085669e92ce7afe2fd7d4df0c5441df2d88c00f29d5463b805f3cf5625626db8aebf98349c9a495b772da1ce6d68263730018207ea98815058a1c81397
SHA512 (node-v19.8.1-linux-x64.tar.xz) = 925c0037c6b7074d0b0245bced20d0a0d9b1300f53b808106f16b5018d763f5f5b00bc321b33fa1033d736b1e1076608da9b7fcae66aed53d27b100b1186e2c6
SHA512 (chromium-112.0.5615.165-clean.tar.xz) = 68f8f4f0e8add04e608c1d285351b38de0199ac5635b29dcce653b30435e68431f92ea7b381d6fe6cb4ffd5b1910e66ed6f82aab62a8fab952cb969a40f7456a
SHA512 (chromium-113.0.5672.63-clean.tar.xz) = f172496e8569864db26872a4762564f094c3ca726f340d69c9dfaca6c260b0a4bbb37ad711f6ab6b9efd9ee58510b1a2a130f829183ae6a3bd711e7d1478954b