| 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.
|
|
|