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

Unified Diff: chrome/renderer/searchbox/searchbox_extension.cc

Issue 12498002: InstantExtended: Adding InstantRestrictedIDCache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing android compile error. Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/searchbox/searchbox.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/searchbox/searchbox_extension.cc
diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc
index 7606a1905ab7633118fe01304f5c9a146a94bec8..524ae548354af881fcfb32d516389c3333802736 100644
--- a/chrome/renderer/searchbox/searchbox_extension.cc
+++ b/chrome/renderer/searchbox/searchbox_extension.cc
@@ -79,16 +79,6 @@ v8::Handle<v8::String> GenerateFaviconURL(uint64 most_visited_item_id) {
base::Uint64ToString(most_visited_item_id).c_str()));
}
-const GURL MostVisitedItemIDToURL(
- const std::vector<InstantMostVisitedItem>& most_visited_items,
- uint64 most_visited_item_id) {
- for (size_t i = 0; i < most_visited_items.size(); ++i) {
- if (most_visited_items[i].most_visited_item_id == most_visited_item_id)
- return most_visited_items[i].url;
- }
- return GURL();
-}
-
} // namespace
namespace extensions_v8 {
@@ -573,25 +563,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<InstantAutocompleteResultIDPair> 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);
@@ -750,11 +740,11 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateSearchBox(
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]->IntegerValue(), &result)) {
+ destination_url = GURL(result.destination_url);
+ transition = result.transition;
}
} else {
// Resolve the URL.
@@ -787,12 +777,13 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateNewTabPage(
if (!render_view || !args.Length()) return v8::Undefined();
GURL destination_url;
- content::PageTransition transition = content::PAGE_TRANSITION_TYPED;
+ content::PageTransition transition = content::PAGE_TRANSITION_AUTO_BOOKMARK;
if (args[0]->IsNumber()) {
- destination_url = MostVisitedItemIDToURL(
- SearchBox::Get(render_view)->GetMostVisitedItems(),
- args[0]->Uint32Value());
- transition = content::PAGE_TRANSITION_AUTO_BOOKMARK;
+ InstantMostVisitedItem item;
+ if (SearchBox::Get(render_view)->GetMostVisitedItemWithID(
+ args[0]->IntegerValue(), &item)) {
+ destination_url = item.url;
+ }
} else {
destination_url = GURL(V8ValueToUTF16(args[0]));
}
@@ -903,12 +894,14 @@ v8::Handle<v8::Value>
if (!render_view || !args.Length()) return v8::Undefined();
DVLOG(1) << render_view << " SetSuggestionFromAutocompleteResult";
- 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]->IntegerValue(), &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;
@@ -951,12 +944,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]->IntegerValue(), &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.
@@ -1003,8 +998,8 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetMostVisitedItems(
const SearchBox* search_box = SearchBox::Get(render_view);
- const std::vector<InstantMostVisitedItem>& instant_mv_items =
- search_box->GetMostVisitedItems();
+ std::vector<InstantMostVisitedItemIDPair> instant_mv_items;
+ search_box->GetMostVisitedItems(&instant_mv_items);
v8::Handle<v8::Array> v8_mv_items = v8::Array::New(instant_mv_items.size());
for (size_t i = 0; i < instant_mv_items.size(); ++i) {
// We set the "dir" attribute of the title, so that in RTL locales, a LTR
@@ -1018,27 +1013,26 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetMostVisitedItems(
// http://yahoo.com is "Yahoo!". In RTL locales, in the New Tab page, the
// title will be rendered as "!Yahoo" if its "dir" attribute is not set to
// "ltr".
+ const InstantMostVisitedItem& mv_item = instant_mv_items[i].second;
std::string direction;
- if (base::i18n::StringContainsStrongRTLChars(instant_mv_items[i].title))
+ if (base::i18n::StringContainsStrongRTLChars(mv_item.title))
direction = kRTLHtmlTextDirection;
else
direction = kLTRHtmlTextDirection;
- string16 title = instant_mv_items[i].title;
+ string16 title = mv_item.title;
if (title.empty())
- title = UTF8ToUTF16(instant_mv_items[i].url.spec());
+ title = UTF8ToUTF16(mv_item.url.spec());
+ InstantRestrictedID restricted_id = instant_mv_items[i].first;
v8::Handle<v8::Object> item = v8::Object::New();
- item->Set(v8::String::New("rid"),
- v8::Int32::New(instant_mv_items[i].most_visited_item_id));
+ item->Set(v8::String::New("rid"), v8::Int32::New(restricted_id));
item->Set(v8::String::New("thumbnailUrl"),
- GenerateThumbnailURL(instant_mv_items[i].most_visited_item_id));
+ GenerateThumbnailURL(restricted_id));
item->Set(v8::String::New("faviconUrl"),
- GenerateFaviconURL(instant_mv_items[i].most_visited_item_id));
- item->Set(v8::String::New("title"),
- UTF16ToV8String(title));
- item->Set(v8::String::New("domain"),
- UTF8ToV8String(instant_mv_items[i].url.host()));
+ GenerateFaviconURL(restricted_id));
+ item->Set(v8::String::New("title"), UTF16ToV8String(title));
+ item->Set(v8::String::New("domain"), UTF8ToV8String(mv_item.url.host()));
item->Set(v8::String::New("direction"), UTF8ToV8String(direction));
v8_mv_items->Set(i, item);
« no previous file with comments | « chrome/renderer/searchbox/searchbox.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698