| Index: chrome/browser/ui/views/frame/instant_overlay_controller_views.cc
|
| diff --git a/chrome/browser/ui/views/frame/instant_overlay_controller_views.cc b/chrome/browser/ui/views/frame/instant_overlay_controller_views.cc
|
| index ef8fdbbe479d84dc107a6eeef338cad1dbc910d0..6efe9ecfc3a29047e2f9316c9c9ef4a3c8ecfe7f 100644
|
| --- a/chrome/browser/ui/views/frame/instant_overlay_controller_views.cc
|
| +++ b/chrome/browser/ui/views/frame/instant_overlay_controller_views.cc
|
| @@ -25,37 +25,38 @@ InstantOverlayControllerViews::~InstantOverlayControllerViews() {
|
|
|
| void InstantOverlayControllerViews::OverlayStateChanged(
|
| const InstantOverlayModel& model) {
|
| - if (model.mode().is_ntp() || model.mode().is_search_suggestions()) {
|
| - // Show the overlay.
|
| - if (!overlay_) {
|
| - overlay_.reset(new views::WebView(browser_->profile()));
|
| - overlay_->set_id(VIEW_ID_TAB_CONTAINER);
|
| - }
|
| - // Drop shadow is only needed if search mode is not |NTP| and overlay does
|
| - // not fill up the entire contents page.
|
| - bool draw_drop_shadow = !model.mode().is_ntp() &&
|
| - !(contents_->IsOverlayFullHeight(model.height(), model.height_units()));
|
| - content::WebContents* web_contents = model.GetOverlayContents();
|
| - contents_->SetOverlay(overlay_.get(), web_contents, model.height(),
|
| - model.height_units(), draw_drop_shadow);
|
| - overlay_->SetWebContents(web_contents);
|
| - } else if (overlay_) {
|
| + if (!model.contents()) {
|
| // Hide the overlay. SetWebContents() must happen before SetOverlay().
|
| - overlay_->SetWebContents(NULL);
|
| - contents_->SetOverlay(NULL, NULL, 100, INSTANT_SIZE_PERCENT, false);
|
| - overlay_.reset();
|
| + if (overlay_) {
|
| + overlay_->SetWebContents(NULL);
|
| + contents_->SetOverlay(NULL, NULL, 0, INSTANT_SIZE_PIXELS, false);
|
| + overlay_.reset();
|
| + }
|
| + return;
|
| + }
|
| +
|
| + // Show the overlay.
|
| + if (!overlay_) {
|
| + overlay_.reset(new views::WebView(browser_->profile()));
|
| + overlay_->set_id(VIEW_ID_TAB_CONTAINER);
|
| }
|
|
|
| - browser_->MaybeUpdateBookmarkBarStateForInstantOverlay(model.mode());
|
| + // Drop shadow is only needed if the overlay does not fill up the entire
|
| + // contents page.
|
| + bool draw_drop_shadow =
|
| + !contents_->IsOverlayFullHeight(model.height(), model.height_units());
|
| + contents_->SetOverlay(overlay_.get(), model.contents(), model.height(),
|
| + model.height_units(), draw_drop_shadow);
|
| + overlay_->SetWebContents(model.contents());
|
| +
|
| + browser_->MaybeUpdateBookmarkBarStateForInstantOverlay();
|
|
|
| // If an Instant overlay is added during an immersive mode reveal, the reveal
|
| // view needs to stay on top.
|
| // Notify infobar container of change in overlay state.
|
| - if (overlay_) {
|
| - BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
|
| - if (browser_view) {
|
| - browser_view->MaybeStackImmersiveRevealAtTop();
|
| - browser_view->infobar_container()->OverlayStateChanged(model);
|
| - }
|
| + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
|
| + if (browser_view) {
|
| + browser_view->MaybeStackImmersiveRevealAtTop();
|
| + browser_view->infobar_container()->InstantOverlayShown();
|
| }
|
| }
|
|
|