diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index 3cb742793..9697aecd8 100644 --- a/CHROMIUM_BUILD_COMPATIBILITY.txt +++ b/CHROMIUM_BUILD_COMPATIBILITY.txt @@ -7,5 +7,5 @@ # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding { - 'chromium_checkout': 'refs/tags/128.0.6613.18' + 'chromium_checkout': 'refs/tags/128.0.6613.114' } diff --git a/patch/patches/browser_security_policy_1081397.patch b/patch/patches/browser_security_policy_1081397.patch index 0af4e195a..dd28d1f4b 100644 --- a/patch/patches/browser_security_policy_1081397.patch +++ b/patch/patches/browser_security_policy_1081397.patch @@ -1,8 +1,8 @@ diff --git content/browser/child_process_security_policy_impl.cc content/browser/child_process_security_policy_impl.cc -index 214c70f690b18..7e481aee2a1ca 100644 +index 7d2a81d96995c..69dc5d6321a90 100644 --- content/browser/child_process_security_policy_impl.cc +++ content/browser/child_process_security_policy_impl.cc -@@ -2079,6 +2079,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessMaybeOpaqueOrigin( +@@ -2080,6 +2080,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessMaybeOpaqueOrigin( // DeclarativeApiTest.PersistRules. if (actual_process_lock.matches_scheme(url::kDataScheme)) return true; diff --git a/patch/patches/chrome_browser.patch b/patch/patches/chrome_browser.patch index c87d25831..86c8dfc1d 100644 --- a/patch/patches/chrome_browser.patch +++ b/patch/patches/chrome_browser.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn -index 7c6e3dea2fa88..8eded7f24dfc2 100644 +index fe0452e8bd462..bb5f86e59e7f7 100644 --- chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn @@ -12,6 +12,7 @@ import("//build/config/compiler/pgo/pgo.gni") @@ -10,7 +10,7 @@ index 7c6e3dea2fa88..8eded7f24dfc2 100644 import("//chrome/browser/buildflags.gni") import("//chrome/browser/downgrade/buildflags.gni") import("//chrome/browser/request_header_integrity/buildflags.gni") -@@ -2062,6 +2063,7 @@ static_library("browser") { +@@ -2058,6 +2059,7 @@ static_library("browser") { "//build/config/chromebox_for_meetings:buildflags", "//build/config/compiler:compiler_buildflags", "//cc", @@ -18,7 +18,7 @@ index 7c6e3dea2fa88..8eded7f24dfc2 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -2771,6 +2773,10 @@ static_library("browser") { +@@ -2767,6 +2769,10 @@ static_library("browser") { ] } diff --git a/patch/patches/chrome_browser_background_mode_1100085.patch b/patch/patches/chrome_browser_background_mode_1100085.patch index 8e4d92f87..79de06fae 100644 --- a/patch/patches/chrome_browser_background_mode_1100085.patch +++ b/patch/patches/chrome_browser_background_mode_1100085.patch @@ -14,7 +14,7 @@ index 583dbb67a9def..c76c7984642a7 100644 std::unique_ptr manager) = 0; #endif diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc -index c37a02792e1ff..9002b26fd85f3 100644 +index 8cd42a06863df..f6c33081197cd 100644 --- chrome/browser/browser_process_impl.cc +++ chrome/browser/browser_process_impl.cc @@ -1111,18 +1111,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() { diff --git a/patch/patches/chrome_browser_browser.patch b/patch/patches/chrome_browser_browser.patch index 497ef9575..8275b232b 100644 --- a/patch/patches/chrome_browser_browser.patch +++ b/patch/patches/chrome_browser_browser.patch @@ -13,7 +13,7 @@ index 2480282a19d12..dbd1fbf8a15b5 100644 return false; } diff --git chrome/browser/devtools/devtools_window.cc chrome/browser/devtools/devtools_window.cc -index 4acc7a7a3998c..d80104e8f5aa3 100644 +index a7c33cf116281..345270714cccd 100644 --- chrome/browser/devtools/devtools_window.cc +++ chrome/browser/devtools/devtools_window.cc @@ -38,6 +38,7 @@ diff --git a/patch/patches/chrome_browser_context_menus.patch b/patch/patches/chrome_browser_context_menus.patch index a921c95dc..b3ea098c8 100644 --- a/patch/patches/chrome_browser_context_menus.patch +++ b/patch/patches/chrome_browser_context_menus.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc -index 98a4191e1e91d..9fbe141d267c9 100644 +index 4932213c27cf0..12963b155a5fe 100644 --- chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ chrome/browser/renderer_context_menu/render_view_context_menu.cc @@ -352,6 +352,18 @@ base::OnceCallback* GetMenuShownCallback() { @@ -32,7 +32,7 @@ index 98a4191e1e91d..9fbe141d267c9 100644 id = CollapseCommandsForUMA(id); const auto& map = GetIdcToUmaMap(type); auto it = map.find(id); -@@ -883,6 +899,14 @@ RenderViewContextMenu::RenderViewContextMenu( +@@ -893,6 +909,14 @@ RenderViewContextMenu::RenderViewContextMenu( : nullptr; #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -47,7 +47,7 @@ index 98a4191e1e91d..9fbe141d267c9 100644 observers_.AddObserver(&autofill_context_menu_manager_); } -@@ -1344,6 +1368,12 @@ void RenderViewContextMenu::InitMenu() { +@@ -1354,6 +1378,12 @@ void RenderViewContextMenu::InitMenu() { autofill_client->HideAutofillSuggestions( autofill::SuggestionHidingReason::kContextMenuOpened); } @@ -60,7 +60,7 @@ index 98a4191e1e91d..9fbe141d267c9 100644 } Profile* RenderViewContextMenu::GetProfile() const { -@@ -3626,6 +3656,26 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting( +@@ -3636,6 +3666,26 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting( execute_plugin_action_callback_ = std::move(cb); } @@ -88,7 +88,7 @@ index 98a4191e1e91d..9fbe141d267c9 100644 RenderViewContextMenu::GetHandlersForLinkUrl() { custom_handlers::ProtocolHandlerRegistry::ProtocolHandlerList handlers = diff --git chrome/browser/renderer_context_menu/render_view_context_menu.h chrome/browser/renderer_context_menu/render_view_context_menu.h -index 1fb447e87c1f9..7e530509425f4 100644 +index af505a77c2aa6..d647cfe6bc252 100644 --- chrome/browser/renderer_context_menu/render_view_context_menu.h +++ chrome/browser/renderer_context_menu/render_view_context_menu.h @@ -153,7 +153,21 @@ class RenderViewContextMenu @@ -113,7 +113,7 @@ index 1fb447e87c1f9..7e530509425f4 100644 Profile* GetProfile() const; // This may return nullptr (e.g. for WebUI dialogs). Virtual to allow tests to -@@ -475,6 +489,9 @@ class RenderViewContextMenu +@@ -476,6 +490,9 @@ class RenderViewContextMenu // built. bool is_protocol_submenu_valid_ = false; diff --git a/patch/patches/chrome_runtime.patch b/patch/patches/chrome_runtime.patch index 27caac97f..b94a54fde 100644 --- a/patch/patches/chrome_runtime.patch +++ b/patch/patches/chrome_runtime.patch @@ -481,7 +481,7 @@ index 9a8dfdb6bc3ce..5981a8a0fae38 100644 +#endif } diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc -index 4b8cf312d4ca4..ef3c7e5e372b4 100644 +index c4b98aa0e759f..4b61126a6fa92 100644 --- chrome/browser/chrome_content_browser_client.cc +++ chrome/browser/chrome_content_browser_client.cc @@ -46,6 +46,7 @@ @@ -492,7 +492,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 #include "chrome/browser/after_startup_task_utils.h" #include "chrome/browser/ai/ai_manager_keyed_service_factory.h" #include "chrome/browser/app_mode/app_mode_utils.h" -@@ -1518,6 +1519,8 @@ ChromeContentBrowserClient::GetPopupNavigationDelegateFactoryForTesting() { +@@ -1523,6 +1524,8 @@ ChromeContentBrowserClient::GetPopupNavigationDelegateFactoryForTesting() { } ChromeContentBrowserClient::ChromeContentBrowserClient() { @@ -501,7 +501,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 #if BUILDFLAG(ENABLE_PLUGINS) extra_parts_.push_back( std::make_unique()); -@@ -1555,6 +1558,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() { +@@ -1560,6 +1563,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() { } } @@ -513,7 +513,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 // static void ChromeContentBrowserClient::RegisterLocalStatePrefs( PrefRegistrySimple* registry) { -@@ -3890,28 +3898,25 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs, +@@ -3905,28 +3913,25 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs, web_prefs->preferred_color_scheme; } #else @@ -559,7 +559,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 #endif // BUILDFLAG(IS_ANDROID) // Reauth WebUI doesn't support dark mode yet because it shares the dialog -@@ -4693,9 +4698,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( +@@ -4708,9 +4713,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( &search::HandleNewTabURLReverseRewrite); #endif // BUILDFLAG(IS_ANDROID) @@ -571,7 +571,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 } base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() { -@@ -6794,7 +6801,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( +@@ -6810,7 +6817,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( #endif } @@ -580,7 +580,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, -@@ -6812,6 +6819,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( +@@ -6828,6 +6835,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( network_context_params->user_agent = GetUserAgentBasedOnPolicy(context); network_context_params->accept_language = GetApplicationLocale(); } @@ -589,7 +589,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 } std::vector -@@ -7929,10 +7938,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted( +@@ -7945,10 +7954,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted( const auto now = base::TimeTicks::Now(); const auto timeout = GetKeepaliveTimerTimeout(context); keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout); @@ -602,7 +602,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 FROM_HERE, keepalive_deadline_ - now, base::BindOnce( &ChromeContentBrowserClient::OnKeepaliveTimerFired, -@@ -7951,7 +7960,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() { +@@ -7967,7 +7976,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() { --num_keepalive_requests_; if (num_keepalive_requests_ == 0) { DVLOG(1) << "Stopping the keepalive timer"; @@ -612,7 +612,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 // This deletes the keep alive handle attached to the timer function and // unblock the shutdown sequence. } -@@ -8100,7 +8110,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired( +@@ -8116,7 +8126,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired( const auto now = base::TimeTicks::Now(); const auto then = keepalive_deadline_; if (now < then) { @@ -622,7 +622,7 @@ index 4b8cf312d4ca4..ef3c7e5e372b4 100644 base::BindOnce(&ChromeContentBrowserClient::OnKeepaliveTimerFired, weak_factory_.GetWeakPtr(), diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h -index be75c2ce84ba4..f76963b5023ef 100644 +index b668d0f80abf2..a486d9d0bdea7 100644 --- chrome/browser/chrome_content_browser_client.h +++ chrome/browser/chrome_content_browser_client.h @@ -150,6 +150,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { @@ -643,7 +643,7 @@ index be75c2ce84ba4..f76963b5023ef 100644 content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, -@@ -1248,7 +1250,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -1249,7 +1251,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { #if !BUILDFLAG(IS_ANDROID) uint64_t num_keepalive_requests_ = 0; @@ -653,7 +653,7 @@ index be75c2ce84ba4..f76963b5023ef 100644 #endif diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc -index 0f37944dfa465..6d36a31dff18c 100644 +index 8cf6b5d7d4281..ee979b5d7a4da 100644 --- chrome/browser/prefs/browser_prefs.cc +++ chrome/browser/prefs/browser_prefs.cc @@ -16,6 +16,7 @@ diff --git a/patch/patches/chrome_runtime_views.patch b/patch/patches/chrome_runtime_views.patch index 0b2206902..1605ee011 100644 --- a/patch/patches/chrome_runtime_views.patch +++ b/patch/patches/chrome_runtime_views.patch @@ -397,7 +397,7 @@ index 14a8a70d853f6..bf81594947886 100644 // regenerated. bool RegenerateFrameOnThemeChange(BrowserThemeChangeType theme_change_type); diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc -index 6e5ce23ae43a4..12cd21a6e71ab 100644 +index 41c6c06ccfb21..382c02cece70a 100644 --- chrome/browser/ui/views/frame/browser_view.cc +++ chrome/browser/ui/views/frame/browser_view.cc @@ -354,11 +354,10 @@ using content::WebContents; @@ -564,7 +564,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 top_container()->DestroyLayer(); AddChildViewAt(top_container(), 0); EnsureFocusOrder(); -@@ -4283,11 +4326,38 @@ void BrowserView::GetAccessiblePanes(std::vector* panes) { +@@ -4284,11 +4327,38 @@ void BrowserView::GetAccessiblePanes(std::vector* panes) { bool BrowserView::ShouldDescendIntoChildForEventHandling( gfx::NativeView child, const gfx::Point& location) { @@ -605,7 +605,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 // Draggable regions are defined relative to the web contents. gfx::Point point_in_contents_web_view_coords(location); views::View::ConvertPointToTarget(GetWidget()->GetRootView(), -@@ -4296,7 +4366,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling( +@@ -4297,7 +4367,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. @@ -614,7 +614,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 point_in_contents_web_view_coords.x(), point_in_contents_web_view_coords.y()) || WidgetOwnedByAnchorContainsPoint(point_in_contents_web_view_coords); -@@ -4407,8 +4477,10 @@ void BrowserView::Layout(PassKey) { +@@ -4408,8 +4478,10 @@ void BrowserView::Layout(PassKey) { // TODO(jamescook): Why was this in the middle of layout code? toolbar_->location_bar()->omnibox_view()->SetFocusBehavior( @@ -627,7 +627,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 // Some of the situations when the BrowserView is laid out are: // - Enter/exit immersive fullscreen mode. -@@ -4474,6 +4546,11 @@ void BrowserView::AddedToWidget() { +@@ -4475,6 +4547,11 @@ void BrowserView::AddedToWidget() { SetThemeProfileForWindow(GetNativeWindow(), browser_->profile()); #endif @@ -639,7 +639,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 toolbar_->Init(); // TODO(pbos): Investigate whether the side panels should be creatable when -@@ -4515,13 +4592,9 @@ void BrowserView::AddedToWidget() { +@@ -4516,13 +4593,9 @@ void BrowserView::AddedToWidget() { EnsureFocusOrder(); @@ -655,7 +655,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 using_native_frame_ = frame_->ShouldUseNativeFrame(); MaybeInitializeWebUITabStrip(); -@@ -4889,7 +4962,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, const int64_t display_id) { +@@ -4890,7 +4963,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, const int64_t display_id) { // Undo our anti-jankiness hacks and force a re-layout. in_process_fullscreen_ = false; ToolbarSizeChanged(false); @@ -665,7 +665,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 } void BrowserView::RequestFullscreen(bool fullscreen, int64_t display_id) { -@@ -5390,6 +5464,8 @@ Profile* BrowserView::GetProfile() { +@@ -5391,6 +5465,8 @@ Profile* BrowserView::GetProfile() { } void BrowserView::UpdateUIForTabFullscreen() { @@ -674,7 +674,7 @@ index 6e5ce23ae43a4..12cd21a6e71ab 100644 frame()->GetFrameView()->UpdateFullscreenTopUI(); } -@@ -5412,6 +5488,8 @@ void BrowserView::HideDownloadShelf() { +@@ -5413,6 +5489,8 @@ void BrowserView::HideDownloadShelf() { } bool BrowserView::CanUserExitFullscreen() const { @@ -1007,7 +1007,7 @@ index 190843e6c42f7..da4e026a790a3 100644 } diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc -index d1519e7f3782a..f82d651692a99 100644 +index df6dffc7d04ec..823b254ceb667 100644 --- chrome/browser/ui/views/toolbar/toolbar_view.cc +++ chrome/browser/ui/views/toolbar/toolbar_view.cc @@ -192,7 +192,7 @@ class TabstripLikeBackground : public views::Background { diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index f6e236312..2dc52f209 100644 --- a/patch/patches/content_2015.patch +++ b/patch/patches/content_2015.patch @@ -114,7 +114,7 @@ index 77e3d993b3dc0..349043f3d965b 100644 // on blink::features::kUserAgentReduction. Content may cache this value. virtual std::string GetUserAgent(); diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h -index dd8f6b9a87a0c..c1f93a716b485 100644 +index 6dff7d89d2842..02fe3c1a88332 100644 --- content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h @@ -108,6 +108,9 @@ class CONTENT_EXPORT ContentRendererClient { @@ -127,7 +127,7 @@ index dd8f6b9a87a0c..c1f93a716b485 100644 // Notifies that a new RenderFrame has been created. virtual void RenderFrameCreated(RenderFrame* render_frame) {} -@@ -345,6 +348,10 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -349,6 +352,10 @@ class CONTENT_EXPORT ContentRendererClient { // This method may invalidate the frame. virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} diff --git a/patch/patches/views_widget.patch b/patch/patches/views_widget.patch index 726bd23c8..1ce35dcaa 100644 --- a/patch/patches/views_widget.patch +++ b/patch/patches/views_widget.patch @@ -365,7 +365,7 @@ index 6eb1cf9451db1..97b1c9bcebb1d 100644 // Calculate initial bounds. diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -index 269aabace2510..8e9c115c381fd 100644 +index bb3eabc909922..45d063518c0ea 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc @@ -20,6 +20,7 @@ @@ -423,7 +423,7 @@ index 269aabace2510..8e9c115c381fd 100644 // Stack immediately above its parent so that it does not cover other // root-level windows, with the exception of menus, to allow them to be // displayed on top of other windows. -@@ -1025,10 +1046,23 @@ void DesktopWindowTreeHostWin::HandleWindowMinimizedOrRestored(bool restored) { +@@ -1029,10 +1050,23 @@ void DesktopWindowTreeHostWin::HandleWindowMinimizedOrRestored(bool restored) { if (!native_widget_delegate_->IsNativeWidgetInitialized()) return; @@ -449,7 +449,7 @@ index 269aabace2510..8e9c115c381fd 100644 } void DesktopWindowTreeHostWin::HandleClientSizeChanged( -@@ -1045,11 +1079,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { +@@ -1049,11 +1083,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { } void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { @@ -467,7 +467,7 @@ index 269aabace2510..8e9c115c381fd 100644 } bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) { -@@ -1057,6 +1095,12 @@ bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) { +@@ -1061,6 +1099,12 @@ bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) { if (ui::PlatformEventSource::ShouldIgnoreNativePlatformEvents()) return true; @@ -480,7 +480,7 @@ index 269aabace2510..8e9c115c381fd 100644 SendEventToSink(event); return event->handled(); } -@@ -1235,8 +1279,16 @@ void DesktopWindowTreeHostWin::SetBoundsInDIP(const gfx::Rect& bounds) { +@@ -1239,9 +1283,17 @@ void DesktopWindowTreeHostWin::SetBoundsInDIP(const gfx::Rect& bounds) { // positions in variable-DPI situations. See https://crbug.com/1224715 for // details. aura::Window* root = nullptr; @@ -490,7 +490,8 @@ index 269aabace2510..8e9c115c381fd 100644 + root = AsWindowTreeHost()->window(); + } + gfx::Rect bounds_in_pixels = - display::Screen::GetScreen()->DIPToScreenRectInWindow(root, bounds); + display::Screen::GetScreen()->DIPToScreenRectInWindow( + root, AdjustedContentBounds(bounds)); + if (has_external_parent_) { + // Child windows always have origin (0,0). + bounds_in_pixels.set_origin(gfx::Point(0, 0)); @@ -499,10 +500,10 @@ index 269aabace2510..8e9c115c381fd 100644 } diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.h ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -index 8169f17982253..fd8c22449a6a3 100644 +index e5b304f90ef8f..205d92e42b7a9 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -@@ -324,6 +324,14 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin +@@ -327,6 +327,14 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin // True if the window should have the frame removed. bool remove_standard_frame_; @@ -518,7 +519,7 @@ index 8169f17982253..fd8c22449a6a3 100644 // the implementation of ::ShowCursor() is based on a counter, so making this // member static ensures that ::ShowCursor() is always called exactly once diff --git ui/views/widget/native_widget_mac.mm ui/views/widget/native_widget_mac.mm -index e13f3a3fe4e9a..8827c0355b665 100644 +index 002eab9f27f11..71c316a2292e3 100644 --- ui/views/widget/native_widget_mac.mm +++ ui/views/widget/native_widget_mac.mm @@ -656,6 +656,7 @@ void NativeWidgetMac::Show(ui::WindowShowState show_state, @@ -600,7 +601,7 @@ index 2fac5a83aac46..8db0925bf0edd 100644 // focus when the window is restored. if (v) diff --git ui/views/widget/widget.h ui/views/widget/widget.h -index 721aa7432abbe..70dbf0eeb737e 100644 +index c52927b8e10b0..deddd8aa129f2 100644 --- ui/views/widget/widget.h +++ ui/views/widget/widget.h @@ -370,6 +370,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -612,7 +613,7 @@ index 721aa7432abbe..70dbf0eeb737e 100644 // Specifies the initial bounds of the Widget. Default is empty, which means // the NativeWidget may specify a default size. If the parent is specified, // |bounds| is in the parent's coordinate system. If the parent is not -@@ -776,7 +778,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -783,7 +785,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, void ShowInactive(); // Activates the widget, assuming it already exists and is visible. diff --git a/patch/patches/web_contents_1257_1565.patch b/patch/patches/web_contents_1257_1565.patch index 30a13ac8d..530e49e39 100644 --- a/patch/patches/web_contents_1257_1565.patch +++ b/patch/patches/web_contents_1257_1565.patch @@ -1,8 +1,8 @@ diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc -index 7318d2937012d..f7a002cb0566d 100644 +index b66f7c515370f..4a66fdf43d2e3 100644 --- content/browser/web_contents/web_contents_impl.cc +++ content/browser/web_contents/web_contents_impl.cc -@@ -3601,6 +3601,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3617,6 +3617,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, params.main_frame_name, GetOpener(), primary_main_frame_policy, base::UnguessableToken::Create()); @@ -15,7 +15,7 @@ index 7318d2937012d..f7a002cb0566d 100644 std::unique_ptr delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -3611,6 +3617,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3627,6 +3633,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_ = CreateWebContentsView(this, std::move(delegate), &render_view_host_delegate_view_); } @@ -23,7 +23,7 @@ index 7318d2937012d..f7a002cb0566d 100644 CHECK(render_view_host_delegate_view_); CHECK(view_.get()); -@@ -3807,6 +3814,9 @@ void WebContentsImpl::RenderWidgetCreated( +@@ -3823,6 +3830,9 @@ void WebContentsImpl::RenderWidgetCreated( OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RenderWidgetCreated", "render_widget_host", render_widget_host); created_widgets_.insert(render_widget_host); @@ -33,7 +33,7 @@ index 7318d2937012d..f7a002cb0566d 100644 } void WebContentsImpl::RenderWidgetDeleted( -@@ -4672,6 +4682,15 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -4688,6 +4698,15 @@ FrameTree* WebContentsImpl::CreateNewWindow( create_params.picture_in_picture_options = *(params.pip_options); } @@ -49,7 +49,7 @@ index 7318d2937012d..f7a002cb0566d 100644 // Check whether there is an available prerendered page for this navigation if // this is not for guest. If it exists, take WebContents pre-created for // hosting the prerendered page instead of creating new WebContents. -@@ -9027,6 +9046,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node, +@@ -9043,6 +9062,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node, } CloseListenerManager::DidChangeFocusedFrame(this); @@ -60,7 +60,7 @@ index 7318d2937012d..f7a002cb0566d 100644 FrameTree* WebContentsImpl::GetOwnedPictureInPictureFrameTree() { diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h -index d7403bb66b945..a3369846ff61f 100644 +index 0e02f377b7549..b65dea7ef32af 100644 --- content/public/browser/web_contents.h +++ content/public/browser/web_contents.h @@ -109,10 +109,12 @@ class BrowserContext;