| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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.h" | 5 #include "chrome/browser/autocomplete/autocomplete.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/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 ClassifyLocationInString(text.find(find_text), find_text.length(), | 431 ClassifyLocationInString(text.find(find_text), find_text.length(), |
| 432 text.length(), style, classification); | 432 text.length(), style, classification); |
| 433 } | 433 } |
| 434 | 434 |
| 435 void AutocompleteMatch::ClassifyLocationInString( | 435 void AutocompleteMatch::ClassifyLocationInString( |
| 436 size_t match_location, | 436 size_t match_location, |
| 437 size_t match_length, | 437 size_t match_length, |
| 438 size_t overall_length, | 438 size_t overall_length, |
| 439 int style, | 439 int style, |
| 440 ACMatchClassifications* classification) { | 440 ACMatchClassifications* classification) { |
| 441 // Classifying an empty match makes no sense and will lead to validation | |
| 442 // errors later. | |
| 443 DCHECK(match_length > 0); | |
| 444 | |
| 445 classification->clear(); | 441 classification->clear(); |
| 446 | 442 |
| 447 // Don't classify anything about an empty string | 443 // Don't classify anything about an empty string |
| 448 // (AutocompleteMatch::Validate() checks this). | 444 // (AutocompleteMatch::Validate() checks this). |
| 449 if (overall_length == 0) | 445 if (overall_length == 0) |
| 450 return; | 446 return; |
| 451 | 447 |
| 452 // Mark pre-match portion of string (if any). | 448 // Mark pre-match portion of string (if any). |
| 453 if (match_location != 0) { | 449 if (match_location != 0) { |
| 454 classification->push_back(ACMatchClassification(0, style)); | 450 classification->push_back(ACMatchClassification(0, style)); |
| 455 } | 451 } |
| 456 | 452 |
| 457 // Mark matching portion of string. | 453 // Mark matching portion of string. |
| 458 if (match_location == std::wstring::npos) { | 454 if (match_location == std::wstring::npos) { |
| 459 // No match, above classification will suffice for whole string. | 455 // No match, above classification will suffice for whole string. |
| 460 return; | 456 return; |
| 461 } | 457 } |
| 458 // Classifying an empty match makes no sense and will lead to validation |
| 459 // errors later. |
| 460 DCHECK(match_length > 0); |
| 462 classification->push_back(ACMatchClassification(match_location, | 461 classification->push_back(ACMatchClassification(match_location, |
| 463 (style | ACMatchClassification::MATCH) & ~ACMatchClassification::DIM)); | 462 (style | ACMatchClassification::MATCH) & ~ACMatchClassification::DIM)); |
| 464 | 463 |
| 465 // Mark post-match portion of string (if any). | 464 // Mark post-match portion of string (if any). |
| 466 const size_t after_match(match_location + match_length); | 465 const size_t after_match(match_location + match_length); |
| 467 if (after_match < overall_length) { | 466 if (after_match < overall_length) { |
| 468 classification->push_back(ACMatchClassification(after_match, style)); | 467 classification->push_back(ACMatchClassification(after_match, style)); |
| 469 } | 468 } |
| 470 } | 469 } |
| 471 | 470 |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 void AutocompleteController::CheckIfDone() { | 962 void AutocompleteController::CheckIfDone() { |
| 964 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); | 963 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); |
| 965 ++i) { | 964 ++i) { |
| 966 if (!(*i)->done()) { | 965 if (!(*i)->done()) { |
| 967 done_ = false; | 966 done_ = false; |
| 968 return; | 967 return; |
| 969 } | 968 } |
| 970 } | 969 } |
| 971 done_ = true; | 970 done_ = true; |
| 972 } | 971 } |
| OLD | NEW |