cros: Instant extended support for immersive fullscreen

In immersive fullscreen the "top container" holding the tabstrip and toolbar can slide down over the web content. Instant extended shows suggestions in an overlay web view, this must be adjusted to match the omnibox position when the top container is revealed. Instant extended also shows a suggestion+result page in the active web view, which must also be adjusted to align with the omnibox.

BUG=169414
TEST=Added to interactive_ui_tests BrowserViewTest and also manual.
On Chrome OS, enable the flags for instant extended and immersive fullscreen. Open a normal tab and one to the NTP. Test omnibox suggestions in both tabs, ensure they align with the omnibox. Hit F4 to go into fullscreen, do the same tests. Select "Show Bookmark Bar" and repeat both sets of tests.
TBR=sreeram@chromium.org for instant_extended.html changes

Review URL: https://codereview.chromium.org/13684002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194694 0039d316-1c4b-4281-b951-d872f2087c98
parent daf079ad
...@@ -2320,6 +2320,8 @@ void BrowserView::UpdateDevToolsSplitPosition() { ...@@ -2320,6 +2320,8 @@ void BrowserView::UpdateDevToolsSplitPosition() {
void BrowserView::UpdateUIForContents(WebContents* contents) { void BrowserView::UpdateUIForContents(WebContents* contents) {
bool needs_layout = MaybeShowBookmarkBar(contents); bool needs_layout = MaybeShowBookmarkBar(contents);
// TODO(jamescook): This function always returns true. Remove it and figure
// out when layout is actually required.
needs_layout |= MaybeShowInfoBar(contents); needs_layout |= MaybeShowInfoBar(contents);
if (needs_layout) if (needs_layout)
Layout(); Layout();
......
...@@ -435,6 +435,11 @@ class BrowserView : public BrowserWindow, ...@@ -435,6 +435,11 @@ class BrowserView : public BrowserWindow,
virtual void ChildPreferredSizeChanged(View* child) OVERRIDE; virtual void ChildPreferredSizeChanged(View* child) OVERRIDE;
virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
views::SingleSplitView* GetContentsSplitForTest() { return contents_split_; }
// TODO(jamescook): Rename |contents_| and |contents_container_|.
ContentsContainer* GetContentsContainerForTest() { return contents_; }
views::WebView* GetContentsWebViewForTest() { return contents_container_; }
protected: protected:
// Appends to |toolbars| a pointer to each AccessiblePaneView that // Appends to |toolbars| a pointer to each AccessiblePaneView that
// can be traversed using F6, in the order they should be traversed. // can be traversed using F6, in the order they should be traversed.
...@@ -650,6 +655,8 @@ class BrowserView : public BrowserWindow, ...@@ -650,6 +655,8 @@ class BrowserView : public BrowserWindow,
InfoBarContainerView* infobar_container_; InfoBarContainerView* infobar_container_;
// The view that contains the selected WebContents. // The view that contains the selected WebContents.
// TODO(jamescook): Rename this to |contents_web_view_| in order to
// reduce confusion with ContentsContainer |contents_| below.
views::WebView* contents_container_; views::WebView* contents_container_;
// The view that contains devtools window for the selected WebContents. // The view that contains devtools window for the selected WebContents.
......
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
#include "ui/views/controls/single_split_view.h" #include "ui/views/controls/single_split_view.h"
#include "ui/views/controls/webview/webview.h" #include "ui/views/controls/webview/webview.h"
using views::View;
namespace { namespace {
// The visible height of the shadow above the tabs. Clicks in this area are // The visible height of the shadow above the tabs. Clicks in this area are
// treated as clicks to the frame, rather than clicks to the tab. // treated as clicks to the frame, rather than clicks to the tab.
const int kTabShadowSize = 2; const int kTabShadowSize = 2;
// The vertical overlap between the TabStrip and the Toolbar.
const int kToolbarTabStripVerticalOverlap = 3;
// The number of pixels the bookmark bar should overlap the spacer by if the // The number of pixels the bookmark bar should overlap the spacer by if the
// spacer is visible. // spacer is visible.
const int kSpacerBookmarkBarOverlap = 1; const int kSpacerBookmarkBarOverlap = 1;
...@@ -100,6 +100,8 @@ class BrowserViewLayout::WebContentsModalDialogHostViews ...@@ -100,6 +100,8 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
DISALLOW_COPY_AND_ASSIGN(WebContentsModalDialogHostViews); DISALLOW_COPY_AND_ASSIGN(WebContentsModalDialogHostViews);
}; };
// static
const int BrowserViewLayout::kToolbarTabStripVerticalOverlap = 3;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// BrowserViewLayout, public: // BrowserViewLayout, public:
...@@ -331,10 +333,21 @@ void BrowserViewLayout::Layout(views::View* host) { ...@@ -331,10 +333,21 @@ void BrowserViewLayout::Layout(views::View* host) {
browser_view_->top_container_->GetPreferredSize()); browser_view_->top_container_->GetPreferredSize());
int bottom = LayoutDownloadShelf(browser_view_->height()); int bottom = LayoutDownloadShelf(browser_view_->height());
// Treat a detached bookmark bar as if the web contents container is shifted
// upwards and overlaps it.
top -= GetContentsOffsetForBookmarkBar();
LayoutContentsSplitView(top, bottom);
// Instant extended can put suggestions in a web view, which can require an
// offset to align with the omnibox. This offset must be recomputed after
// split view layout to account for infobar heights.
int active_top_margin = GetTopMarginForActiveContent(); int active_top_margin = GetTopMarginForActiveContent();
top -= active_top_margin; bool needs_layout =
contents_container_->SetActiveTopMargin(active_top_margin); contents_container_->SetActiveTopMargin(active_top_margin);
LayoutTabContents(top, bottom); needs_layout |=
contents_container_->SetOverlayTopMargin(GetTopMarginForOverlayContent());
if (needs_layout)
contents_container_->Layout();
// Now set the contents to display at their previous origin if we just hid the // Now set the contents to display at their previous origin if we just hid the
// bookmark and/or infobars. // bookmark and/or infobars.
...@@ -475,6 +488,8 @@ int BrowserViewLayout::LayoutBookmarkBar(int top) { ...@@ -475,6 +488,8 @@ int BrowserViewLayout::LayoutBookmarkBar(int top) {
int y = top; int y = top;
if (!browser_view_->IsBookmarkBarVisible()) { if (!browser_view_->IsBookmarkBarVisible()) {
bookmark_bar->SetVisible(false); bookmark_bar->SetVisible(false);
// TODO(jamescook): Don't change the bookmark bar height when it is
// invisible, so we can use its height for layout even in that state.
bookmark_bar->SetBounds(0, y, browser_view_->width(), 0); bookmark_bar->SetBounds(0, y, browser_view_->width(), 0);
return y; return y;
} }
...@@ -510,46 +525,19 @@ int BrowserViewLayout::LayoutInfoBar(int top) { ...@@ -510,46 +525,19 @@ int BrowserViewLayout::LayoutInfoBar(int top) {
return overlapped_top + height; return overlapped_top + height;
} }
void BrowserViewLayout::LayoutTabContents(int top, int bottom) { void BrowserViewLayout::LayoutContentsSplitView(int top, int bottom) {
// The ultimate idea is to calculate bounds and reserved areas for all // |contents_split_| contains web page contents and devtools.
// contents views first and then resize them all, so every view // See browser_view.h for details.
// (and its contents) is resized and laid out only once. gfx::Rect contents_split_bounds(vertical_layout_rect_.x(),
top,
// The views hierarcy (see browser_view.h for more details):
// contents_split_ -> [contents_container_ | devtools]
gfx::Rect contents_bounds;
gfx::Rect devtools_bounds;
gfx::Rect contents_split_bounds(vertical_layout_rect_.x(), top,
vertical_layout_rect_.width(), vertical_layout_rect_.width(),
std::max(0, bottom - top)); std::max(0, bottom - top));
gfx::Point contents_split_offset(
contents_split_bounds.x() - contents_split_->bounds().x(),
contents_split_bounds.y() - contents_split_->bounds().y());
// Layout resize corner and calculate reserved contents rects here as all
// contents view bounds are already determined, but not yet set at this point,
// so contents will be laid out once at most.
gfx::Rect browser_reserved_rect;
if (!browser_view_->frame_->IsMaximized() &&
!browser_view_->frame_->IsFullscreen()) {
gfx::Size resize_corner_size = browser_view_->GetResizeCornerSize();
if (!resize_corner_size.IsEmpty()) {
gfx::Rect bounds = browser_view_->GetContentsBounds();
gfx::Point resize_corner_origin(
bounds.right() - resize_corner_size.width(),
bounds.bottom() - resize_corner_size.height());
browser_reserved_rect =
gfx::Rect(resize_corner_origin, resize_corner_size);
}
}
// Now it's safe to actually resize all contents views in the hierarchy.
contents_split_->SetBoundsRect(contents_split_bounds); contents_split_->SetBoundsRect(contents_split_bounds);
} }
int BrowserViewLayout::GetTopMarginForActiveContent() { int BrowserViewLayout::GetContentsOffsetForBookmarkBar() {
// If the bookmark bar is hidden or attached to the omnibox the web contents
// will appear directly underneath it and does not need an offset.
BookmarkBarView* bookmark_bar = browser_view_->bookmark_bar_view_.get(); BookmarkBarView* bookmark_bar = browser_view_->bookmark_bar_view_.get();
if (!bookmark_bar || if (!bookmark_bar ||
!browser_view_->IsBookmarkBarVisible() || !browser_view_->IsBookmarkBarVisible() ||
...@@ -557,14 +545,70 @@ int BrowserViewLayout::GetTopMarginForActiveContent() { ...@@ -557,14 +545,70 @@ int BrowserViewLayout::GetTopMarginForActiveContent() {
return 0; return 0;
} }
// Dev tools.
if (contents_split_->child_at(1) && contents_split_->child_at(1)->visible()) if (contents_split_->child_at(1) && contents_split_->child_at(1)->visible())
return 0; return 0;
// Adjust for separator. // Offset for the detached bookmark bar.
return bookmark_bar->height() - return bookmark_bar->height() -
views::NonClientFrameView::kClientEdgeThickness; views::NonClientFrameView::kClientEdgeThickness;
} }
int BrowserViewLayout::GetTopMarginForActiveContent() {
// During an immersive reveal, if instant extended is showing suggestions
// in the main active web view, ensure that active web view appears aligned
// with the bottom of the omnibox.
InstantUIState instant_ui_state = GetInstantUIState();
if (instant_ui_state == kInstantUIFullPageResults &&
browser_view_->immersive_mode_controller()->IsRevealed())
return GetTopMarginForImmersiveInstant();
// Usually we only use a margin if there's a detached bookmarks bar.
return GetContentsOffsetForBookmarkBar();
}
int BrowserViewLayout::GetTopMarginForOverlayContent() {
// During an immersive reveal, if instant extended is showing suggestions
// in an overlay web view, ensure that overlay web view appears aligned
// with the bottom of the omnibox.
InstantUIState instant_ui_state = GetInstantUIState();
if (instant_ui_state == kInstantUIOverlay &&
browser_view_->immersive_mode_controller()->IsRevealed())
return GetTopMarginForImmersiveInstant();
// Usually the overlay content is aligned with the active web content.
return 0;
}
int BrowserViewLayout::GetTopMarginForImmersiveInstant() {
// Compute the position of the bottom edge of the top container views,
// expressed as an offset in the coordinates of |contents_container_|,
// because the offset will be applied in |contents_container_| layout.
// NOTE: This requires contents_split_ layout to be complete, as the
// coordinate system conversion depends on the contents_split_ origin.
gfx::Point bottom_edge(0, browser_view_->top_container_->height());
views::View::ConvertPointToTarget(browser_view_->top_container_,
contents_container_,
&bottom_edge);
return bottom_edge.y();
}
BrowserViewLayout::InstantUIState BrowserViewLayout::GetInstantUIState() {
if (!browser()->search_model()->mode().is_search())
return kInstantUINone;
// If the search suggestions are already being displayed in the overlay
// contents then return kInstantUIOverlay.
if (contents_container_->overlay_height() > 0)
return kInstantUIOverlay;
// Top bars stay visible until the results page notifies Chrome it is ready.
if (browser()->search_model()->top_bars_visible())
return kInstantUINone;
return kInstantUIFullPageResults;
}
int BrowserViewLayout::LayoutDownloadShelf(int bottom) { int BrowserViewLayout::LayoutDownloadShelf(int bottom) {
// Re-layout the shelf either if it is visible or if its close animation // Re-layout the shelf either if it is visible or if its close animation
// is currently running. // is currently running.
......
...@@ -33,6 +33,9 @@ class SingleSplitView; ...@@ -33,6 +33,9 @@ class SingleSplitView;
// The layout manager used in chrome browser. // The layout manager used in chrome browser.
class BrowserViewLayout : public views::LayoutManager { class BrowserViewLayout : public views::LayoutManager {
public: public:
// The vertical overlap between the TabStrip and the Toolbar.
static const int kToolbarTabStripVerticalOverlap;
BrowserViewLayout(); BrowserViewLayout();
virtual ~BrowserViewLayout(); virtual ~BrowserViewLayout();
...@@ -61,9 +64,19 @@ class BrowserViewLayout : public views::LayoutManager { ...@@ -61,9 +64,19 @@ class BrowserViewLayout : public views::LayoutManager {
virtual void Layout(views::View* host) OVERRIDE; virtual void Layout(views::View* host) OVERRIDE;
virtual gfx::Size GetPreferredSize(views::View* host) OVERRIDE; virtual gfx::Size GetPreferredSize(views::View* host) OVERRIDE;
protected: private:
class WebContentsModalDialogHostViews; class WebContentsModalDialogHostViews;
enum InstantUIState {
// No instant suggestions are being shown.
kInstantUINone,
// Instant suggestions are displayed in a overlay overlapping the tab
// contents.
kInstantUIOverlay,
// Instant suggestions are displayed in the main tab contents.
kInstantUIFullPageResults,
};
Browser* browser(); Browser* browser();
const Browser* browser() const; const Browser* browser() const;
...@@ -78,15 +91,33 @@ class BrowserViewLayout : public views::LayoutManager { ...@@ -78,15 +91,33 @@ class BrowserViewLayout : public views::LayoutManager {
int LayoutBookmarkBar(int top); int LayoutBookmarkBar(int top);
int LayoutInfoBar(int top); int LayoutInfoBar(int top);
// Layout the WebContents container, between the coordinates |top| and // Layout the |contents_split_| view between the coordinates |top| and
// |bottom|. // |bottom|. See browser_view.h for details of the relationship between
void LayoutTabContents(int top, int bottom); // |contents_split_| and other views.
void LayoutContentsSplitView(int top, int bottom);
// Returns the vertical offset for the web contents to account for a
// detached bookmarks bar.
int GetContentsOffsetForBookmarkBar();
// Returns the top margin to adjust the contents_container_ by. This is used // Returns the top margin to adjust the contents_container_ by. This is used
// to make the bookmark bar and contents_container_ overlap so that the // to make the bookmark bar and contents_container_ overlap so that the
// preview contents hides the bookmark bar. // preview contents hides the bookmark bar.
int GetTopMarginForActiveContent(); int GetTopMarginForActiveContent();
// Returns the top margin by which to adjust the instant overlay web
// contents. Used to make instant extended suggestions align with the
// omnibox in immersive fullscreen.
int GetTopMarginForOverlayContent();
// Returns the top margin for the active or overlay web view in
// |contents_container_| for an immersive fullscreen reveal while instant
// extended is providing suggestions.
int GetTopMarginForImmersiveInstant();
// Returns the state of instant extended suggestions.
InstantUIState GetInstantUIState();
// Layout the Download Shelf, returns the coordinate of the top of the // Layout the Download Shelf, returns the coordinate of the top of the
// control, for laying out the previous control. // control, for laying out the previous control.
int LayoutDownloadShelf(int bottom); int LayoutDownloadShelf(int bottom);
...@@ -94,14 +125,6 @@ class BrowserViewLayout : public views::LayoutManager { ...@@ -94,14 +125,6 @@ class BrowserViewLayout : public views::LayoutManager {
// Returns true if an infobar is showing. // Returns true if an infobar is showing.
bool InfobarVisible() const; bool InfobarVisible() const;
// See description above vertical_layout_rect_ for details.
void set_vertical_layout_rect(const gfx::Rect& bounds) {
vertical_layout_rect_ = bounds;
}
const gfx::Rect& vertical_layout_rect() const {
return vertical_layout_rect_;
}
// Child views that the layout manager manages. // Child views that the layout manager manages.
views::SingleSplitView* contents_split_; views::SingleSplitView* contents_split_;
ContentsContainer* contents_container_; ContentsContainer* contents_container_;
...@@ -112,6 +135,7 @@ class BrowserViewLayout : public views::LayoutManager { ...@@ -112,6 +135,7 @@ class BrowserViewLayout : public views::LayoutManager {
// The bounds within which the vertically-stacked contents of the BrowserView // The bounds within which the vertically-stacked contents of the BrowserView
// should be laid out within. This is just the local bounds of the // should be laid out within. This is just the local bounds of the
// BrowserView. // BrowserView.
// TODO(jamescook): Remove this and just use browser_view_->GetLocalBounds().
gfx::Rect vertical_layout_rect_; gfx::Rect vertical_layout_rect_;
// The distance the FindBar is from the top of the window, in pixels. // The distance the FindBar is from the top of the window, in pixels.
......
...@@ -84,6 +84,7 @@ ContentsContainer::ContentsContainer(views::WebView* active) ...@@ -84,6 +84,7 @@ ContentsContainer::ContentsContainer(views::WebView* active)
overlay_web_contents_(NULL), overlay_web_contents_(NULL),
draw_drop_shadow_(false), draw_drop_shadow_(false),
active_top_margin_(0), active_top_margin_(0),
overlay_top_margin_(0),
overlay_height_(100), overlay_height_(100),
overlay_height_units_(INSTANT_SIZE_PERCENT) { overlay_height_units_(INSTANT_SIZE_PERCENT) {
AddChildView(active_); AddChildView(active_);
...@@ -218,14 +219,25 @@ void ContentsContainer::MaybeStackOverlayAtTop() { ...@@ -218,14 +219,25 @@ void ContentsContainer::MaybeStackOverlayAtTop() {
Layout(); Layout();
} }
void ContentsContainer::SetActiveTopMargin(int margin) { bool ContentsContainer::SetActiveTopMargin(int margin) {
if (active_top_margin_ == margin) if (active_top_margin_ == margin)
return; return false;
active_top_margin_ = margin; active_top_margin_ = margin;
// Make sure we layout next time around. We need this in case our bounds // Make sure we layout next time around. We need this in case our bounds
// haven't changed. // haven't changed.
InvalidateLayout(); InvalidateLayout();
return true;
}
bool ContentsContainer::SetOverlayTopMargin(int margin) {
if (overlay_top_margin_ == margin)
return false;
overlay_top_margin_ = margin;
// Make sure we layout next time around. We need this in case our bounds
// haven't changed.
InvalidateLayout();
return true;
} }
gfx::Rect ContentsContainer::GetOverlayBounds() const { gfx::Rect ContentsContainer::GetOverlayBounds() const {
...@@ -254,13 +266,17 @@ void ContentsContainer::Layout() { ...@@ -254,13 +266,17 @@ void ContentsContainer::Layout() {
active_->SetBounds(0, content_y, width(), content_height); active_->SetBounds(0, content_y, width(), content_height);
if (overlay_) { if (overlay_) {
overlay_->SetBounds(0, 0, width(), int target_overlay_height =
OverlayHeightInPixels(height(), overlay_height_, OverlayHeightInPixels(height(), overlay_height_, overlay_height_units_);
overlay_height_units_)); // Ensure the overlay doesn't extend outside this container view.
int overlay_height =
std::min(height() - overlay_top_margin_, target_overlay_height);
overlay_->SetBounds(0, overlay_top_margin_,
width(), std::max(0, overlay_height));
if (draw_drop_shadow_) { if (draw_drop_shadow_) {
#if !defined(OS_WIN) #if !defined(OS_WIN)
DCHECK(shadow_view_.get() && shadow_view_->parent()); DCHECK(shadow_view_.get() && shadow_view_->parent());
shadow_view_->SetBounds(0, overlay_->bounds().height(), width(), shadow_view_->SetBounds(0, overlay_->bounds().bottom(), width(),
shadow_view_->GetPreferredSize().height()); shadow_view_->GetPreferredSize().height());
#endif // !defined(OS_WIN) #endif // !defined(OS_WIN)
} }
......
...@@ -60,8 +60,14 @@ class ContentsContainer : public views::View, ...@@ -60,8 +60,14 @@ class ContentsContainer : public views::View,
// Sets the active top margin; the active WebView's y origin would be // Sets the active top margin; the active WebView's y origin would be
// positioned at this |margin|, causing the active WebView to be pushed down // positioned at this |margin|, causing the active WebView to be pushed down
// vertically by |margin| pixels in the |ContentsContainer|. // vertically by |margin| pixels in the |ContentsContainer|. Returns true
void SetActiveTopMargin(int margin); // if the margin changed and this view needs Layout().
bool SetActiveTopMargin(int margin);
// Sets a vertical offset of |margin| pixels for the |overlay_| content,
// similar to SetActiveTopMargin(). Returns true if the margin changed and
// this view needs Layout().
bool SetOverlayTopMargin(int margin);
// Returns the bounds the overlay would be shown at. // Returns the bounds the overlay would be shown at.
gfx::Rect GetOverlayBounds() const; gfx::Rect GetOverlayBounds() const;
...@@ -75,11 +81,15 @@ class ContentsContainer : public views::View, ...@@ -75,11 +81,15 @@ class ContentsContainer : public views::View,
// the content page. // the content page.
bool IsOverlayFullHeight() const; bool IsOverlayFullHeight() const;
private:
// Overridden from views::View: // Overridden from views::View:
virtual void Layout() OVERRIDE; virtual void Layout() OVERRIDE;
virtual std::string GetClassName() const OVERRIDE; virtual std::string GetClassName() const OVERRIDE;
// Testing interface:
views::WebView* GetActiveWebViewForTest() { return active_; }
views::WebView* GetOverlayWebViewForTest() { return overlay_; }
private:
// content::NotificationObserver implementation. // content::NotificationObserver implementation.
virtual void Observe(int type, virtual void Observe(int type,
const content::NotificationSource& source, const content::NotificationSource& source,
...@@ -95,6 +105,11 @@ class ContentsContainer : public views::View, ...@@ -95,6 +105,11 @@ class ContentsContainer : public views::View,
// overlay overlap the bookmark bar on the new tab page. // overlay overlap the bookmark bar on the new tab page.
int active_top_margin_; int active_top_margin_;
// The margin between the top of this view and the overlay view. Used to
// push down the instant extended suggestions during an immersive fullscreen
// reveal.
int overlay_top_margin_;
// The desired height of the overlay and units. // The desired height of the overlay and units.
int overlay_height_; int overlay_height_;
InstantSizeUnits overlay_height_units_; InstantSizeUnits overlay_height_units_;
......
...@@ -89,6 +89,9 @@ namespace chrome { ...@@ -89,6 +89,9 @@ namespace chrome {
// Implemented in immersive_mode_controller_factory.cc. // Implemented in immersive_mode_controller_factory.cc.
bool UseImmersiveFullscreen(); bool UseImmersiveFullscreen();
// Implemented in immersive_mode_controller_factory.cc.
void EnableImmersiveFullscreenForTest();
// Implemented in immersive_mode_controller_factory.cc. // Implemented in immersive_mode_controller_factory.cc.
ImmersiveModeController* CreateImmersiveModeController(); ImmersiveModeController* CreateImmersiveModeController();
......
...@@ -25,6 +25,14 @@ bool UseImmersiveFullscreen() { ...@@ -25,6 +25,14 @@ bool UseImmersiveFullscreen() {
return false; return false;
} }
// Implemented here so all the code dealing with flags lives in one place.
void EnableImmersiveFullscreenForTest() {
#if defined(OS_CHROMEOS)
CommandLine* command_line = CommandLine::ForCurrentProcess();
command_line->AppendSwitch(ash::switches::kAshImmersiveFullscreen);
#endif
}
ImmersiveModeController* CreateImmersiveModeController() { ImmersiveModeController* CreateImmersiveModeController() {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
return new ImmersiveModeControllerAsh(); return new ImmersiveModeControllerAsh();
......
...@@ -239,6 +239,7 @@ ...@@ -239,6 +239,7 @@
'browser/ui/views/button_dropdown_test.cc', 'browser/ui/views/button_dropdown_test.cc',
'browser/ui/views/constrained_window_views_browsertest.cc', 'browser/ui/views/constrained_window_views_browsertest.cc',
'browser/ui/views/find_bar_host_interactive_uitest.cc', 'browser/ui/views/find_bar_host_interactive_uitest.cc',
'browser/ui/views/frame/browser_view_interactive_uitest.cc',
'browser/ui/views/keyboard_access_browsertest.cc', 'browser/ui/views/keyboard_access_browsertest.cc',
'browser/ui/views/location_bar/star_view_browsertest.cc', 'browser/ui/views/location_bar/star_view_browsertest.cc',
'browser/ui/views/menu_item_view_test.cc', 'browser/ui/views/menu_item_view_test.cc',
...@@ -1536,7 +1537,6 @@ ...@@ -1536,7 +1537,6 @@
'browser/ui/views/find_bar_controller_browsertest.cc', 'browser/ui/views/find_bar_controller_browsertest.cc',
'browser/ui/views/frame/app_non_client_frame_view_ash_browsertest.cc', 'browser/ui/views/frame/app_non_client_frame_view_ash_browsertest.cc',
'browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc', 'browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc',
'browser/ui/views/frame/browser_view_browsertest.cc',
'browser/ui/views/frame/immersive_mode_controller_ash_browsertest.cc', 'browser/ui/views/frame/immersive_mode_controller_ash_browsertest.cc',
'browser/ui/views/select_file_dialog_extension_browsertest.cc', 'browser/ui/views/select_file_dialog_extension_browsertest.cc',
'browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc', 'browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc',
......
...@@ -37,6 +37,7 @@ function getNewTabPageHandle() { ...@@ -37,6 +37,7 @@ function getNewTabPageHandle() {
function handleNativeSuggestions() { function handleNativeSuggestions() {
onNativeSuggestionsCalls++; onNativeSuggestionsCalls++;
// Showing the loader at 100% height. // Showing the loader at 100% height.
apiHandle.hideBars();
apiHandle.showOverlay(); apiHandle.showOverlay();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment