[NextBrowser] Show Exit Browser Popup on Close Button Click 66/325066/4
authorSankalp Rana <sankalp.rana@samsung.com>
Mon, 2 Jun 2025 07:01:22 +0000 (12:31 +0530)
committerBot Blink <blinkbot@samsung.com>
Thu, 5 Jun 2025 14:22:00 +0000 (14:22 +0000)
Change-Id: Ibda13b67145c8d53db39bd6b4bcf2ffd86cbf079
Signed-off-by: Sankalp Rana <sankalp.rana@samsung.com>
chrome/browser/ui/views/frame/browser_frame.cc
chrome/browser/ui/views/frame/browser_frame.h
chrome/browser/ui/views/frame/opaque_browser_frame_view.cc

index ddf91f2444718e1329c14ba22f1761d3630b1e38..205c6c7961b2d1954a48411f10c544a0943d5228 100644 (file)
 #include "chrome/browser/win/mica_titlebar.h"
 #endif
 
+#if defined(SAMSUNG_NEXT_BROWSER)
+#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
+#endif
+
 namespace {
 
 // Helper to track whether a ThemeChange event has been received by the widget.
@@ -270,6 +274,14 @@ void BrowserFrame::OnBrowserViewInitViewsComplete() {
   browser_frame_view_->OnBrowserViewInitViewsComplete();
 }
 
+#if defined(SAMSUNG_NEXT_BROWSER)
+void BrowserFrame::ShowExitBrowserBubble() {
+  if (browser_view_ && browser_view_->toolbar()) {
+    browser_view_->toolbar()->ShowExitBrowserBubble();
+  }
+}
+#endif
+
 void BrowserFrame::UserChangedTheme(BrowserThemeChangeType theme_change_type) {
   // kWebAppTheme is triggered by web apps and will only change colors, not the
   // frame type; just refresh the theme on all views in the browser window.
index 14a8a70d853f67cc45ad73445e7d2206bb1636ad..41f93e26c95ea744a0e68d665b8eb47d9bcb2213 100644 (file)
@@ -170,6 +170,11 @@ class BrowserFrame : public views::Widget, public views::ContextMenuController {
   void SetTabDragKind(TabDragKind tab_drag_kind);
   TabDragKind tab_drag_kind() const { return tab_drag_kind_; }
 
+#if defined(SAMSUNG_NEXT_BROWSER)
+  // Callback to display popup when close button is clicked
+  void ShowExitBrowserBubble();
+#endif
+
  protected:
   // views::Widget:
   void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override;
index 4c5356d8f20f60da0dda5be98ff8bd5b1735e5ed..5a03a791e451ceb9bd457040087e00fed3daaf2b 100644 (file)
@@ -198,13 +198,20 @@ void OpaqueBrowserFrameView::InitViews() {
       restore_button_,
       base::BindRepeating(&BrowserFrame::Restore, base::Unretained(frame())),
       IDS_ACCNAME_RESTORE, VIEW_ID_RESTORE_BUTTON);
+#if defined(SAMSUNG_NEXT_BROWSER)
+  InitWindowCaptionButton(
+      close_button_,
+      base::BindRepeating(&BrowserFrame::ShowExitBrowserBubble,
+                          base::Unretained(frame())),
+      IDS_ACCNAME_CLOSE, VIEW_ID_CLOSE_BUTTON);
+#else
   InitWindowCaptionButton(
       close_button_,
       base::BindRepeating(&BrowserFrame::CloseWithReason,
                           base::Unretained(frame()),
                           views::Widget::ClosedReason::kCloseButtonClicked),
       IDS_ACCNAME_CLOSE, VIEW_ID_CLOSE_BUTTON);
-
+#endif
   // Initializing the TabIconView is expensive, so only do it if we need to.
   if (browser_view()->ShouldShowWindowIcon()) {
     AddChildView(views::Builder<TabIconView>()