Index: chrome/renderer/searchbox/searchbox_extension.cc |
diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc |
index cb745307fa252eaa6305c240237af0ab196bfa9b..5ad13600bfc2174d55e8311cb9740e07eeb6efdb 100644 |
--- a/chrome/renderer/searchbox/searchbox_extension.cc |
+++ b/chrome/renderer/searchbox/searchbox_extension.cc |
@@ -509,25 +509,25 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetAutocompleteResults( |
if (!render_view) return v8::Undefined(); |
DVLOG(1) << render_view << " GetAutocompleteResults"; |
- const std::vector<InstantAutocompleteResult>& results = |
- SearchBox::Get(render_view)->GetAutocompleteResults(); |
- size_t results_base = SearchBox::Get(render_view)->results_base(); |
+ std::vector<std::pair<size_t, InstantAutocompleteResult> > results; |
+ SearchBox::Get(render_view)->GetAutocompleteResults(&results); |
v8::Handle<v8::Array> results_array = v8::Array::New(results.size()); |
for (size_t i = 0; i < results.size(); ++i) { |
v8::Handle<v8::Object> result = v8::Object::New(); |
result->Set(v8::String::New("provider"), |
- UTF16ToV8String(results[i].provider)); |
- result->Set(v8::String::New("type"), UTF16ToV8String(results[i].type)); |
+ UTF16ToV8String(results[i].second.provider)); |
+ result->Set(v8::String::New("type"), |
+ UTF16ToV8String(results[i].second.type)); |
result->Set(v8::String::New("contents"), |
- UTF16ToV8String(results[i].description)); |
+ UTF16ToV8String(results[i].second.description)); |
result->Set(v8::String::New("destination_url"), |
- UTF16ToV8String(results[i].destination_url)); |
- result->Set(v8::String::New("rid"), v8::Uint32::New(results_base + i)); |
+ UTF16ToV8String(results[i].second.destination_url)); |
+ result->Set(v8::String::New("rid"), v8::Uint32::New(results[i].first)); |
v8::Handle<v8::Object> ranking_data = v8::Object::New(); |
ranking_data->Set(v8::String::New("relevance"), |
- v8::Int32::New(results[i].relevance)); |
+ v8::Int32::New(results[i].second.relevance)); |
result->Set(v8::String::New("rankingData"), ranking_data); |
results_array->Set(i, result); |
@@ -684,11 +684,11 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow( |
GURL destination_url; |
content::PageTransition transition = content::PAGE_TRANSITION_TYPED; |
if (args[0]->IsNumber()) { |
- const InstantAutocompleteResult* result = SearchBox::Get(render_view)-> |
- GetAutocompleteResultWithId(args[0]->Uint32Value()); |
- if (result) { |
- destination_url = GURL(result->destination_url); |
- transition = result->transition; |
+ InstantAutocompleteResult result; |
+ if (SearchBox::Get(render_view)->GetAutocompleteResultWithId( |
+ args[0]->Uint32Value(), &result)) { |
+ destination_url = GURL(result.destination_url); |
+ transition = result.transition; |
} |
} else { |
destination_url = GURL(V8ValueToUTF16(args[0])); |
@@ -775,12 +775,14 @@ v8::Handle<v8::Value> |
if (!render_view || !args.Length()) return v8::Undefined(); |
DVLOG(1) << render_view << " SetQuerySuggestionFromAutocompleteResult"; |
- const InstantAutocompleteResult* result = SearchBox::Get(render_view)-> |
- GetAutocompleteResultWithId(args[0]->Uint32Value()); |
- if (!result) return v8::Undefined(); |
+ InstantAutocompleteResult result; |
+ if (!SearchBox::Get(render_view)->GetAutocompleteResultWithId( |
+ args[0]->Uint32Value(), &result)) { |
+ return v8::Undefined(); |
+ } |
// We only support selecting autocomplete results that are URLs. |
- string16 text = result->destination_url; |
+ string16 text = result.destination_url; |
InstantCompleteBehavior behavior = INSTANT_COMPLETE_NOW; |
InstantSuggestionType type = INSTANT_SUGGESTION_URL; |
@@ -819,12 +821,14 @@ v8::Handle<v8::Value> |
if (!render_view || !args.Length()) return v8::Undefined(); |
DVLOG(1) << render_view << " SetQueryFromAutocompleteResult"; |
- const InstantAutocompleteResult* result = SearchBox::Get(render_view)-> |
- GetAutocompleteResultWithId(args[0]->Uint32Value()); |
- if (!result) return v8::Undefined(); |
+ InstantAutocompleteResult result; |
+ if (!SearchBox::Get(render_view)->GetAutocompleteResultWithId( |
+ args[0]->Uint32Value(), &result)) { |
+ return v8::Undefined(); |
+ } |
// We only support selecting autocomplete results that are URLs. |
- string16 text = result->destination_url; |
+ string16 text = result.destination_url; |
InstantCompleteBehavior behavior = INSTANT_COMPLETE_REPLACE; |
// TODO(jered): Distinguish between history URLs and search provider |
// navsuggest URLs so that we can do proper accounting on history URLs. |