This commit is contained in:
Michael Peters 2023-01-08 13:30:24 -08:00
parent ec8aad4f22
commit ed6204655b
7 changed files with 47 additions and 192 deletions

View File

@ -1,3 +1,4 @@
set -x
# Allow building against system libraries in official builds
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \

View File

@ -1,32 +0,0 @@
From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001
From: Muyao Xu <muyaoxu@google.com>
Date: Thu, 20 Jan 2022 23:46:21 +0000
Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by
default
The feature is rolled out to 100% stable through finch for M96+.
This CL enables it by default and fixes some unit tests failures.
Bug: 1287242, 1287305
Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Commit-Queue: Muyao Xu <muyaoxu@google.com>
Cr-Commit-Position: refs/heads/main@{#961658}
---
chrome/browser/media/router/media_router_feature.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
index f28f9b0b802..a8d544f7d6d 100644
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -33,7 +33,7 @@ const base::Feature kMediaRouter{"MediaRouter",
const base::Feature kCastAllowAllIPsFeature{"CastAllowAllIPs",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kGlobalMediaControlsCastStartStop{
- "GlobalMediaControlsCastStartStop", base::FEATURE_DISABLED_BY_DEFAULT};
+ "GlobalMediaControlsCastStartStop", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kAllowAllSitesToInitiateMirroring{
"AllowAllSitesToInitiateMirroring", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kDialMediaRouteProvider{"DialMediaRouteProvider",

View File

@ -17,7 +17,7 @@ by Wayland later.
---
diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
index 62e3a42..bde9c2d 100644
index 54825cd..0a57166 100644
--- a/media/gpu/vaapi/vaapi_picture_factory.cc
+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
@@ -105,7 +105,7 @@ uint32_t VaapiPictureFactory::GetGLTextureTarget() {
@ -30,7 +30,7 @@ index 62e3a42..bde9c2d 100644
#else
return gfx::BufferFormat::YUV_420_BIPLANAR;
diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap.cc
index 941f24c..a9c8035 100644
index 18c6c22..fe614b6 100644
--- a/media/gpu/vaapi/vaapi_picture_native_pixmap.cc
+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap.cc
@@ -4,6 +4,7 @@
@ -65,7 +65,7 @@ index 941f24c..a9c8035 100644
bool VaapiPictureNativePixmap::AllowOverlay() const {
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
index bf791d8..9e394eb 100644
index 37e3520..9d17122 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
@@ -560,12 +560,12 @@ void VaapiVideoDecodeAccelerator::InitiateSurfaceSetChange(
@ -84,7 +84,7 @@ index bf791d8..9e394eb 100644
} else {
requested_num_reference_frames_ = 0;
diff --git a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc
index 35378d1..68969d2 100644
index 1a5016b..eca714b 100644
--- a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc
+++ b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc
@@ -32,7 +32,9 @@ GbmPixmapWayland::GbmPixmapWayland(WaylandBufferManagerGpu* buffer_manager)
@ -99,7 +99,7 @@ index 35378d1..68969d2 100644
}
diff --git a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h
index 9e8b2fa..9918508 100644
index 84ebcba..dfb2675 100644
--- a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h
+++ b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h
@@ -92,6 +92,9 @@ class GbmPixmapWayland : public gfx::NativePixmap {
@ -113,10 +113,10 @@ index 9e8b2fa..9918508 100644
} // namespace ui
diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
index c13bd3a..04fa160 100644
index afbd464..189678f 100644
--- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc
+++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
@@ -297,6 +297,9 @@ class OzonePlatformWayland : public OzonePlatform,
@@ -295,6 +295,9 @@ class OzonePlatformWayland : public OzonePlatform,
properties->supports_global_screen_coordinates =
features::IsWaylandScreenCoordinatesEnabled();

View File

@ -1,12 +1,13 @@
diff --git a/media/base/supported_types.cc b/media/base/supported_types.cc
index c2efcdb..cc28d84 100644
index c47d83f..ebbbce5 100644
--- a/media/base/supported_types.cc
+++ b/media/base/supported_types.cc
@@ -205,34 +205,7 @@ bool IsHevcProfileSupported(const VideoType& type) {
@@ -205,28 +205,7 @@ bool IsHevcProfileSupported(const VideoType& type) {
return false;
#if BUILDFLAG(ENABLE_PLATFORM_HEVC)
-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_MAC)
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- // TODO(b/171813538): For Lacros, the supplemental profile cache will be
- // asking lacros-gpu, but we will be doing decoding in ash-gpu. Until the
@ -18,14 +19,6 @@ index c2efcdb..cc28d84 100644
- }
-#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
- return GetSupplementalProfileCache()->IsProfileSupported(type.profile);
-#elif BUILDFLAG(IS_MAC)
- if (__builtin_available(macOS 11.0, *))
- return base::FeatureList::IsEnabled(kPlatformHEVCDecoderSupport) &&
- (type.profile == HEVCPROFILE_MAIN ||
- type.profile == HEVCPROFILE_MAIN10 ||
- type.profile == HEVCPROFILE_MAIN_STILL_PICTURE ||
- type.profile == HEVCPROFILE_REXT);
- return false;
-#elif BUILDFLAG(IS_ANDROID)
- // Technically android 5.0 mandates support for only HEVC main profile,
- // however some platforms (like chromecast) have had more profiles supported
@ -33,7 +26,8 @@ index c2efcdb..cc28d84 100644
- return base::FeatureList::IsEnabled(kPlatformHEVCDecoderSupport);
-#else
return true;
-#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ||
- // BUILDFLAG(IS_MAC)
#else
return false;
#endif // BUILDFLAG(ENABLE_PLATFORM_HEVC)

View File

@ -1,38 +0,0 @@
From ed8d931e35f81d8566835a579caf7d61368f85b7 Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <evangelos@foutrelis.com>
Date: Tue, 27 Sep 2022 22:20:41 +0000
Subject: [PATCH] unbundle/jsoncpp: avoid CFI faults with is_cfi=true
Ensure jsoncpp symbols have public visibility and are thus excluded from
CFI checks and whole-program optimization. This is achieved by defining
JSON_DLL_BUILD which in turn causes json/config.h to define JSON_API as
__attribute__((visibility("default"))). The latter macro is used to tag
jsoncpp classes and namespace functions throughout jsoncpp's headers.
BUG=1365218
Change-Id: I56277737b7d9ecaeb5e17c8d21a2e55f3d5d5bc9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3919652
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1052077}
---
build/linux/unbundle/jsoncpp.gn | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/build/linux/unbundle/jsoncpp.gn b/build/linux/unbundle/jsoncpp.gn
index 544f9d13c9..e84a0ef27a 100644
--- a/build/linux/unbundle/jsoncpp.gn
+++ b/build/linux/unbundle/jsoncpp.gn
@@ -3,6 +3,11 @@ import("//build/shim_headers.gni")
pkg_config("jsoncpp_config") {
packages = [ "jsoncpp" ]
+
+ # Defining JSON_DLL_BUILD applies public visibility to jsoncpp classes
+ # thus deactivating CFI checks for them. This avoids CFI violations in
+ # virtual calls to system jsoncpp library (https://crbug.com/1365218).
+ defines = [ "JSON_DLL_BUILD" ]
}
shim_headers("jsoncpp_shim") {

View File

@ -38,36 +38,7 @@ apply-aur-mods:
# rename "../patches" to "../chromium-patches"
# rename "../" to "../aur-patches"
apply-aur-patches:
# Use the --oauth2-client-id= and --oauth2-client-secret= switches for
# setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at
# runtime -- this allows signing into Chromium without baked-in values
cd chromium-src && patch -Np1 -i ../aur-patches/use-oauth2-client-switches-as-default.patch
# Upstream fixes
cd chromium-src && patch -Np1 -i ../aur-patches/unbundle-jsoncpp-avoid-CFI-faults-with-is_cfi-true.patch
# Revert kGlobalMediaControlsCastStartStop enabled by default
# https://crbug.com/1314342
cd chromium-src && patch -Rp1 -F3 -i ../aur-patches/REVERT-enable-GlobalMediaControlsCastStartStop.patch
# Revert ffmpeg roll requiring new channel layout API support
# https://crbug.com/1325301
cd chromium-src && patch -Rp1 -i ../aur-patches/REVERT-roll-src-third_party-ffmpeg-m102.patch
# Revert switch from AVFrame::pkt_duration to AVFrame::duration
cd chromium-src && patch -Rp1 -i ../aur-patches/REVERT-roll-src-third_party-ffmpeg-m106.patch
# https://crbug.com/angleproject/7582
cd chromium-src && patch -Np0 -i ../aur-patches/angle-wayland-include-protocol.patch
# Fixes for building with libstdc++ instead of libc++
cd chromium-src && patch -Np1 -i ../chromium-patches/chromium-103-VirtualCursor-std-layout.patch
cd chromium-src && patch -Np1 -i ../chromium-patches/chromium-106-AutofillPopupControllerImpl-namespace.patch
# Enable vaapi on wayland
cd chromium-src && patch -Np1 -i ../aur-patches/ozone-add-va-api-support-to-wayland.patch
# Remove HEVC profile limits
cd chromium-src && patch -Np1 -i ../aur-patches/remove-main-main10-profile-limit.patch
cd chromium-src && ../aur-patches.sh
# Ungoogled Chromium Steps
prune-binaries:
@ -99,16 +70,7 @@ subst-domains:
configure-libraries:
cd chromium-src && ../configure-libraries.sh
# TODO: add something for removing the -Wno-deprecated-builtins lines in these two files
# Doing this makes the build much quieter (and looks like it's not breaking)
# michael@styx ~/builds/chromium/chromium-src $ rg -- -Wno-deprecated-builtins  master
# build/config/compiler/BUILD.gn
# 1538: # "-Wno-deprecated-builtins",
# build/nocompile.gni
# 134: "-Wno-deprecated-builtins",
# Build the package
# Build the package (this can take 4-5 hours)
build-chromium:
cd chromium-src && ../build.sh

View File

@ -1,12 +1,12 @@
diff --git a/chrome/browser/ui/tabs/tab_menu_model.cc b/chrome/browser/ui/tabs/tab_menu_model.cc
index 8d557554..a5afac82 100644
index 3e59c6dd..79235fb3 100644
--- a/chrome/browser/ui/tabs/tab_menu_model.cc
+++ b/chrome/browser/ui/tabs/tab_menu_model.cc
@@ -51,42 +51,45 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
@@ -53,42 +53,47 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
AddItemWithStringId(TabStripModel::CommandNewTabToRight,
base::i18n::IsRTL() ? IDS_TAB_CXMENU_NEWTABTOLEFT
: IDS_TAB_CXMENU_NEWTABTORIGHT);
- if (!tab_strip->profile()->IsGuestSession()) {
- if (tab_strip->delegate()->SupportsReadLater()) {
- AddItem(
- TabStripModel::CommandAddToReadLater,
- l10n_util::GetPluralStringFUTF16(IDS_TAB_CXMENU_READ_LATER, num_tabs));
@ -25,7 +25,7 @@ index 8d557554..a5afac82 100644
- add_to_existing_group_submenu_.get());
- if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
- SetIsNewFeatureAt(GetItemCount() - 1, true);
- } else {
- } else if (!tab_strip->delegate()->IsForWebApp()) {
- AddItem(TabStripModel::CommandAddToNewGroup,
- l10n_util::GetPluralStringFUTF16(
- IDS_TAB_CXMENU_ADD_TAB_TO_NEW_GROUP, num_tabs));
@ -33,15 +33,25 @@ index 8d557554..a5afac82 100644
- if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
- SetIsNewFeatureAt(GetItemCount() - 1, true);
- }
+ // Add to Reading List
+ // if (!tab_strip->profile()->IsGuestSession()) {
-
- for (const auto& selection : indices) {
- if (tab_strip->GetTabGroupForTab(selection).has_value()) {
- AddItemWithStringId(TabStripModel::CommandRemoveFromGroup,
- IDS_TAB_CXMENU_REMOVE_TAB_FROM_GROUP);
- break;
- }
- }
-
+ // Add to Reading List
+ // if (tab_strip->delegate()->SupportsReadLater()) {
+ // AddItem(
+ // TabStripModel::CommandAddToReadLater,
+ // l10n_util::GetPluralStringFUTF16(IDS_TAB_CXMENU_READ_LATER, num_tabs));
+ // SetEnabledAt(GetItemCount() - 1,
+ // tab_strip->IsReadLaterSupportedForAny(indices));
+ // }
+ // Change Tab Group
+
+ // Change Tab Group
+ // if (ExistingTabGroupSubMenuModel::ShouldShowSubmenu(
+ // tab_strip, index, tab_menu_model_delegate_)) {
+ // // Create submenu with existing groups
@ -54,7 +64,7 @@ index 8d557554..a5afac82 100644
+ // add_to_existing_group_submenu_.get());
+ // if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
+ // SetIsNewFeatureAt(GetItemCount() - 1, true);
+ // } else {
+ // } else if (!tab_strip->delegate()->IsForWebApp()) {
+ // AddItem(TabStripModel::CommandAddToNewGroup,
+ // l10n_util::GetPluralStringFUTF16(
+ // IDS_TAB_CXMENU_ADD_TAB_TO_NEW_GROUP, num_tabs));
@ -62,14 +72,8 @@ index 8d557554..a5afac82 100644
+ // if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
+ // SetIsNewFeatureAt(GetItemCount() - 1, true);
+ // }
- for (const auto& selection : indices) {
- if (tab_strip->GetTabGroupForTab(selection).has_value()) {
- AddItemWithStringId(TabStripModel::CommandRemoveFromGroup,
- IDS_TAB_CXMENU_REMOVE_TAB_FROM_GROUP);
- break;
- }
- }
+
+ // Remove Tab Group
+ // for (const auto& selection : indices) {
+ // if (tab_strip->GetTabGroupForTab(selection).has_value()) {
+ // AddItemWithStringId(TabStripModel::CommandRemoveFromGroup,
@ -77,52 +81,16 @@ index 8d557554..a5afac82 100644
+ // break;
+ // }
+ // }
+ // New Window / Move to other Window
if (ExistingWindowSubMenuModel::ShouldShowSubmenu(tab_strip->profile())) {
// Create submenu with existing windows
add_to_existing_window_submenu_ = ExistingWindowSubMenuModel::Create(
@@ -102,9 +105,17 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
}
AddSeparator(ui::NORMAL_SEPARATOR);
- AddItemWithStringId(TabStripModel::CommandReload, IDS_TAB_CXMENU_RELOAD);
- AddItemWithStringId(TabStripModel::CommandDuplicate,
- IDS_TAB_CXMENU_DUPLICATE);
+ // AddItemWithStringId(TabStripModel::CommandCloseTab, IDS_TAB_CXMENU_CLOSETAB);
+ AddItemWithStringId(TabStripModel::CommandCloseOtherTabs,
+ IDS_TAB_CXMENU_CLOSEOTHERTABS);
+ AddItemWithStringId(TabStripModel::CommandCloseTabsToRight,
+ base::i18n::IsRTL() ? IDS_TAB_CXMENU_CLOSETABSTOLEFT
+ : IDS_TAB_CXMENU_CLOSETABSTORIGHT);
+
+ AddSeparator(ui::NORMAL_SEPARATOR);
+ // AddItemWithStringId(TabStripModel::CommandReload, IDS_TAB_CXMENU_RELOAD);
+ // AddItemWithStringId(TabStripModel::CommandDuplicate,
+ // IDS_TAB_CXMENU_DUPLICATE);
bool will_pin = tab_strip->WillContextMenuPin(index);
AddItemWithStringId(
TabStripModel::CommandTogglePinned,
@@ -139,14 +150,6 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
ui::ImageModel::FromVectorIcon(kLaptopAndSmartphoneIcon));
#endif
}
-
- AddSeparator(ui::NORMAL_SEPARATOR);
- AddItemWithStringId(TabStripModel::CommandCloseTab, IDS_TAB_CXMENU_CLOSETAB);
- AddItemWithStringId(TabStripModel::CommandCloseOtherTabs,
- IDS_TAB_CXMENU_CLOSEOTHERTABS);
- AddItemWithStringId(TabStripModel::CommandCloseTabsToRight,
- base::i18n::IsRTL() ? IDS_TAB_CXMENU_CLOSETABSTOLEFT
- : IDS_TAB_CXMENU_CLOSETABSTORIGHT);
}
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TabMenuModel,
+ // New Window / Move to Other Window
if (!tab_strip->delegate()->IsForWebApp()) {
if (ExistingWindowSubMenuModel::ShouldShowSubmenu(tab_strip->profile())) {
// Create submenu with existing windows
diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.cc b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
index 5ecd2cb5..5e71050d 100644
index b870b26d..1f929e71 100644
--- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc
+++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
@@ -142,7 +142,8 @@ TabStripRegionView::TabStripRegionView(std::unique_ptr<TabStrip> tab_strip) {
@@ -144,7 +144,8 @@ TabStripRegionView::TabStripRegionView(std::unique_ptr<TabStrip> tab_strip) {
}
if (browser->is_type_normal() &&
@ -133,10 +101,10 @@ index 5ecd2cb5..5e71050d 100644
tab_search_button->SetTooltipText(
l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_SEARCH));
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 25792a74..0939f1e7 100644
index 18d4cd76..4624c698 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -339,10 +339,11 @@ void LocationBarView::Init() {
@@ -351,10 +351,11 @@ void LocationBarView::Init() {
// final mocks.
params.types_enabled.push_back(PageActionIconType::kSaveAutofillAddress);
}
@ -153,10 +121,10 @@ index 25792a74..0939f1e7 100644
params.types_enabled.push_back(PageActionIconType::kBookmarkStar);
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
index dade217a..bf25de0b 100644
index b8d748c6..987de424 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -335,8 +335,8 @@ void ToolbarView::Init() {
@@ -344,8 +344,8 @@ void ToolbarView::Init() {
if (send_tab_to_self_button)
send_tab_to_self_button_ = AddChildView(std::move(send_tab_to_self_button));
@ -167,7 +135,7 @@ index dade217a..bf25de0b 100644
avatar_ = AddChildView(std::make_unique<AvatarToolbarButton>(browser_view_));
@@ -363,7 +363,8 @@ void ToolbarView::Init() {
@@ -372,7 +372,8 @@ void ToolbarView::Init() {
else if (flag_value == "never")
show_avatar_toolbar_button = false;