From 2243a25192d11fb9c4beffa0722dd29464975e66 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 21:27:13 +0200 Subject: [PATCH] fix: fixed white flash on call to BrowserWindow.show (#48559) Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Cezary Kulakowski --- shell/browser/api/electron_api_base_window.h | 4 ++-- shell/browser/api/electron_api_browser_window.cc | 14 +++++++++++++- shell/browser/api/electron_api_browser_window.h | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/shell/browser/api/electron_api_base_window.h b/shell/browser/api/electron_api_base_window.h index 53ddd8cee191..9580a820236c 100644 --- a/shell/browser/api/electron_api_base_window.h +++ b/shell/browser/api/electron_api_base_window.h @@ -104,8 +104,8 @@ class BaseWindow : public gin_helper::TrackableObject, virtual void Focus(); virtual void Blur(); bool IsFocused() const; - void Show(); - void ShowInactive(); + virtual void Show(); + virtual void ShowInactive(); void Hide(); bool IsVisible() const; bool IsEnabled() const; diff --git a/shell/browser/api/electron_api_browser_window.cc b/shell/browser/api/electron_api_browser_window.cc index 943530e697e4..ae94c5da9045 100644 --- a/shell/browser/api/electron_api_browser_window.cc +++ b/shell/browser/api/electron_api_browser_window.cc @@ -280,7 +280,6 @@ v8::Local BrowserWindow::GetWebContents(v8::Isolate* isolate) { } void BrowserWindow::OnWindowShow() { - web_contents()->WasShown(); BaseWindow::OnWindowShow(); } @@ -289,6 +288,19 @@ void BrowserWindow::OnWindowHide() { BaseWindow::OnWindowHide(); } +void BrowserWindow::Show() { + web_contents()->WasShown(); + BaseWindow::Show(); +} + +void BrowserWindow::ShowInactive() { + // This method doesn't make sense for modal window. + if (IsModal()) + return; + web_contents()->WasShown(); + BaseWindow::ShowInactive(); +} + // static gin_helper::WrappableBase* BrowserWindow::New(gin_helper::ErrorThrower thrower, gin::Arguments* args) { diff --git a/shell/browser/api/electron_api_browser_window.h b/shell/browser/api/electron_api_browser_window.h index b13ffda8f8a1..02684f23b5c5 100644 --- a/shell/browser/api/electron_api_browser_window.h +++ b/shell/browser/api/electron_api_browser_window.h @@ -67,6 +67,8 @@ class BrowserWindow : public BaseWindow, void SetBackgroundMaterial(const std::string& material) override; void OnWindowShow() override; void OnWindowHide() override; + void Show() override; + void ShowInactive() override; // BrowserWindow APIs. void FocusOnWebView();