Index: chrome/browser/ui/views/search_view_controller.cc |
diff --git a/chrome/browser/ui/views/search_view_controller.cc b/chrome/browser/ui/views/search_view_controller.cc |
index 4551032b5e29133c51b41d59b8c36fb539269698..21aac0f61800da235ca8672bf8a4934082b6cb92 100644 |
--- a/chrome/browser/ui/views/search_view_controller.cc |
+++ b/chrome/browser/ui/views/search_view_controller.cc |
@@ -340,6 +340,7 @@ void SearchViewController::UpdateState() { |
break; |
} |
SetState(new_state); |
+ MaybeLoadNTP(); |
} |
void SearchViewController::SetState(State state) { |
@@ -457,6 +458,9 @@ void SearchViewController::DestroyViews() { |
omnibox_popup_view_parent_->parent()->RemoveChildView( |
omnibox_popup_view_parent_); |
+ if (content_view_) |
+ content_view_->SetWebContents(NULL); |
+ |
contents_container_->SetOverlay(NULL); |
delete search_container_; |
search_container_ = NULL; |
@@ -476,6 +480,14 @@ void SearchViewController::PopupVisibilityChanged() { |
} |
} |
+void SearchViewController::MaybeLoadNTP() { |
+ if (state_ != STATE_NTP || !content_view_) |
+ return; |
+ |
+ content_view_->SetWebContents( |
+ tab_contents_->search_tab_helper()->GetNTPWebContents()); |
+} |
+ |
chrome::search::SearchModel* SearchViewController::search_model() { |
return tab_contents_ ? tab_contents_->search_tab_helper()->model() : NULL; |
} |