diff --git a/ash/shelf/window_preview.cc b/ash/shelf/window_preview.cc
index 825cbd98049d5..01aa40ead6ac9 100644
--- a/ash/shelf/window_preview.cc
+++ b/ash/shelf/window_preview.cc
@@ -85,7 +85,7 @@ void WindowPreview::Layout(PassKey) {
                 content_rect.y(), kCloseButtonSize, kCloseButtonSize));
 
   const gfx::Size container_size = GetPreviewContainerSize();
-  gfx::Size mirror_size = preview_view_->CalculatePreferredSize();
+  gfx::Size mirror_size = preview_view_->CalculatePreferredSize({});
   float preview_ratio = static_cast<float>(mirror_size.width()) /
                         static_cast<float>(mirror_size.height());
 
diff --git a/ash/wm/window_cycle/window_cycle_item_view.cc b/ash/wm/window_cycle/window_cycle_item_view.cc
index 1b449b526a127..6867e3fe4d1be 100644
--- a/ash/wm/window_cycle/window_cycle_item_view.cc
+++ b/ash/wm/window_cycle/window_cycle_item_view.cc
@@ -163,7 +163,8 @@ void WindowCycleItemView::Layout(PassKey) {
                       source_window(), /*include_header_rounding=*/false)));
 }
 
