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

Side by Side Diff: chrome/browser/ui/search/instant_search_prerenderer.cc

Issue 2651763002: Cleanup in components/search and chrome/browser/search (Closed)
Patch Set: for each Created 3 years, 11 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/search/instant_search_prerenderer.h ('k') | components/search/search.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/search/instant_search_prerenderer.h" 5 #include "chrome/browser/ui/search/instant_search_prerenderer.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "chrome/browser/prerender/prerender_handle.h" 9 #include "chrome/browser/prerender/prerender_handle.h"
10 #include "chrome/browser/prerender/prerender_manager.h" 10 #include "chrome/browser/prerender/prerender_manager.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 const EmbeddedSearchRequestParams& params) { 107 const EmbeddedSearchRequestParams& params) {
108 DCHECK(prerender_handle_); 108 DCHECK(prerender_handle_);
109 DCHECK(prerender_contents()); 109 DCHECK(prerender_contents());
110 SearchTabHelper::FromWebContents(prerender_contents())->Submit(query, params); 110 SearchTabHelper::FromWebContents(prerender_contents())->Submit(query, params);
111 } 111 }
112 112
113 bool InstantSearchPrerenderer::CanCommitQuery( 113 bool InstantSearchPrerenderer::CanCommitQuery(
114 content::WebContents* source, 114 content::WebContents* source,
115 const base::string16& query) const { 115 const base::string16& query) const {
116 if (!source || query.empty() || !prerender_handle_ || 116 if (!source || query.empty() || !prerender_handle_ ||
117 !prerender_handle_->IsFinishedLoading() || 117 !prerender_handle_->IsFinishedLoading() || !prerender_contents()) {
118 !prerender_contents() || !QueryMatchesPrefetch(query)) {
119 return false; 118 return false;
120 } 119 }
121 120
122 return true; 121 return true;
123 } 122 }
124 123
125 bool InstantSearchPrerenderer::UsePrerenderedPage( 124 bool InstantSearchPrerenderer::UsePrerenderedPage(
126 const GURL& url, 125 const GURL& url,
127 chrome::NavigateParams* params) { 126 chrome::NavigateParams* params) {
128 base::string16 search_terms = 127 base::string16 search_terms =
129 search::ExtractSearchTermsFromURL(profile_, url); 128 search::ExtractSearchTermsFromURL(profile_, url);
130 prerender::PrerenderManager* prerender_manager = 129 prerender::PrerenderManager* prerender_manager =
131 prerender::PrerenderManagerFactory::GetForBrowserContext(profile_); 130 prerender::PrerenderManagerFactory::GetForBrowserContext(profile_);
132 if (search_terms.empty() || !params->target_contents || 131 if (search_terms.empty() || !params->target_contents ||
133 !prerender_contents() || !prerender_manager || 132 !prerender_contents() || !prerender_manager ||
134 !QueryMatchesPrefetch(search_terms) ||
135 params->disposition != WindowOpenDisposition::CURRENT_TAB) { 133 params->disposition != WindowOpenDisposition::CURRENT_TAB) {
136 Cancel(); 134 Cancel();
137 return false; 135 return false;
138 } 136 }
139 137
140 // Do not use prerendered page for renderer initiated search requests. 138 // Do not use prerendered page for renderer initiated search requests.
141 if (params->is_renderer_initiated && 139 if (params->is_renderer_initiated &&
142 ui::PageTransitionCoreTypeIs(params->transition, 140 ui::PageTransitionCoreTypeIs(params->transition,
143 ui::PAGE_TRANSITION_LINK)) { 141 ui::PAGE_TRANSITION_LINK)) {
144 Cancel(); 142 Cancel();
(...skipping 30 matching lines...) Expand all
175 // This handles the by-far-the-most-common cases while still being simple and 173 // This handles the by-far-the-most-common cases while still being simple and
176 // maintainable. 174 // maintainable.
177 return source && AutocompleteMatch::IsSearchType(match.type) && 175 return source && AutocompleteMatch::IsSearchType(match.type) &&
178 MatchIsFromDefaultSearchProvider(match, profile_); 176 MatchIsFromDefaultSearchProvider(match, profile_);
179 } 177 }
180 178
181 content::WebContents* InstantSearchPrerenderer::prerender_contents() const { 179 content::WebContents* InstantSearchPrerenderer::prerender_contents() const {
182 return (prerender_handle_ && prerender_handle_->contents()) ? 180 return (prerender_handle_ && prerender_handle_->contents()) ?
183 prerender_handle_->contents()->prerender_contents() : NULL; 181 prerender_handle_->contents()->prerender_contents() : NULL;
184 } 182 }
185
186 bool InstantSearchPrerenderer::QueryMatchesPrefetch(
187 const base::string16& query) const {
188 return search::ShouldReuseInstantSearchBasePage() ||
189 last_instant_suggestion_.text == query;
190 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/search/instant_search_prerenderer.h ('k') | components/search/search.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698