Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Unified Diff: chrome/browser/ui/search/search_tab_helper.cc

Issue 10827055: Move web_contents from SearchViewController to SearchTabHelper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Lifetime Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/search/search_tab_helper.h ('k') | chrome/browser/ui/views/frame/browser_view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/search/search_tab_helper.cc
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc
index d6b41e59a3a1b17789f8c21e7d7bced46caa0593..efccd6fca51dba311b5c76f5803bbf6f049e3037 100644
--- a/chrome/browser/ui/search/search_tab_helper.cc
+++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -5,8 +5,8 @@
#include "chrome/browser/ui/search/search_tab_helper.h"
#include "chrome/browser/google/google_util.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/omnibox/omnibox_edit_model.h"
-#include "chrome/browser/ui/search/search_model.h"
#include "chrome/browser/ui/tab_contents/tab_contents.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/navigation_controller.h"
@@ -15,6 +15,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
#include "content/public/browser/web_contents.h"
+#include "ipc/ipc_message.h"
namespace {
@@ -33,7 +34,7 @@ SearchTabHelper::SearchTabHelper(
bool is_search_enabled)
: WebContentsObserver(contents->web_contents()),
is_search_enabled_(is_search_enabled),
- model_(new SearchModel(contents)) {
+ model_(contents) {
if (!is_search_enabled)
return;
@@ -47,13 +48,30 @@ SearchTabHelper::SearchTabHelper(
SearchTabHelper::~SearchTabHelper() {
}
+content::WebContents* SearchTabHelper::GetNTPWebContents() {
+ if (!ntp_web_contents_.get()) {
+ ntp_web_contents_.reset(content::WebContents::Create(
+ model_.tab_contents()->profile(),
+ model_.tab_contents()->web_contents()->GetSiteInstance(),
+ MSG_ROUTING_NONE,
+ NULL,
+ NULL));
+ ntp_web_contents_->GetController().LoadURL(
+ GURL(chrome::kChromeUINewTabURL),
+ content::Referrer(),
+ content::PAGE_TRANSITION_START_PAGE,
+ std::string());
+ }
+ return ntp_web_contents_.get();
+}
+
void SearchTabHelper::OmniboxEditModelChanged(OmniboxEditModel* edit_model) {
if (!is_search_enabled_)
return;
- if (model_->mode().is_ntp()) {
+ if (model_.mode().is_ntp()) {
if (edit_model->user_input_in_progress())
- model_->SetMode(Mode(Mode::MODE_SEARCH, true));
+ model_.SetMode(Mode(Mode::MODE_SEARCH, true));
return;
}
@@ -64,7 +82,7 @@ void SearchTabHelper::OmniboxEditModelChanged(OmniboxEditModel* edit_model) {
(edit_model->has_focus() && edit_model->user_input_in_progress())) {
mode = Mode::MODE_SEARCH;
}
- model_->SetMode(Mode(mode, true));
+ model_.SetMode(Mode(mode, true));
}
void SearchTabHelper::NavigateToPendingEntry(
@@ -74,6 +92,7 @@ void SearchTabHelper::NavigateToPendingEntry(
return;
UpdateModel(url);
+ FlushNTP(url);
}
void SearchTabHelper::Observe(
@@ -84,6 +103,7 @@ void SearchTabHelper::Observe(
content::LoadCommittedDetails* committed_details =
content::Details<content::LoadCommittedDetails>(details).ptr();
UpdateModel(committed_details->entry->GetURL());
+ FlushNTP(committed_details->entry->GetURL());
}
void SearchTabHelper::UpdateModel(const GURL& url) {
@@ -92,7 +112,14 @@ void SearchTabHelper::UpdateModel(const GURL& url) {
type = Mode::MODE_NTP;
else if (google_util::IsInstantExtendedAPIGoogleSearchUrl(url.spec()))
type = Mode::MODE_SEARCH;
- model_->SetMode(Mode(type, true));
+ model_.SetMode(Mode(type, true));
+}
+
+void SearchTabHelper::FlushNTP(const GURL& url) {
+ if (!IsNTP(url) &&
+ !google_util::IsInstantExtendedAPIGoogleSearchUrl(url.spec())) {
+ ntp_web_contents_.reset();
+ }
}
} // namespace search
« no previous file with comments | « chrome/browser/ui/search/search_tab_helper.h ('k') | chrome/browser/ui/views/frame/browser_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698