-gfx::Size WindowCycleItemView::CalculatePreferredSize() const {
+gfx::Size WindowCycleItemView::CalculatePreferredSize(
+    const views::SizeBounds& available_size) const {
   // Previews can range in width from half to double of
   // |kFixedPreviewHeightDp|. Padding will be added to the
   // sides to achieve this if the preview is too narrow.
diff --git a/ash/wm/window_cycle/window_cycle_item_view.h b/ash/wm/window_cycle/window_cycle_item_view.h
index 2d5f561c0cf38..660344f68e6cc 100644
--- a/ash/wm/window_cycle/window_cycle_item_view.h
+++ b/ash/wm/window_cycle/window_cycle_item_view.h
@@ -50,7 +50,8 @@ class ASH_EXPORT WindowCycleItemView : public WindowMiniView {
   void Layout(PassKey) override;
 
   // views::View:
-  gfx::Size CalculatePreferredSize() const override;
+  gfx::Size CalculatePreferredSize(
+      const views::SizeBounds& available_size) const override;
   bool HandleAccessibleAction(const ui::AXActionData& action_data) override;
 
   // WindowMiniViewBase:
diff --git a/ash/wm/window_cycle/window_cycle_list.cc b/ash/wm/window_cycle/window_cycle_list.cc
index 9979452f57c9d..11d7a9a0ef68c 100644
--- a/ash/wm/window_cycle/window_cycle_list.cc
+++ b/ash/wm/window_cycle/window_cycle_list.cc
@@ -484,7 +484,7 @@ void WindowCycleList::Scroll(int offset) {
 
   // The windows should not shift position when selecting when there's enough
   // room to display all windows.
-  if (cycle_view_ && cycle_view_->CalculatePreferredSize().width() ==
+  if (cycle_view_ && cycle_view_->CalculatePreferredSize({}).width() ==
                          cycle_view_->CalculateMaxWidth()) {
     cycle_view_->ScrollToWindow(windows_[current_index_]);
   }
diff --git a/ash/wm/window_cycle/window_cycle_view.cc b/ash/wm/window_cycle/window_cycle_view.cc
index 3bffe451c3db3..2a89cd489dc1f 100644
--- a/ash/wm/window_cycle/window_cycle_view.cc
+++ b/ash/wm/window_cycle/window_cycle_view.cc
@@ -553,7 +553,8 @@ int WindowCycleView::CalculateMaxWidth() const {
          2 * kBackgroundHorizontalInsetDp;
 }
 
-gfx::Size WindowCycleView::CalculatePreferredSize() const {
+gfx::Size WindowCycleView::CalculatePreferredSize(
+    const views::SizeBounds& available_size) const {
   gfx::Size size = GetContentContainerBounds().size();
   // `mirror_container_` can have window list that overflow out of the
   // screen, but the window cycle view with a bandshield, cropping the
diff --git a/ash/wm/window_cycle/window_cycle_view.h b/ash/wm/window_cycle/window_cycle_view.h
index 918c8c1898148..0e7018a8fe059 100644
--- a/ash/wm/window_cycle/window_cycle_view.h
+++ b/ash/wm/window_cycle/window_cycle_view.h
@@ -131,7 +131,8 @@ class ASH_EXPORT WindowCycleView : public views::WidgetDelegateView,
   int CalculateMaxWidth() const;
 
   // views::WidgetDelegateView:
-  gfx::Size CalculatePreferredSize() const override;
+  gfx::Size CalculatePreferredSize(
+      const views::SizeBounds& available_size) const override;
   void Layout(PassKey) override;
 
   // ui::ImplicitAnimationObserver:
diff --git a/ash/wm/window_mirror_view.cc b/ash/wm/window_mirror_view.cc
index c204032bd47cd..da79a72c68b32 100644
--- a/ash/wm/window_mirror_view.cc
+++ b/ash/wm/window_mirror_view.cc
@@ -67,7 +67,8 @@ void WindowMirrorView::OnWindowDestroying(aura::Window* window) {
   }
 }
 
-gfx::Size WindowMirrorView::CalculatePreferredSize() const {
+gfx::Size WindowMirrorView::CalculatePreferredSize(
+    const views::SizeBounds& available_size) const {
   return show_non_client_view_ ? source_->bounds().size()
                                : GetClientAreaBounds().size();
 }
diff --git a/ash/wm/window_mirror_view.h b/ash/wm/window_mirror_view.h
index 1d5d3fe894305..ff03566f4d2a1 100644
--- a/ash/wm/window_mirror_view.h
+++ b/ash/wm/window_mirror_view.h
@@ -50,7 +50,8 @@ class ASH_EXPORT WindowMirrorView : public views::View,
   void OnWindowDestroying(aura::Window* window) override;
 
   // views::View:
-  gfx::Size CalculatePreferredSize() const override;
+  gfx::Size CalculatePreferredSize(
+      const views::SizeBounds& available_size) const override;
   void Layout(PassKey) override;
   bool GetNeedsNotificationWhenVisibleBoundsChange() const override;
   void OnVisibleBoundsChanged() override;
diff --git a/ash/wm/window_preview_view.cc b/ash/wm/window_preview_view.cc
index cd2bcbf9ad9e2..e6006be327abb 100644
--- a/ash/wm/window_preview_view.cc
+++ b/ash/wm/window_preview_view.cc
@@ -64,7 +64,8 @@ void WindowPreviewView::RecreatePreviews() {
     entry.second->RecreateMirrorLayers();
 }
 
-gfx::Size WindowPreviewView::CalculatePreferredSize() const {
+gfx::Size WindowPreviewView::CalculatePreferredSize(
+    const views::SizeBounds& available_size) const {
   // The preferred size of this view is the union of all the windows it is made
   // up of with, scaled to match the ratio of the main window to its mirror
   // view's preferred size.
@@ -75,7 +76,7 @@ gfx::Size WindowPreviewView::CalculatePreferredSize() const {
   gfx::SizeF window_size(1.f, 1.f);
   auto it = mirror_views_.find(root);
   if (it != mirror_views_.end()) {
-    window_size = gfx::SizeF(it->second->CalculatePreferredSize());
+    window_size = gfx::SizeF(it->second->CalculatePreferredSize({}));
     if (window_size.IsEmpty())
       return gfx::Size();  // Avoids divide by zero below.
   }
diff --git a/ash/wm/window_preview_view.h b/ash/wm/window_preview_view.h
index fb1eecced2db9..a5edafbc6fd32 100644
--- a/ash/wm/window_preview_view.h
+++ b/ash/wm/window_preview_view.h
@@ -39,7 +39,8 @@ class ASH_EXPORT WindowPreviewView
   void RecreatePreviews();
 
   // views::View:
-  gfx::Size CalculatePreferredSize() const override;
+  gfx::Size CalculatePreferredSize(
+      const views::SizeBounds& available_size) const override;
   void Layout(PassKey) override;
 
   // aura::client::TransientWindowClientObserver:
diff --git a/ash/wm/workspace/multi_window_resize_controller.cc b/ash/wm/workspace/multi_window_resize_controller.cc
index ac548c14b0b84..b20bbb8988db2 100644
--- a/ash/wm/workspace/multi_window_resize_controller.cc
+++ b/ash/wm/workspace/multi_window_resize_controller.cc
@@ -138,7 +138,8 @@ class MultiWindowResizeController::ResizeView : public views::View {
   ~ResizeView() override = default;
 
   // views::View:
-  gfx::Size CalculatePreferredSize() const override {
+  gfx::Size CalculatePreferredSize(
+      const views::SizeBounds& available_size) const override {
     const bool vert = direction_ == Direction::kLeftRight;
     return gfx::Size(vert ? kLongSide : kShortSide,
                      vert ? kShortSide : kLongSide);