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

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

Issue 2013008: Remove --omnibox-popup-count flag. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: nits Created 10 years, 7 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/autocomplete/keyword_provider.cc ('k') | chrome/browser/browser_init.cc » ('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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/search_provider.h" 5 #include "chrome/browser/autocomplete/search_provider.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 have_suggest_results_ = false; 321 have_suggest_results_ = false;
322 } 322 }
323 323
324 void SearchProvider::ScheduleHistoryQuery(TemplateURL::IDType search_id, 324 void SearchProvider::ScheduleHistoryQuery(TemplateURL::IDType search_id,
325 const std::wstring& text) { 325 const std::wstring& text) {
326 DCHECK(!text.empty()); 326 DCHECK(!text.empty());
327 HistoryService* const history_service = 327 HistoryService* const history_service =
328 profile_->GetHistoryService(Profile::EXPLICIT_ACCESS); 328 profile_->GetHistoryService(Profile::EXPLICIT_ACCESS);
329 HistoryService::Handle request_handle = 329 HistoryService::Handle request_handle =
330 history_service->GetMostRecentKeywordSearchTerms( 330 history_service->GetMostRecentKeywordSearchTerms(
331 search_id, text, static_cast<int>(max_matches()), 331 search_id, text, static_cast<int>(kMaxMatches),
332 &history_request_consumer_, 332 &history_request_consumer_,
333 NewCallback(this, 333 NewCallback(this,
334 &SearchProvider::OnGotMostRecentKeywordSearchTerms)); 334 &SearchProvider::OnGotMostRecentKeywordSearchTerms));
335 history_request_consumer_.SetClientData(history_service, request_handle, 335 history_request_consumer_.SetClientData(history_service, request_handle,
336 search_id); 336 search_id);
337 history_request_pending_ = true; 337 history_request_pending_ = true;
338 } 338 }
339 339
340 void SearchProvider::OnGotMostRecentKeywordSearchTerms( 340 void SearchProvider::OnGotMostRecentKeywordSearchTerms(
341 CancelableRequestProvider::Handle handle, 341 CancelableRequestProvider::Handle handle,
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 433
434 Value* type_val; 434 Value* type_val;
435 std::wstring type_str; 435 std::wstring type_str;
436 if (type_list && type_list->Get(i, &type_val) && 436 if (type_list && type_list->Get(i, &type_val) &&
437 type_val->GetAsString(&type_str) && (type_str == L"NAVIGATION")) { 437 type_val->GetAsString(&type_str) && (type_str == L"NAVIGATION")) {
438 Value* site_val; 438 Value* site_val;
439 std::wstring site_name; 439 std::wstring site_name;
440 NavigationResults& navigation_results = 440 NavigationResults& navigation_results =
441 is_keyword ? keyword_navigation_results_ : 441 is_keyword ? keyword_navigation_results_ :
442 default_navigation_results_; 442 default_navigation_results_;
443 if ((navigation_results.size() < max_matches()) && 443 if ((navigation_results.size() < kMaxMatches) &&
444 description_list && description_list->Get(i, &site_val) && 444 description_list && description_list->Get(i, &site_val) &&
445 site_val->IsType(Value::TYPE_STRING) && 445 site_val->IsType(Value::TYPE_STRING) &&
446 site_val->GetAsString(&site_name)) { 446 site_val->GetAsString(&site_name)) {
447 // We can't blindly trust the URL coming from the server to be valid. 447 // We can't blindly trust the URL coming from the server to be valid.
448 GURL result_url = 448 GURL result_url =
449 GURL(URLFixerUpper::FixupURL(WideToUTF8(suggestion_str), 449 GURL(URLFixerUpper::FixupURL(WideToUTF8(suggestion_str),
450 std::string())); 450 std::string()));
451 if (result_url.is_valid()) 451 if (result_url.is_valid())
452 navigation_results.push_back(NavigationResult(result_url, site_name)); 452 navigation_results.push_back(NavigationResult(result_url, site_name));
453 } 453 }
454 } else { 454 } else {
455 // TODO(kochi): Currently we treat a calculator result as a query, but it 455 // TODO(kochi): Currently we treat a calculator result as a query, but it
456 // is better to have better presentation for caluculator results. 456 // is better to have better presentation for caluculator results.
457 if (suggest_results->size() < max_matches()) 457 if (suggest_results->size() < kMaxMatches)
458 suggest_results->push_back(suggestion_str); 458 suggest_results->push_back(suggestion_str);
459 } 459 }
460 } 460 }
461 461
462 return true; 462 return true;
463 } 463 }
464 464
465 void SearchProvider::ConvertResultsToAutocompleteMatches() { 465 void SearchProvider::ConvertResultsToAutocompleteMatches() {
466 // Convert all the results to matches and add them to a map, so we can keep 466 // Convert all the results to matches and add them to a map, so we can keep
467 // the most relevant match for each result. 467 // the most relevant match for each result.
(...skipping 24 matching lines...) Expand all
492 did_not_accept_default_suggestion, &map); 492 did_not_accept_default_suggestion, &map);
493 493
494 // Now add the most relevant matches from the map to |matches_|. 494 // Now add the most relevant matches from the map to |matches_|.
495 matches_.clear(); 495 matches_.clear();
496 for (MatchMap::const_iterator i(map.begin()); i != map.end(); ++i) 496 for (MatchMap::const_iterator i(map.begin()); i != map.end(); ++i)
497 matches_.push_back(i->second); 497 matches_.push_back(i->second);
498 498
499 AddNavigationResultsToMatches(keyword_navigation_results_, true); 499 AddNavigationResultsToMatches(keyword_navigation_results_, true);
500 AddNavigationResultsToMatches(default_navigation_results_, false); 500 AddNavigationResultsToMatches(default_navigation_results_, false);
501 501
502 const size_t max_total_matches = max_matches() + 1; // 1 for "what you typed" 502 const size_t max_total_matches = kMaxMatches + 1; // 1 for "what you typed"
503 std::partial_sort(matches_.begin(), 503 std::partial_sort(matches_.begin(),
504 matches_.begin() + std::min(max_total_matches, matches_.size()), 504 matches_.begin() + std::min(max_total_matches, matches_.size()),
505 matches_.end(), &AutocompleteMatch::MoreRelevant); 505 matches_.end(), &AutocompleteMatch::MoreRelevant);
506 if (matches_.size() > max_total_matches) 506 if (matches_.size() > max_total_matches)
507 matches_.erase(matches_.begin() + max_total_matches, matches_.end()); 507 matches_.erase(matches_.begin() + max_total_matches, matches_.end());
508 508
509 UpdateStarredStateOfMatches(); 509 UpdateStarredStateOfMatches();
510 510
511 // We're done when both asynchronous subcomponents have finished. We can't 511 // We're done when both asynchronous subcomponents have finished. We can't
512 // use CancelableRequestConsumer.HasPendingRequests() for history requests 512 // use CancelableRequestConsumer.HasPendingRequests() for history requests
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 // values preserve that property. Otherwise, if the user starts editing a 753 // values preserve that property. Otherwise, if the user starts editing a
754 // suggestion, non-Search results will suddenly appear. 754 // suggestion, non-Search results will suddenly appear.
755 if (input_.type() == AutocompleteInput::FORCED_QUERY) 755 if (input_.type() == AutocompleteInput::FORCED_QUERY)
756 match.fill_into_edit.assign(L"?"); 756 match.fill_into_edit.assign(L"?");
757 match.fill_into_edit.append(match.contents); 757 match.fill_into_edit.append(match.contents);
758 // TODO(pkasting): http://b/1112879 These should perhaps be 758 // TODO(pkasting): http://b/1112879 These should perhaps be
759 // inline-autocompletable? 759 // inline-autocompletable?
760 760
761 return match; 761 return match;
762 } 762 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/keyword_provider.cc ('k') | chrome/browser/browser_init.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698