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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_controller.cc

Issue 11198074: Initial implementation of dedupping search provider's URLs. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix a minor compilation error. Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/autocomplete/autocomplete_controller.h" 5 #include "chrome/browser/autocomplete/autocomplete_controller.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 // the providers again. 262 // the providers again.
263 UpdateResult(false); 263 UpdateResult(false);
264 } 264 }
265 265
266 void AutocompleteController::OnProviderUpdate(bool updated_matches) { 266 void AutocompleteController::OnProviderUpdate(bool updated_matches) {
267 if (in_zero_suggest_) { 267 if (in_zero_suggest_) {
268 // We got ZeroSuggest results before Start(). Show only those results, 268 // We got ZeroSuggest results before Start(). Show only those results,
269 // because results from other providers are stale. 269 // because results from other providers are stale.
270 result_.Reset(); 270 result_.Reset();
271 result_.AppendMatches(zero_suggest_provider_->matches()); 271 result_.AppendMatches(zero_suggest_provider_->matches());
272 result_.SortAndCull(input_); 272 result_.SortAndCull(input_, profile_);
273 NotifyChanged(true); 273 NotifyChanged(true);
274 } else { 274 } else {
275 CheckIfDone(); 275 CheckIfDone();
276 // Multiple providers may provide synchronous results, so we only update the 276 // Multiple providers may provide synchronous results, so we only update the
277 // results if we're not in Start(). 277 // results if we're not in Start().
278 if (!in_start_ && (updated_matches || done_)) 278 if (!in_start_ && (updated_matches || done_))
279 UpdateResult(false); 279 UpdateResult(false);
280 } 280 }
281 } 281 }
282 282
(...skipping 12 matching lines...) Expand all
295 295
296 void AutocompleteController::UpdateResult(bool is_synchronous_pass) { 296 void AutocompleteController::UpdateResult(bool is_synchronous_pass) {
297 AutocompleteResult last_result; 297 AutocompleteResult last_result;
298 last_result.Swap(&result_); 298 last_result.Swap(&result_);
299 299
300 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); 300 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end();
301 ++i) 301 ++i)
302 result_.AppendMatches((*i)->matches()); 302 result_.AppendMatches((*i)->matches());
303 303
304 // Sort the matches and trim to a small number of "best" matches. 304 // Sort the matches and trim to a small number of "best" matches.
305 result_.SortAndCull(input_); 305 result_.SortAndCull(input_, profile_);
306 306
307 // Need to validate before invoking CopyOldMatches as the old matches are not 307 // Need to validate before invoking CopyOldMatches as the old matches are not
308 // valid against the current input. 308 // valid against the current input.
309 #ifndef NDEBUG 309 #ifndef NDEBUG
310 result_.Validate(); 310 result_.Validate();
311 #endif 311 #endif
312 312
313 if (!done_) { 313 if (!done_) {
314 // This conditional needs to match the conditional in Start that invokes 314 // This conditional needs to match the conditional in Start that invokes
315 // StartExpireTimer. 315 // StartExpireTimer.
316 result_.CopyOldMatches(input_, last_result); 316 result_.CopyOldMatches(input_, last_result, profile_);
317 } 317 }
318 318
319 UpdateKeywordDescriptions(&result_); 319 UpdateKeywordDescriptions(&result_);
320 UpdateAssociatedKeywords(&result_); 320 UpdateAssociatedKeywords(&result_);
321 UpdateAssistedQueryStats(&result_); 321 UpdateAssistedQueryStats(&result_);
322 322
323 bool notify_default_match = is_synchronous_pass; 323 bool notify_default_match = is_synchronous_pass;
324 if (!is_synchronous_pass) { 324 if (!is_synchronous_pass) {
325 const bool last_default_was_valid = 325 const bool last_default_was_valid =
326 last_result.default_match() != last_result.end(); 326 last_result.default_match() != last_result.end();
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 } 462 }
463 done_ = true; 463 done_ = true;
464 } 464 }
465 465
466 void AutocompleteController::StartExpireTimer() { 466 void AutocompleteController::StartExpireTimer() {
467 if (result_.HasCopiedMatches()) 467 if (result_.HasCopiedMatches())
468 expire_timer_.Start(FROM_HERE, 468 expire_timer_.Start(FROM_HERE,
469 base::TimeDelta::FromMilliseconds(kExpireTimeMS), 469 base::TimeDelta::FromMilliseconds(kExpireTimeMS),
470 this, &AutocompleteController::ExpireCopiedEntries); 470 this, &AutocompleteController::ExpireCopiedEntries);
471 } 471 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete_match.h » ('j') | chrome/browser/autocomplete/autocomplete_match.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698