Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6995)

Unified Diff: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc

Issue 2914793005: [mus+ash] Fixes minimum browser window size (store / retrieve kPreferredSize property) (Closed)
Patch Set: [mus+ash] Fixes minimum browser window size (tests) Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
index 18c2b4596da5e27f26aff2cf58a30f0ecb948c4a..a3f03e398e5686b0781777b7aaad8ea06f2a9d5e 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
@@ -19,6 +19,7 @@
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller_test.h"
+#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h"
@@ -26,6 +27,7 @@
#include "chrome/browser/ui/views/tabs/tab.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "components/signin/core/account_id/account_id.h"
+#include "ui/aura/client/aura_constants.h"
#include "ui/base/hit_test.h"
#include "ui/compositor/scoped_animation_duration_scale_mode.h"
#include "ui/views/widget/widget.h"
@@ -291,3 +293,33 @@ IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest,
bounds();
EXPECT_EQ(initial, after_restore);
}
+
+// Tests that browser frame minimum size constraint is updated in response to
+// browser view layout.
+IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest,
+ FrameMinSizeIsUpdated) {
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
+ Widget* widget = browser_view->GetWidget();
+ // We know we're using Ash, so static cast.
+ BrowserNonClientFrameViewAsh* frame_view =
+ static_cast<BrowserNonClientFrameViewAsh*>(
+ widget->non_client_view()->frame_view());
+
+ BookmarkBarView* bookmark_bar = browser_view->GetBookmarkBarView();
+ EXPECT_FALSE(bookmark_bar->visible());
+ const int min_height_no_bookmarks = frame_view->GetMinimumSize().height();
+
+ // Setting non-zero bookmark bar preferred size forces it to be visible and
+ // triggers BrowserView layout update.
+ bookmark_bar->SetPreferredSize(gfx::Size(50, 5));
+ EXPECT_TRUE(bookmark_bar->visible());
+
+ // Minimum window size should grow with the bookmark bar shown.
+ // kMinimumSize window property should get updated.
+ aura::Window* window = browser()->window()->GetNativeWindow();
+ const gfx::Size* min_window_size =
+ window->GetProperty(aura::client::kMinimumSize);
+ ASSERT_NE(nullptr, min_window_size);
+ EXPECT_GT(min_window_size->height(), min_height_no_bookmarks);
+ EXPECT_EQ(*min_window_size, frame_view->GetMinimumSize());
+}

Powered by Google App Engine
This is Rietveld 408576698