summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/autocomplete')
-rw-r--r--chrome/browser/autocomplete/autocomplete_browsertest.cc2
-rw-r--r--chrome/browser/autocomplete/autocomplete_controller.cc20
-rw-r--r--chrome/browser/autocomplete/autocomplete_match.cc34
-rw-r--r--chrome/browser/autocomplete/autocomplete_match.h24
-rw-r--r--chrome/browser/autocomplete/autocomplete_match_unittest.cc6
-rw-r--r--chrome/browser/autocomplete/autocomplete_provider_unittest.cc34
-rw-r--r--chrome/browser/autocomplete/bookmark_provider.cc3
-rw-r--r--chrome/browser/autocomplete/builtin_provider.cc2
-rw-r--r--chrome/browser/autocomplete/contact_provider_chromeos.cc2
-rw-r--r--chrome/browser/autocomplete/extension_app_provider.cc3
-rw-r--r--chrome/browser/autocomplete/history_contents_provider.cc4
-rw-r--r--chrome/browser/autocomplete/history_quick_provider.cc5
-rw-r--r--chrome/browser/autocomplete/history_url_provider.cc4
-rw-r--r--chrome/browser/autocomplete/keyword_provider.cc4
-rw-r--r--chrome/browser/autocomplete/search_provider.cc43
-rw-r--r--chrome/browser/autocomplete/search_provider_unittest.cc92
-rw-r--r--chrome/browser/autocomplete/shortcuts_provider.cc2
-rw-r--r--chrome/browser/autocomplete/shortcuts_provider_unittest.cc2
-rw-r--r--chrome/browser/autocomplete/zero_suggest_provider.cc4
19 files changed, 130 insertions, 160 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_browsertest.cc b/chrome/browser/autocomplete/autocomplete_browsertest.cc
index f45eedf..f2e653b 100644
--- a/chrome/browser/autocomplete/autocomplete_browsertest.cc
+++ b/chrome/browser/autocomplete/autocomplete_browsertest.cc
@@ -136,7 +136,7 @@ IN_PROC_BROWSER_TEST_F(AutocompleteBrowserTest, MAYBE_Autocomplete) {
// about the other match existing.
ASSERT_GE(result.size(), 1U) << AutocompleteResultAsString(result);
AutocompleteMatch match = result.match_at(0);
- EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type);
+ EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, match.type);
EXPECT_FALSE(match.deletable);
}
diff --git a/chrome/browser/autocomplete/autocomplete_controller.cc b/chrome/browser/autocomplete/autocomplete_controller.cc
index 3d67031..061542e 100644
--- a/chrome/browser/autocomplete/autocomplete_controller.cc
+++ b/chrome/browser/autocomplete/autocomplete_controller.cc
@@ -54,43 +54,43 @@ void AutocompleteMatchToAssistedQuery(
*subtype = string16::npos;
switch (match) {
- case AutocompleteMatch::SEARCH_SUGGEST: {
+ case AutocompleteMatchType::SEARCH_SUGGEST: {
*type = 0;
return;
}
- case AutocompleteMatch::NAVSUGGEST: {
+ case AutocompleteMatchType::NAVSUGGEST: {
*type = 5;
return;
}
- case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED: {
+ case AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED: {
*subtype = 57;
return;
}
- case AutocompleteMatch::URL_WHAT_YOU_TYPED: {
+ case AutocompleteMatchType::URL_WHAT_YOU_TYPED: {
*subtype = 58;
return;
}
- case AutocompleteMatch::SEARCH_HISTORY: {
+ case AutocompleteMatchType::SEARCH_HISTORY: {
*subtype = 59;
return;
}
- case AutocompleteMatch::HISTORY_URL: {
+ case AutocompleteMatchType::HISTORY_URL: {
*subtype = 60;
return;
}
- case AutocompleteMatch::HISTORY_TITLE: {
+ case AutocompleteMatchType::HISTORY_TITLE: {
*subtype = 61;
return;
}
- case AutocompleteMatch::HISTORY_BODY: {
+ case AutocompleteMatchType::HISTORY_BODY: {
*subtype = 62;
return;
}
- case AutocompleteMatch::HISTORY_KEYWORD: {
+ case AutocompleteMatchType::HISTORY_KEYWORD: {
*subtype = 63;
return;
}
- case AutocompleteMatch::BOOKMARK_TITLE: {
+ case AutocompleteMatchType::BOOKMARK_TITLE: {
*subtype = 65;
return;
}
diff --git a/chrome/browser/autocomplete/autocomplete_match.cc b/chrome/browser/autocomplete/autocomplete_match.cc
index 77041f2..9e9dd72 100644
--- a/chrome/browser/autocomplete/autocomplete_match.cc
+++ b/chrome/browser/autocomplete/autocomplete_match.cc
@@ -47,7 +47,7 @@ AutocompleteMatch::AutocompleteMatch()
inline_autocomplete_offset(string16::npos),
transition(content::PAGE_TRANSITION_GENERATED),
is_history_what_you_typed_match(false),
- type(SEARCH_WHAT_YOU_TYPED),
+ type(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED),
starred(false),
from_previous(false) {
}
@@ -130,28 +130,6 @@ AutocompleteMatch& AutocompleteMatch::operator=(
}
// static
-std::string AutocompleteMatch::TypeToString(Type type) {
- const char* strings[] = {
- "url-what-you-typed",
- "history-url",
- "history-title",
- "history-body",
- "history-keyword",
- "navsuggest",
- "search-what-you-typed",
- "search-history",
- "search-suggest",
- "search-other-engine",
- "extension-app",
- "contact",
- "bookmark-title",
- };
- COMPILE_ASSERT(arraysize(strings) == NUM_TYPES,
- strings_array_must_match_type_enum);
- return strings[type];
-}
-
-// static
int AutocompleteMatch::TypeToIcon(Type type) {
int icons[] = {
IDR_OMNIBOX_HTTP,
@@ -170,7 +148,7 @@ int AutocompleteMatch::TypeToIcon(Type type) {
IDR_OMNIBOX_SEARCH,
IDR_OMNIBOX_HTTP,
};
- COMPILE_ASSERT(arraysize(icons) == NUM_TYPES,
+ COMPILE_ASSERT(arraysize(icons) == AutocompleteMatchType::NUM_TYPES,
icons_array_must_match_type_enum);
return icons[type];
}
@@ -352,10 +330,10 @@ string16 AutocompleteMatch::SanitizeString(const string16& text) {
// static
bool AutocompleteMatch::IsSearchType(Type type) {
- return type == SEARCH_WHAT_YOU_TYPED ||
- type == SEARCH_HISTORY ||
- type == SEARCH_SUGGEST ||
- type == SEARCH_OTHER_ENGINE;
+ return type == AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED ||
+ type == AutocompleteMatchType::SEARCH_HISTORY ||
+ type == AutocompleteMatchType::SEARCH_SUGGEST ||
+ type == AutocompleteMatchType::SEARCH_OTHER_ENGINE;
}
void AutocompleteMatch::ComputeStrippedDestinationURL(Profile* profile) {
diff --git a/chrome/browser/autocomplete/autocomplete_match.h b/chrome/browser/autocomplete/autocomplete_match.h
index 3e7c208..146586e 100644
--- a/chrome/browser/autocomplete/autocomplete_match.h
+++ b/chrome/browser/autocomplete/autocomplete_match.h
@@ -11,6 +11,7 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/search_engines/template_url.h"
+#include "chrome/common/autocomplete_match_type.h"
#include "content/public/common/page_transition_types.h"
#include "googleurl/src/gurl.h"
@@ -74,25 +75,7 @@ struct AutocompleteMatch {
typedef std::map<std::string, std::string> AdditionalInfo;
// The type of this match.
- enum Type {
- URL_WHAT_YOU_TYPED = 0, // The input as a URL.
- HISTORY_URL, // A past page whose URL contains the input.
- HISTORY_TITLE, // A past page whose title contains the input.
- HISTORY_BODY, // A past page whose body contains the input.
- HISTORY_KEYWORD, // A past page whose keyword contains the input.
- NAVSUGGEST, // A suggested URL.
- SEARCH_WHAT_YOU_TYPED, // The input as a search query (with the default
- // engine).
- SEARCH_HISTORY, // A past search (with the default engine)
- // containing the input.
- SEARCH_SUGGEST, // A suggested search (with the default engine).
- SEARCH_OTHER_ENGINE, // A search with a non-default engine.
- EXTENSION_APP, // An Extension App with a title/url that contains
- // the input.
- CONTACT, // One of the user's contacts.
- BOOKMARK_TITLE, // A bookmark whose title contains the input.
- NUM_TYPES,
- };
+ typedef AutocompleteMatchType::Type Type;
// Null-terminated array of characters that are not valid within |contents|
// and |description| strings.
@@ -109,9 +92,6 @@ struct AutocompleteMatch {
// Converts |type| to a string representation. Used in logging and debugging.
AutocompleteMatch& operator=(const AutocompleteMatch& match);
- // Converts |type| to a string representation. Used in logging.
- static std::string TypeToString(Type type);
-
// Converts |type| to a resource identifier for the appropriate icon for this
// type to show in the completion popup.
static int TypeToIcon(Type type);
diff --git a/chrome/browser/autocomplete/autocomplete_match_unittest.cc b/chrome/browser/autocomplete/autocomplete_match_unittest.cc
index 1d0e4d2..8e9dcd2 100644
--- a/chrome/browser/autocomplete/autocomplete_match_unittest.cc
+++ b/chrome/browser/autocomplete/autocomplete_match_unittest.cc
@@ -21,8 +21,10 @@ TEST(AutocompleteMatchTest, MoreRelevant) {
{ -5, -10, true },
};
- AutocompleteMatch m1(NULL, 0, false, AutocompleteMatch::URL_WHAT_YOU_TYPED);
- AutocompleteMatch m2(NULL, 0, false, AutocompleteMatch::URL_WHAT_YOU_TYPED);
+ AutocompleteMatch m1(NULL, 0, false,
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED);
+ AutocompleteMatch m2(NULL, 0, false,
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED);
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
m1.relevance = cases[i].r1;
diff --git a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
index 5462659..d16ac4d 100644
--- a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
+++ b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
@@ -85,13 +85,13 @@ void TestProvider::Start(const AutocompleteInput& input,
// Generate 4 results synchronously, the rest later.
AddResults(0, 1);
AddResultsWithSearchTermsArgs(
- 1, 1, AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ 1, 1, AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("echo")));
AddResultsWithSearchTermsArgs(
- 2, 1, AutocompleteMatch::NAVSUGGEST,
+ 2, 1, AutocompleteMatchType::NAVSUGGEST,
TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("nav")));
AddResultsWithSearchTermsArgs(
- 3, 1, AutocompleteMatch::SEARCH_SUGGEST,
+ 3, 1, AutocompleteMatchType::SEARCH_SUGGEST,
TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("query")));
if (input.matches_requested() == AutocompleteInput::ALL_MATCHES) {
@@ -112,7 +112,7 @@ void TestProvider::Run() {
void TestProvider::AddResults(int start_at, int num) {
AddResultsWithSearchTermsArgs(start_at,
num,
- AutocompleteMatch::URL_WHAT_YOU_TYPED,
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED,
TemplateURLRef::SearchTermsArgs(string16()));
}
@@ -411,8 +411,8 @@ void AutocompleteProviderTest::RunExactKeymatchTest(
EXPECT_EQ(AutocompleteProvider::TYPE_SEARCH,
controller_->result().default_match()->provider->type());
EXPECT_EQ(allow_exact_keyword_match ?
- AutocompleteMatch::SEARCH_OTHER_ENGINE :
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE :
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
controller_->result().default_match()->type);
}
@@ -528,7 +528,7 @@ TEST_F(AutocompleteProviderTest, UpdateAssistedQueryStats) {
{
AssistedQueryStatsTestData test_data[] = {
// MSVC doesn't support zero-length arrays, so supply some dummy data.
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, "" }
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "" }
};
SCOPED_TRACE("No matches");
// Note: We pass 0 here to ignore the dummy data above.
@@ -537,7 +537,7 @@ TEST_F(AutocompleteProviderTest, UpdateAssistedQueryStats) {
{
AssistedQueryStatsTestData test_data[] = {
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, "chrome.0.69i57" }
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "chrome.0.69i57" }
};
SCOPED_TRACE("One match");
RunAssistedQueryStatsTest(test_data, ARRAYSIZE_UNSAFE(test_data));
@@ -545,21 +545,21 @@ TEST_F(AutocompleteProviderTest, UpdateAssistedQueryStats) {
{
AssistedQueryStatsTestData test_data[] = {
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
"chrome.0.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::URL_WHAT_YOU_TYPED,
+ { AutocompleteMatchType::URL_WHAT_YOU_TYPED,
"chrome.1.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::NAVSUGGEST,
+ { AutocompleteMatchType::NAVSUGGEST,
"chrome.2.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::NAVSUGGEST,
+ { AutocompleteMatchType::NAVSUGGEST,
"chrome.3.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::SEARCH_SUGGEST,
+ { AutocompleteMatchType::SEARCH_SUGGEST,
"chrome.4.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::SEARCH_SUGGEST,
+ { AutocompleteMatchType::SEARCH_SUGGEST,
"chrome.5.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::SEARCH_SUGGEST,
+ { AutocompleteMatchType::SEARCH_SUGGEST,
"chrome.6.69i57j69i58j5l2j0l3j69i59" },
- { AutocompleteMatch::SEARCH_HISTORY,
+ { AutocompleteMatchType::SEARCH_HISTORY,
"chrome.7.69i57j69i58j5l2j0l3j69i59" },
};
SCOPED_TRACE("Multiple matches");
@@ -573,7 +573,7 @@ TEST_F(AutocompleteProviderTest, GetDestinationURL) {
// For the destination URL to have aqs parameters for query formulation time
// and the field trial triggered bit, many conditions need to be satisfied.
AutocompleteMatch match(NULL, 1100, false,
- AutocompleteMatch::SEARCH_SUGGEST);
+ AutocompleteMatchType::SEARCH_SUGGEST);
GURL url = controller_->
GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
EXPECT_TRUE(url.path().empty());
diff --git a/chrome/browser/autocomplete/bookmark_provider.cc b/chrome/browser/autocomplete/bookmark_provider.cc
index a20371a..63b30b4 100644
--- a/chrome/browser/autocomplete/bookmark_provider.cc
+++ b/chrome/browser/autocomplete/bookmark_provider.cc
@@ -160,7 +160,8 @@ AutocompleteMatch BookmarkProvider::TitleMatchToACMatch(
// The AutocompleteMatch we construct is non-deletable because the only
// way to support this would be to delete the underlying bookmark, which is
// unlikely to be what the user intends.
- AutocompleteMatch match(this, 0, false, AutocompleteMatch::BOOKMARK_TITLE);
+ AutocompleteMatch match(this, 0, false,
+ AutocompleteMatchType::BOOKMARK_TITLE);
const string16& title(title_match.node->GetTitle());
DCHECK(!title.empty());
const GURL& url(title_match.node->url());
diff --git a/chrome/browser/autocomplete/builtin_provider.cc b/chrome/browser/autocomplete/builtin_provider.cc
index db7c49e..09fa070 100644
--- a/chrome/browser/autocomplete/builtin_provider.cc
+++ b/chrome/browser/autocomplete/builtin_provider.cc
@@ -113,7 +113,7 @@ BuiltinProvider::~BuiltinProvider() {}
void BuiltinProvider::AddMatch(const string16& match_string,
const ACMatchClassifications& styles) {
AutocompleteMatch match(this, kRelevance, false,
- AutocompleteMatch::NAVSUGGEST);
+ AutocompleteMatchType::NAVSUGGEST);
match.fill_into_edit = match_string;
match.destination_url = GURL(match_string);
match.contents = match_string;
diff --git a/chrome/browser/autocomplete/contact_provider_chromeos.cc b/chrome/browser/autocomplete/contact_provider_chromeos.cc
index d715894..c291553 100644
--- a/chrome/browser/autocomplete/contact_provider_chromeos.cc
+++ b/chrome/browser/autocomplete/contact_provider_chromeos.cc
@@ -226,7 +226,7 @@ void ContactProvider::AddContactIfMatched(
AutocompleteMatch ContactProvider::CreateAutocompleteMatch(
const AutocompleteInput& input,
const ContactData& contact) {
- AutocompleteMatch match(this, 0, false, AutocompleteMatch::CONTACT);
+ AutocompleteMatch match(this, 0, false, AutocompleteMatchType::CONTACT);
match.inline_autocomplete_offset = string16::npos;
match.contents = contact.full_name;
match.fill_into_edit = match.contents;
diff --git a/chrome/browser/autocomplete/extension_app_provider.cc b/chrome/browser/autocomplete/extension_app_provider.cc
index 5d655f1..788d096 100644
--- a/chrome/browser/autocomplete/extension_app_provider.cc
+++ b/chrome/browser/autocomplete/extension_app_provider.cc
@@ -73,7 +73,8 @@ AutocompleteMatch ExtensionAppProvider::CreateAutocompleteMatch(
size_t url_match_index) {
// TODO(finnur): Figure out what type to return here, might want to have
// the extension icon/a generic icon show up in the Omnibox.
- AutocompleteMatch match(this, 0, false, AutocompleteMatch::EXTENSION_APP);
+ AutocompleteMatch match(this, 0, false,
+ AutocompleteMatchType::EXTENSION_APP);
match.fill_into_edit =
app.should_match_against_launch_url ? app.launch_url : input.text();
match.destination_url = GURL(app.launch_url);
diff --git a/chrome/browser/autocomplete/history_contents_provider.cc b/chrome/browser/autocomplete/history_contents_provider.cc
index 8551c4a..d9ad816 100644
--- a/chrome/browser/autocomplete/history_contents_provider.cc
+++ b/chrome/browser/autocomplete/history_contents_provider.cc
@@ -232,8 +232,8 @@ AutocompleteMatch HistoryContentsProvider::ResultToMatch(
const MatchReference& match_reference) {
const history::URLResult& result = *match_reference.result;
AutocompleteMatch match(this, match_reference.relevance, true,
- MatchInTitle(result) ?
- AutocompleteMatch::HISTORY_TITLE : AutocompleteMatch::HISTORY_BODY);
+ MatchInTitle(result) ? AutocompleteMatchType::HISTORY_TITLE :
+ AutocompleteMatchType::HISTORY_BODY);
match.contents = StringForURLDisplay(result.url(), true, trim_http_);
match.fill_into_edit =
AutocompleteInput::FormattedStringWithEquivalentMeaning(result.url(),
diff --git a/chrome/browser/autocomplete/history_quick_provider.cc b/chrome/browser/autocomplete/history_quick_provider.cc
index cc6fa7a..e0f2ccb 100644
--- a/chrome/browser/autocomplete/history_quick_provider.cc
+++ b/chrome/browser/autocomplete/history_quick_provider.cc
@@ -32,6 +32,7 @@
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/common/autocomplete_match_type.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
@@ -333,8 +334,8 @@ AutocompleteMatch HistoryQuickProvider::QuickMatchToACMatch(
int score) {
const history::URLRow& info = history_match.url_info;
AutocompleteMatch match(this, score, !!info.visit_count(),
- history_match.url_matches.empty() ?
- AutocompleteMatch::HISTORY_TITLE : AutocompleteMatch::HISTORY_URL);
+ history_match.url_matches.empty() ? AutocompleteMatchType::HISTORY_TITLE :
+ AutocompleteMatchType::HISTORY_URL);
match.typed_count = info.typed_count();
match.destination_url = info.url();
DCHECK(match.destination_url.is_valid());
diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc
index 52eebe2..1bc460f 100644
--- a/chrome/browser/autocomplete/history_url_provider.cc
+++ b/chrome/browser/autocomplete/history_url_provider.cc
@@ -333,7 +333,7 @@ AutocompleteMatch HistoryURLProvider::SuggestExactInput(
const AutocompleteInput& input,
bool trim_http) {
AutocompleteMatch match(provider, 0, false,
- AutocompleteMatch::URL_WHAT_YOU_TYPED);
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED);
const GURL& url = input.canonicalized_url();
if (url.is_valid()) {
@@ -1039,7 +1039,7 @@ AutocompleteMatch HistoryURLProvider::HistoryMatchToACMatch(
int relevance) {
const history::URLRow& info = history_match.url_info;
AutocompleteMatch match(this, relevance,
- !!info.visit_count(), AutocompleteMatch::HISTORY_URL);
+ !!info.visit_count(), AutocompleteMatchType::HISTORY_URL);
match.typed_count = info.typed_count();
match.destination_url = info.url();
DCHECK(match.destination_url.is_valid());
diff --git a/chrome/browser/autocomplete/keyword_provider.cc b/chrome/browser/autocomplete/keyword_provider.cc
index b87e3b3..c7b1533 100644
--- a/chrome/browser/autocomplete/keyword_provider.cc
+++ b/chrome/browser/autocomplete/keyword_provider.cc
@@ -503,8 +503,8 @@ AutocompleteMatch KeywordProvider::CreateAutocompleteMatch(
input.allow_exact_keyword_match());
}
AutocompleteMatch match(this, relevance, false,
- supports_replacement ? AutocompleteMatch::SEARCH_OTHER_ENGINE :
- AutocompleteMatch::HISTORY_KEYWORD);
+ supports_replacement ? AutocompleteMatchType::SEARCH_OTHER_ENGINE :
+ AutocompleteMatchType::HISTORY_KEYWORD);
match.fill_into_edit.assign(keyword);
if (!remaining_input.empty() || !keyword_complete || supports_replacement)
match.fill_into_edit.push_back(L' ');
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index bfb0896..f1d7ea1 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -256,8 +256,8 @@ void SearchProvider::FinalizeInstantQuery(const string16& input_text,
// destination_url for comparison as it varies depending upon the index passed
// to TemplateURL::ReplaceSearchTerms.
for (ACMatches::iterator i = matches_.begin(); i != matches_.end();) {
- if (((i->type == AutocompleteMatch::SEARCH_HISTORY) ||
- (i->type == AutocompleteMatch::SEARCH_SUGGEST)) &&
+ if (((i->type == AutocompleteMatchType::SEARCH_HISTORY) ||
+ (i->type == AutocompleteMatchType::SEARCH_SUGGEST)) &&
(i->fill_into_edit == text)) {
i = matches_.erase(i);
results_updated = true;
@@ -277,7 +277,7 @@ void SearchProvider::FinalizeInstantQuery(const string16& input_text,
TemplateURLRef::NO_SUGGESTION_CHOSEN;
MatchMap match_map;
AddMatchToMap(text, adjusted_input_text, verbatim_relevance + 1,
- AutocompleteMatch::SEARCH_SUGGEST,
+ AutocompleteMatchType::SEARCH_SUGGEST,
did_not_accept_default_suggestion, false, &match_map);
if (!match_map.empty()) {
matches_.push_back(match_map.begin()->second);
@@ -1047,7 +1047,7 @@ void SearchProvider::ConvertResultsToAutocompleteMatches() {
TemplateURLRef::NO_SUGGESTION_CHOSEN;
if (verbatim_relevance > 0) {
AddMatchToMap(input_.text(), input_.text(), verbatim_relevance,
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
did_not_accept_default_suggestion, false, &map);
}
if (!keyword_input_.text().empty()) {
@@ -1063,7 +1063,7 @@ void SearchProvider::ConvertResultsToAutocompleteMatches() {
if (keyword_verbatim_relevance > 0) {
AddMatchToMap(keyword_input_.text(), keyword_input_.text(),
keyword_verbatim_relevance,
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
did_not_accept_keyword_suggestion, true, &map);
}
}
@@ -1074,7 +1074,7 @@ void SearchProvider::ConvertResultsToAutocompleteMatches() {
!input_.prevent_inline_autocomplete())
AddMatchToMap(input_.text() + default_provider_suggestion_.text,
input_.text(), verbatim_relevance + 1,
- AutocompleteMatch::SEARCH_SUGGEST,
+ AutocompleteMatchType::SEARCH_SUGGEST,
did_not_accept_default_suggestion, false, &map);
AddHistoryResultsToMap(keyword_history_results_, true,
@@ -1117,7 +1117,7 @@ void SearchProvider::ConvertResultsToAutocompleteMatches() {
bool SearchProvider::IsTopMatchNavigationInKeywordMode() const {
return (!providers_.keyword_provider().empty() &&
- (matches_.front().type == AutocompleteMatch::NAVSUGGEST));
+ (matches_.front().type == AutocompleteMatchType::NAVSUGGEST));
}
bool SearchProvider::IsTopMatchScoreTooLow() const {
@@ -1137,20 +1137,22 @@ bool SearchProvider::IsTopMatchScoreTooLow() const {
bool SearchProvider::IsTopMatchHighRankSearchForURL() const {
return input_.type() == AutocompleteInput::URL &&
matches_.front().relevance > CalculateRelevanceForVerbatim() &&
- (matches_.front().type == AutocompleteMatch::SEARCH_SUGGEST ||
- matches_.front().type == AutocompleteMatch::SEARCH_WHAT_YOU_TYPED ||
- matches_.front().type == AutocompleteMatch::SEARCH_OTHER_ENGINE);
+ (matches_.front().type == AutocompleteMatchType::SEARCH_SUGGEST ||
+ matches_.front().type ==
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED ||
+ matches_.front().type == AutocompleteMatchType::SEARCH_OTHER_ENGINE);
}
bool SearchProvider::IsTopMatchNotInlinable() const {
// Note: this test assumes the SEARCH_OTHER_ENGINE match corresponds to
// the verbatim search query on the keyword engine. SearchProvider should
// not create any other match of type SEARCH_OTHER_ENGINE.
- return matches_.front().type != AutocompleteMatch::SEARCH_WHAT_YOU_TYPED &&
- matches_.front().type != AutocompleteMatch::URL_WHAT_YOU_TYPED &&
- matches_.front().type != AutocompleteMatch::SEARCH_OTHER_ENGINE &&
- matches_.front().inline_autocomplete_offset == string16::npos &&
- matches_.front().fill_into_edit != input_.text();
+ return
+ matches_.front().type != AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED &&
+ matches_.front().type != AutocompleteMatchType::URL_WHAT_YOU_TYPED &&
+ matches_.front().type != AutocompleteMatchType::SEARCH_OTHER_ENGINE &&
+ matches_.front().inline_autocomplete_offset == string16::npos &&
+ matches_.front().fill_into_edit != input_.text();
}
void SearchProvider::UpdateMatches() {
@@ -1273,7 +1275,8 @@ void SearchProvider::AddHistoryResultsToMap(const HistoryResults& results,
for (SuggestResults::const_iterator i(scored_results.begin());
i != scored_results.end(); ++i) {
AddMatchToMap(i->suggestion(), input_text, i->relevance(),
- AutocompleteMatch::SEARCH_HISTORY, did_not_accept_suggestion,
+ AutocompleteMatchType::SEARCH_HISTORY,
+ did_not_accept_suggestion,
is_keyword, map);
}
}
@@ -1343,7 +1346,7 @@ void SearchProvider::AddSuggestResultsToMap(const SuggestResults& results,
const bool is_keyword = results[i].from_keyword_provider();
const string16& input = is_keyword ? keyword_input_.text() : input_.text();
AddMatchToMap(results[i].suggestion(), input, results[i].relevance(),
- AutocompleteMatch::SEARCH_SUGGEST, i, is_keyword, map);
+ AutocompleteMatchType::SEARCH_SUGGEST, i, is_keyword, map);
}
}
@@ -1474,8 +1477,8 @@ void SearchProvider::AddMatchToMap(const string16& query_string,
// -- they should always use grey text if they are to autocomplete at all. So
// we clamp non-verbatim results to just below the verbatim score to ensure
// that none of them are inline autocompleted.
- if (type != AutocompleteMatch::SEARCH_WHAT_YOU_TYPED &&
- type != AutocompleteMatch::SEARCH_OTHER_ENGINE &&
+ if (type != AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED &&
+ type != AutocompleteMatchType::SEARCH_OTHER_ENGINE &&
chrome::IsInstantExtendedAPIEnabled()) {
relevance = std::min(kNonURLVerbatimRelevance - 1, relevance);
}
@@ -1511,7 +1514,7 @@ AutocompleteMatch SearchProvider::NavigationToMatch(
const string16& input = navigation.from_keyword_provider() ?
keyword_input_.text() : input_.text();
AutocompleteMatch match(this, navigation.relevance(), false,
- AutocompleteMatch::NAVSUGGEST);
+ AutocompleteMatchType::NAVSUGGEST);
match.destination_url = navigation.url();
// First look for the user's input inside the fill_into_edit as it would be
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 1ffd0d5..188ce0a 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -70,7 +70,7 @@ class SearchProviderTest : public testing::Test,
virtual void TearDown();
struct ResultInfo {
- ResultInfo() : result_type(AutocompleteMatch::NUM_TYPES) {
+ ResultInfo() : result_type(AutocompleteMatchType::NUM_TYPES) {
}
ResultInfo(GURL gurl,
AutocompleteMatch::Type result_type,
@@ -430,7 +430,7 @@ TEST_F(SearchProviderTest, HonorPreventInlineAutocomplete) {
QueryForInput(term, true, false);
ASSERT_FALSE(provider_->matches().empty());
- ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
provider_->matches()[0].type);
}
@@ -873,9 +873,11 @@ TEST_F(SearchProviderTest, KeywordOrderingAndDescriptions) {
// keyword provider's what-you-typed, and one for the default provider's
// what you typed, in that order.
ASSERT_EQ(3u, result.size());
- EXPECT_EQ(AutocompleteMatch::SEARCH_HISTORY, result.match_at(0).type);
- EXPECT_EQ(AutocompleteMatch::SEARCH_OTHER_ENGINE, result.match_at(1).type);
- EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, result.match_at(2).type);
+ EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, result.match_at(0).type);
+ EXPECT_EQ(AutocompleteMatchType::SEARCH_OTHER_ENGINE,
+ result.match_at(1).type);
+ EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ result.match_at(2).type);
EXPECT_GT(result.match_at(0).relevance, result.match_at(1).relevance);
EXPECT_GT(result.match_at(1).relevance, result.match_at(2).relevance);
@@ -901,20 +903,20 @@ TEST_F(SearchProviderTest, KeywordVerbatim) {
// Test a simple keyword input.
{ ASCIIToUTF16("k foo"), 2,
{ ResultInfo(GURL("http://keyword/foo"),
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
ASCIIToUTF16("k foo")),
ResultInfo(GURL("http://defaultturl/k%20foo"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("k foo") ) } },
// Make sure extra whitespace after the keyword doesn't change the
// keyword verbatim query.
{ ASCIIToUTF16("k foo"), 2,
{ ResultInfo(GURL("http://keyword/foo"),
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
ASCIIToUTF16("k foo")),
ResultInfo(GURL("http://defaultturl/k%20%20%20foo"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("k foo")) } },
// Leading whitespace should be stripped before SearchProvider gets the
// input; hence there are no tests here about how it handles those inputs.
@@ -923,10 +925,10 @@ TEST_F(SearchProviderTest, KeywordVerbatim) {
// matches.
{ ASCIIToUTF16("k foo bar"), 2,
{ ResultInfo(GURL("http://keyword/foo%20%20bar"),
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
ASCIIToUTF16("k foo bar")),
ResultInfo(GURL("http://defaultturl/k%20%20foo%20%20bar"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("k foo bar")) } },
// Note in the above test case we don't test trailing whitespace because
// SearchProvider still doesn't handle this well. See related bugs:
@@ -936,35 +938,35 @@ TEST_F(SearchProviderTest, KeywordVerbatim) {
// when constructing the keyword match.
{ ASCIIToUTF16("www.k foo"), 2,
{ ResultInfo(GURL("http://keyword/foo"),
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
ASCIIToUTF16("k foo")),
ResultInfo(GURL("http://defaultturl/www.k%20foo"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("www.k foo")) } },
{ ASCIIToUTF16("http://k foo"), 2,
{ ResultInfo(GURL("http://keyword/foo"),
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
ASCIIToUTF16("k foo")),
ResultInfo(GURL("http://defaultturl/http%3A//k%20foo"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("http://k foo")) } },
{ ASCIIToUTF16("http://www.k foo"), 2,
{ ResultInfo(GURL("http://keyword/foo"),
- AutocompleteMatch::SEARCH_OTHER_ENGINE,
+ AutocompleteMatchType::SEARCH_OTHER_ENGINE,
ASCIIToUTF16("k foo")),
ResultInfo(GURL("http://defaultturl/http%3A//www.k%20foo"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("http://www.k foo")) } },
// A keyword with no remaining input shouldn't get a keyword
// verbatim match.
{ ASCIIToUTF16("k"), 1,
{ ResultInfo(GURL("http://defaultturl/k"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("k")) } },
{ ASCIIToUTF16("k "), 1,
{ ResultInfo(GURL("http://defaultturl/k%20"),
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
ASCIIToUTF16("k ")) } }
// The fact that verbatim queries to keyword are handled by KeywordProvider
@@ -1667,61 +1669,63 @@ TEST_F(SearchProviderTest, DefaultProviderSuggestRelevanceScoringUrlInput) {
"{\"google:suggesttype\":[\"NAVIGATION\"],"
"\"google:suggestrelevance\":[9999]}]",
{ "a.com/a", "a.com", kNotApplicable, kNotApplicable },
- { AutocompleteMatch::NAVSUGGEST, AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::NUM_TYPES, AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::NAVSUGGEST,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::NUM_TYPES,
+ AutocompleteMatchType::NUM_TYPES } },
// Ensure topmost SUGGEST matches are not allowed for URL input.
// SearchProvider disregards search and verbatim suggested relevances.
{ "a.com", "[\"a.com\",[\"a.com info\"],[],[],"
"{\"google:suggestrelevance\":[9999]}]",
{ "a.com", "a.com info", kNotApplicable, kNotApplicable },
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::SEARCH_SUGGEST,
- AutocompleteMatch::NUM_TYPES, AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_SUGGEST,
+ AutocompleteMatchType::NUM_TYPES, AutocompleteMatchType::NUM_TYPES } },
{ "a.com", "[\"a.com\",[\"a.com/a\"],[],[],"
"{\"google:suggestrelevance\":[9999]}]",
{ "a.com", "a.com/a", kNotApplicable, kNotApplicable },
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::SEARCH_SUGGEST,
- AutocompleteMatch::NUM_TYPES, AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_SUGGEST,
+ AutocompleteMatchType::NUM_TYPES, AutocompleteMatchType::NUM_TYPES } },
// Ensure the fallback mechanism allows inlinable NAVIGATION matches.
{ "a.com", "[\"a.com\",[\"a.com/a\", \"http://a.com/b\"],[],[],"
"{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
"\"google:suggestrelevance\":[9999, 9998]}]",
{ "a.com/b", "a.com", "a.com/a", kNotApplicable },
- { AutocompleteMatch::NAVSUGGEST,
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::SEARCH_SUGGEST,
- AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::NAVSUGGEST,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_SUGGEST,
+ AutocompleteMatchType::NUM_TYPES } },
{ "a.com", "[\"a.com\",[\"a.com/a\", \"http://a.com/b\"],[],[],"
"{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
"\"google:suggestrelevance\":[9998, 9997],"
"\"google:verbatimrelevance\":9999}]",
{ "a.com/b", "a.com", "a.com/a", kNotApplicable },
- { AutocompleteMatch::NAVSUGGEST,
- AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::SEARCH_SUGGEST,
- AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::NAVSUGGEST,
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::SEARCH_SUGGEST,
+ AutocompleteMatchType::NUM_TYPES } },
// Ensure the fallback mechanism disallows non-inlinable NAVIGATION matches.
{ "a.com", "[\"a.com\",[\"a.com/a\", \"http://abc.com\"],[],[],"
"{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
"\"google:suggestrelevance\":[9999, 9998]}]",
{ "a.com", "abc.com", "a.com/a", kNotApplicable },
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::NAVSUGGEST,
- AutocompleteMatch::SEARCH_SUGGEST,
- AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::NAVSUGGEST,
+ AutocompleteMatchType::SEARCH_SUGGEST,
+ AutocompleteMatchType::NUM_TYPES } },
{ "a.com", "[\"a.com\",[\"a.com/a\", \"http://abc.com\"],[],[],"
"{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
"\"google:suggestrelevance\":[9998, 9997],"
"\"google:verbatimrelevance\":9999}]",
{ "a.com", "abc.com", "a.com/a", kNotApplicable },
- { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
- AutocompleteMatch::NAVSUGGEST,
- AutocompleteMatch::SEARCH_SUGGEST,
- AutocompleteMatch::NUM_TYPES } },
+ { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+ AutocompleteMatchType::NAVSUGGEST,
+ AutocompleteMatchType::SEARCH_SUGGEST,
+ AutocompleteMatchType::NUM_TYPES } },
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
@@ -1744,7 +1748,7 @@ TEST_F(SearchProviderTest, DefaultProviderSuggestRelevanceScoringUrlInput) {
// Ensure that no expected matches are missing.
for (; j < ARRAYSIZE_UNSAFE(cases[i].match_contents); ++j) {
EXPECT_EQ(kNotApplicable, cases[i].match_contents[j]);
- EXPECT_EQ(AutocompleteMatch::NUM_TYPES, cases[i].match_types[j]);
+ EXPECT_EQ(AutocompleteMatchType::NUM_TYPES, cases[i].match_types[j]);
}
}
}
diff --git a/chrome/browser/autocomplete/shortcuts_provider.cc b/chrome/browser/autocomplete/shortcuts_provider.cc
index 7bca980..0b994e4 100644
--- a/chrome/browser/autocomplete/shortcuts_provider.cc
+++ b/chrome/browser/autocomplete/shortcuts_provider.cc
@@ -177,7 +177,7 @@ AutocompleteMatch ShortcutsProvider::ShortcutToACMatch(
const history::ShortcutsBackend::Shortcut& shortcut) {
DCHECK(!term_string.empty());
AutocompleteMatch match(this, relevance, true,
- AutocompleteMatch::HISTORY_TITLE);
+ AutocompleteMatchType::HISTORY_TITLE);
match.destination_url = shortcut.url;
DCHECK(match.destination_url.is_valid());
match.fill_into_edit = UTF8ToUTF16(shortcut.url.spec());
diff --git a/chrome/browser/autocomplete/shortcuts_provider_unittest.cc b/chrome/browser/autocomplete/shortcuts_provider_unittest.cc
index 9bc6bc7..bc7d6f3 100644
--- a/chrome/browser/autocomplete/shortcuts_provider_unittest.cc
+++ b/chrome/browser/autocomplete/shortcuts_provider_unittest.cc
@@ -646,7 +646,7 @@ TEST_F(ShortcutsProviderTest, DeleteMatch) {
backend_->shortcuts_map().find(ASCIIToUTF16("erase")));
AutocompleteMatch match(provider_, 1200, true,
- AutocompleteMatch::HISTORY_TITLE);
+ AutocompleteMatchType::HISTORY_TITLE);
match.destination_url = GURL(shortcuts_to_test_delete[0].url);
match.contents = ASCIIToUTF16(shortcuts_to_test_delete[0].contents);
diff --git a/chrome/browser/autocomplete/zero_suggest_provider.cc b/chrome/browser/autocomplete/zero_suggest_provider.cc
index e5ae8b4..5de8e50 100644
--- a/chrome/browser/autocomplete/zero_suggest_provider.cc
+++ b/chrome/browser/autocomplete/zero_suggest_provider.cc
@@ -176,7 +176,7 @@ void ZeroSuggestProvider::AddMatchForCurrentURL() {
// that it is in the first suggestion slot and inline autocompleted. It
// gets dropped as soon as the user types something.
AutocompleteMatch match(this, kMaxZeroSuggestRelevance, false,
- AutocompleteMatch::NAVSUGGEST);
+ AutocompleteMatchType::NAVSUGGEST);
match.destination_url = GURL(current_query_);
match.contents = current_query_text;
if (!user_text_is_url) {
@@ -209,7 +209,7 @@ void ZeroSuggestProvider::AddMatchForResult(
// TODO(jered): Use real scores from the suggestion server.
const int suggestion_relevance = kMaxZeroSuggestRelevance - matches_.size();
AutocompleteMatch match(this, suggestion_relevance, false,
- AutocompleteMatch::SEARCH_SUGGEST);
+ AutocompleteMatchType::SEARCH_SUGGEST);
match.contents = result;
match.fill_into_edit = result;
if (!user_text_is_url && user_text_ != result)