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 21aac0f61800da235ca8672bf8a4934082b6cb92..147999730d8549f298dbdf94cdf0ddfc9b627b48 100644 |
--- a/chrome/browser/ui/views/search_view_controller.cc |
+++ b/chrome/browser/ui/views/search_view_controller.cc |
@@ -236,10 +236,8 @@ void SearchViewController::OmniboxPopupViewParent::ChildPreferredSizeChanged( |
// SearchViewController -------------------------------------------------------- |
SearchViewController::SearchViewController( |
- content::BrowserContext* browser_context, |
ContentsContainer* contents_container) |
- : browser_context_(browser_context), |
- contents_container_(contents_container), |
+ : contents_container_(contents_container), |
location_bar_container_(NULL), |
state_(STATE_NOT_VISIBLE), |
tab_contents_(NULL), |
@@ -340,7 +338,6 @@ void SearchViewController::UpdateState() { |
break; |
} |
SetState(new_state); |
- MaybeLoadNTP(); |
} |
void SearchViewController::SetState(State state) { |
@@ -357,9 +354,6 @@ void SearchViewController::SetState(State state) { |
case STATE_NTP: |
DestroyViews(); |
CreateViews(); |
- // TODO(dhollowa): This is temporary. The |content_view_| should pull its |
- // web contents from the current tab's |search_tab_helper|. |
- content_view_->LoadInitialURL(GURL(chrome::kChromeUINewTabURL)); |
break; |
case STATE_ANIMATING: |
@@ -432,8 +426,10 @@ void SearchViewController::CreateViews() { |
logo_view_->SetPaintToLayer(true); |
logo_view_->SetFillsBoundsOpaquely(false); |
- content_view_ = new views::WebView(browser_context_); |
- content_view_->SetFillsBoundsOpaquely(false); |
+ // Reparent the main web contents view out of |contents_container_| and |
+ // in to |ntp_view_| below. Reparent back in destructor. |
+ content_view_ = contents_container_->active(); |
+ contents_container_->SetActive(NULL); |
sky
2012/08/09 00:39:14
How about a DCHECK(content_view_) between 431/432.
dhollowa
2012/08/09 16:07:25
Done.
|
ntp_view_->SetLayoutManager( |
new NTPViewLayoutManager(logo_view_, content_view_)); |
@@ -458,10 +454,15 @@ void SearchViewController::DestroyViews() { |
omnibox_popup_view_parent_->parent()->RemoveChildView( |
omnibox_popup_view_parent_); |
- if (content_view_) |
- content_view_->SetWebContents(NULL); |
- |
+ // Restore control/parenting of the web_contents back to the |
+ // |main_contents_view_|. |
+ ntp_view_->SetLayoutManager(NULL); |
+ ntp_view_->RemoveChildView(content_view_); |
+ if (content_view_->web_contents()) |
+ content_view_->web_contents()->GetNativeView()->layer()->SetOpacity(1.0f); |
+ contents_container_->SetActive(content_view_); |
contents_container_->SetOverlay(NULL); |
+ |
delete search_container_; |
search_container_ = NULL; |
ntp_view_ = NULL; |
@@ -480,14 +481,6 @@ 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; |
} |