diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index 7e793864f..5997c9386 100644 --- a/CHROMIUM_BUILD_COMPATIBILITY.txt +++ b/CHROMIUM_BUILD_COMPATIBILITY.txt @@ -7,6 +7,6 @@ # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding { - 'chromium_checkout': 'refs/tags/120.0.6099.129', + 'chromium_checkout': 'refs/tags/120.0.6099.199', 'depot_tools_checkout': 'f01ca5848d' } diff --git a/include/cef_api_hash.h b/include/cef_api_hash.h index 4d855bacb..c5c8fa3fd 100644 --- a/include/cef_api_hash.h +++ b/include/cef_api_hash.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved. +// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/patch/patches/chrome_browser_background_mode_1100085.patch b/patch/patches/chrome_browser_background_mode_1100085.patch index ca405202f..b3c14541f 100644 --- a/patch/patches/chrome_browser_background_mode_1100085.patch +++ b/patch/patches/chrome_browser_background_mode_1100085.patch @@ -52,7 +52,7 @@ index 906ec958256ef..f7c6973bcad3b 100644 std::unique_ptr manager) override; #endif diff --git chrome/browser/lifetime/browser_close_manager.cc chrome/browser/lifetime/browser_close_manager.cc -index 1fbc225de7b84..55847e48ed0c2 100644 +index f9f2936904a4a..a44a00b978a2b 100644 --- chrome/browser/lifetime/browser_close_manager.cc +++ chrome/browser/lifetime/browser_close_manager.cc @@ -157,12 +157,14 @@ void BrowserCloseManager::CloseBrowsers() { diff --git a/patch/patches/chrome_runtime_views.patch b/patch/patches/chrome_runtime_views.patch index a0a059223..7f1527072 100644 --- a/patch/patches/chrome_runtime_views.patch +++ b/patch/patches/chrome_runtime_views.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc -index 7d57988659286..576550dd75111 100644 +index 2abd329e1ba7d..e812968372741 100644 --- chrome/browser/ui/browser_command_controller.cc +++ chrome/browser/ui/browser_command_controller.cc @@ -400,6 +400,7 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( @@ -41,7 +41,7 @@ index 7d57988659286..576550dd75111 100644 bool BrowserCommandController::IsWebAppOrCustomTab() const { diff --git chrome/browser/ui/toolbar/app_menu_model.cc chrome/browser/ui/toolbar/app_menu_model.cc -index fb4f948c933de..9c594108e619d 100644 +index 38b59cea39875..9106229719db6 100644 --- chrome/browser/ui/toolbar/app_menu_model.cc +++ chrome/browser/ui/toolbar/app_menu_model.cc @@ -594,6 +594,57 @@ SaveAndShareSubMenuModel::SaveAndShareSubMenuModel( @@ -102,7 +102,7 @@ index fb4f948c933de..9c594108e619d 100644 } // namespace //////////////////////////////////////////////////////////////////////////////// -@@ -1442,7 +1493,7 @@ bool AppMenuModel::IsCommandIdChecked(int command_id) const { +@@ -1450,7 +1501,7 @@ bool AppMenuModel::IsCommandIdChecked(int command_id) const { return false; } @@ -111,7 +111,7 @@ index fb4f948c933de..9c594108e619d 100644 GlobalError* error = GlobalErrorServiceFactory::GetForProfile(browser_->profile()) ->GetGlobalErrorByMenuItemCommandID(command_id); -@@ -1457,6 +1508,30 @@ bool AppMenuModel::IsCommandIdEnabled(int command_id) const { +@@ -1465,6 +1516,30 @@ bool AppMenuModel::IsCommandIdEnabled(int command_id) const { } } @@ -142,7 +142,7 @@ index fb4f948c933de..9c594108e619d 100644 bool AppMenuModel::IsCommandIdAlerted(int command_id) const { if (command_id == IDC_VIEW_PASSWORDS || command_id == IDC_SHOW_PASSWORD_MANAGER) { -@@ -1650,11 +1725,15 @@ void AppMenuModel::Build() { +@@ -1630,11 +1705,15 @@ void AppMenuModel::Build() { kDefaultIconSize)); } @@ -163,7 +163,7 @@ index fb4f948c933de..9c594108e619d 100644 AddItemWithStringId(IDC_PRINT, IDS_PRINT); -@@ -1743,9 +1822,13 @@ void AppMenuModel::Build() { +@@ -1723,9 +1802,13 @@ void AppMenuModel::Build() { kMoreToolsMenuItem); if (!features::IsChromeRefresh2023()) { @@ -180,7 +180,7 @@ index fb4f948c933de..9c594108e619d 100644 } if (!features::IsChromeRefresh2023()) { -@@ -1832,6 +1915,11 @@ void AppMenuModel::Build() { +@@ -1812,6 +1895,11 @@ void AppMenuModel::Build() { SetCommandIcon(this, IDC_EXIT, kExitMenuIcon); } @@ -193,7 +193,7 @@ index fb4f948c933de..9c594108e619d 100644 } diff --git chrome/browser/ui/toolbar/app_menu_model.h chrome/browser/ui/toolbar/app_menu_model.h -index 3a9d1508b6a5f..96aacadaaabbd 100644 +index bba8a3887c023..967f424d88ad2 100644 --- chrome/browser/ui/toolbar/app_menu_model.h +++ chrome/browser/ui/toolbar/app_menu_model.h @@ -214,6 +214,7 @@ class AppMenuModel : public ui::SimpleMenuModel, @@ -363,10 +363,10 @@ index 0c231b6ac5b01..6b5af98e18e42 100644 BrowserFrame(const BrowserFrame&) = delete; BrowserFrame& operator=(const BrowserFrame&) = delete; diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc -index 7931768402968..0de6d2560575f 100644 +index b4cc05d5e3a1f..5971ab0111edf 100644 --- chrome/browser/ui/views/frame/browser_view.cc +++ chrome/browser/ui/views/frame/browser_view.cc -@@ -342,11 +342,10 @@ using content::NativeWebKeyboardEvent; +@@ -343,11 +343,10 @@ using content::NativeWebKeyboardEvent; using content::WebContents; using web_modal::WebContentsModalDialogHost; @@ -381,7 +381,7 @@ index 7931768402968..0de6d2560575f 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) // UMA histograms that record animation smoothness for tab loading animation. -@@ -861,11 +860,23 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver { +@@ -862,11 +861,23 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver { /////////////////////////////////////////////////////////////////////////////// // BrowserView, public: @@ -406,7 +406,7 @@ index 7931768402968..0de6d2560575f 100644 // Store the actions so that the access is available for other classes. if (base::FeatureList::IsEnabled(features::kSidePanelPinning)) { browser_->SetUserData(BrowserActions::UserDataKey(), -@@ -925,7 +936,6 @@ BrowserView::BrowserView(std::unique_ptr browser) +@@ -926,7 +937,6 @@ BrowserView::BrowserView(std::unique_ptr browser) } browser_->tab_strip_model()->AddObserver(this); @@ -414,7 +414,7 @@ index 7931768402968..0de6d2560575f 100644 // Top container holds tab strip region and toolbar and lives at the front of // the view hierarchy. -@@ -985,8 +995,15 @@ BrowserView::BrowserView(std::unique_ptr browser) +@@ -986,8 +996,15 @@ BrowserView::BrowserView(std::unique_ptr browser) contents_container->SetLayoutManager(std::make_unique( devtools_web_view_, contents_web_view_)); @@ -432,7 +432,7 @@ index 7931768402968..0de6d2560575f 100644 contents_separator_ = top_container_->AddChildView(std::make_unique()); -@@ -1060,7 +1077,9 @@ BrowserView::~BrowserView() { +@@ -1061,7 +1078,9 @@ BrowserView::~BrowserView() { // All the tabs should have been destroyed already. If we were closed by the // OS with some tabs than the NativeBrowserFrame should have destroyed them. @@ -442,7 +442,7 @@ index 7931768402968..0de6d2560575f 100644 // Stop the animation timer explicitly here to avoid running it in a nested // message loop, which may run by Browser destructor. -@@ -1074,12 +1093,14 @@ BrowserView::~BrowserView() { +@@ -1075,12 +1094,14 @@ BrowserView::~BrowserView() { // child views and it is an observer for avatar toolbar button if any. autofill_bubble_handler_.reset(); @@ -457,7 +457,7 @@ index 7931768402968..0de6d2560575f 100644 // The TabStrip attaches a listener to the model. Make sure we shut down the // TabStrip first so that it can cleanly remove the listener. -@@ -1097,7 +1118,9 @@ BrowserView::~BrowserView() { +@@ -1098,7 +1119,9 @@ BrowserView::~BrowserView() { // `SidePanelUI::RemoveSidePanelUIForBrowser()` deletes the // SidePanelCoordinator. @@ -467,7 +467,7 @@ index 7931768402968..0de6d2560575f 100644 } // static -@@ -1972,9 +1995,14 @@ void BrowserView::OnExclusiveAccessUserInput() { +@@ -1973,9 +1996,14 @@ void BrowserView::OnExclusiveAccessUserInput() { bool BrowserView::ShouldHideUIForFullscreen() const { // Immersive mode needs UI for the slide-down top panel. @@ -483,7 +483,7 @@ index 7931768402968..0de6d2560575f 100644 return frame_->GetFrameView()->ShouldHideTopUIForFullscreen(); } -@@ -3063,7 +3091,8 @@ DownloadShelf* BrowserView::GetDownloadShelf() { +@@ -3068,7 +3096,8 @@ DownloadShelf* BrowserView::GetDownloadShelf() { } DownloadBubbleUIController* BrowserView::GetDownloadBubbleUIController() { @@ -493,7 +493,7 @@ index 7931768402968..0de6d2560575f 100644 if (auto* download_button = toolbar_button_provider_->GetDownloadButton()) return download_button->bubble_controller(); return nullptr; -@@ -3614,7 +3643,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() { +@@ -3619,7 +3648,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() { if (top_container()->parent() == this) return; @@ -503,7 +503,7 @@ index 7931768402968..0de6d2560575f 100644 top_container()->DestroyLayer(); AddChildViewAt(top_container(), 0); EnsureFocusOrder(); -@@ -4076,11 +4106,38 @@ void BrowserView::GetAccessiblePanes(std::vector* panes) { +@@ -4081,11 +4111,38 @@ void BrowserView::GetAccessiblePanes(std::vector* panes) { bool BrowserView::ShouldDescendIntoChildForEventHandling( gfx::NativeView child, const gfx::Point& location) { @@ -544,7 +544,7 @@ index 7931768402968..0de6d2560575f 100644 // Draggable regions are defined relative to the web contents. gfx::Point point_in_contents_web_view_coords(location); views::View::ConvertPointToTarget(GetWidget()->GetRootView(), -@@ -4089,7 +4146,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling( +@@ -4094,7 +4151,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling( // Draggable regions should be ignored for clicks into any browser view's // owned widgets, for example alerts, permission prompts or find bar. @@ -553,7 +553,7 @@ index 7931768402968..0de6d2560575f 100644 point_in_contents_web_view_coords.x(), point_in_contents_web_view_coords.y()) || WidgetOwnedByAnchorContainsPoint(point_in_contents_web_view_coords); -@@ -4197,8 +4254,10 @@ void BrowserView::Layout() { +@@ -4202,8 +4259,10 @@ void BrowserView::Layout() { // TODO(jamescook): Why was this in the middle of layout code? toolbar_->location_bar()->omnibox_view()->SetFocusBehavior( @@ -566,7 +566,7 @@ index 7931768402968..0de6d2560575f 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) // In chromeOS ash we round the bottom two corners of the browser frame by -@@ -4276,6 +4335,11 @@ void BrowserView::AddedToWidget() { +@@ -4281,6 +4340,11 @@ void BrowserView::AddedToWidget() { SetThemeProfileForWindow(GetNativeWindow(), browser_->profile()); #endif @@ -578,7 +578,7 @@ index 7931768402968..0de6d2560575f 100644 toolbar_->Init(); // TODO(pbos): Investigate whether the side panels should be creatable when -@@ -4324,13 +4388,9 @@ void BrowserView::AddedToWidget() { +@@ -4329,13 +4393,9 @@ void BrowserView::AddedToWidget() { EnsureFocusOrder(); @@ -594,7 +594,7 @@ index 7931768402968..0de6d2560575f 100644 using_native_frame_ = frame_->ShouldUseNativeFrame(); MaybeInitializeWebUITabStrip(); -@@ -4750,7 +4810,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, +@@ -4755,7 +4815,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, // Undo our anti-jankiness hacks and force a re-layout. in_process_fullscreen_ = false; ToolbarSizeChanged(false); @@ -604,7 +604,7 @@ index 7931768402968..0de6d2560575f 100644 } bool BrowserView::ShouldUseImmersiveFullscreenForUrl(const GURL& url) const { -@@ -5139,6 +5200,8 @@ Profile* BrowserView::GetProfile() { +@@ -5144,6 +5205,8 @@ Profile* BrowserView::GetProfile() { } void BrowserView::UpdateUIForTabFullscreen() { @@ -613,7 +613,7 @@ index 7931768402968..0de6d2560575f 100644 frame()->GetFrameView()->UpdateFullscreenTopUI(); } -@@ -5161,6 +5224,8 @@ void BrowserView::HideDownloadShelf() { +@@ -5166,6 +5229,8 @@ void BrowserView::HideDownloadShelf() { } bool BrowserView::CanUserExitFullscreen() const {