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

Side by Side Diff: chrome/renderer/searchbox/searchbox_extension.cc

Issue 12498002: InstantExtended: Adding InstantRestrictedIDCache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/renderer/searchbox/searchbox_extension.h" 5 #include "chrome/renderer/searchbox/searchbox_extension.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 return v8::Boolean::New(base::i18n::IsRTL()); 502 return v8::Boolean::New(base::i18n::IsRTL());
503 } 503 }
504 504
505 // static 505 // static
506 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetAutocompleteResults( 506 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetAutocompleteResults(
507 const v8::Arguments& args) { 507 const v8::Arguments& args) {
508 content::RenderView* render_view = GetRenderView(); 508 content::RenderView* render_view = GetRenderView();
509 if (!render_view) return v8::Undefined(); 509 if (!render_view) return v8::Undefined();
510 510
511 DVLOG(1) << render_view << " GetAutocompleteResults"; 511 DVLOG(1) << render_view << " GetAutocompleteResults";
512 const std::vector<InstantAutocompleteResult>& results = 512 std::vector<std::pair<size_t, InstantAutocompleteResult> > results;
513 SearchBox::Get(render_view)->GetAutocompleteResults(); 513 SearchBox::Get(render_view)->GetAutocompleteResults(&results);
514 size_t results_base = SearchBox::Get(render_view)->results_base();
515 514
516 v8::Handle<v8::Array> results_array = v8::Array::New(results.size()); 515 v8::Handle<v8::Array> results_array = v8::Array::New(results.size());
517 for (size_t i = 0; i < results.size(); ++i) { 516 for (size_t i = 0; i < results.size(); ++i) {
518 v8::Handle<v8::Object> result = v8::Object::New(); 517 v8::Handle<v8::Object> result = v8::Object::New();
519 result->Set(v8::String::New("provider"), 518 result->Set(v8::String::New("provider"),
520 UTF16ToV8String(results[i].provider)); 519 UTF16ToV8String(results[i].second.provider));
521 result->Set(v8::String::New("type"), UTF16ToV8String(results[i].type)); 520 result->Set(v8::String::New("type"),
521 UTF16ToV8String(results[i].second.type));
522 result->Set(v8::String::New("contents"), 522 result->Set(v8::String::New("contents"),
523 UTF16ToV8String(results[i].description)); 523 UTF16ToV8String(results[i].second.description));
524 result->Set(v8::String::New("destination_url"), 524 result->Set(v8::String::New("destination_url"),
525 UTF16ToV8String(results[i].destination_url)); 525 UTF16ToV8String(results[i].second.destination_url));
526 result->Set(v8::String::New("rid"), v8::Uint32::New(results_base + i)); 526 result->Set(v8::String::New("rid"), v8::Uint32::New(results[i].first));
527 527
528 v8::Handle<v8::Object> ranking_data = v8::Object::New(); 528 v8::Handle<v8::Object> ranking_data = v8::Object::New();
529 ranking_data->Set(v8::String::New("relevance"), 529 ranking_data->Set(v8::String::New("relevance"),
530 v8::Int32::New(results[i].relevance)); 530 v8::Int32::New(results[i].second.relevance));
531 result->Set(v8::String::New("rankingData"), ranking_data); 531 result->Set(v8::String::New("rankingData"), ranking_data);
532 532
533 results_array->Set(i, result); 533 results_array->Set(i, result);
534 } 534 }
535 return results_array; 535 return results_array;
536 } 536 }
537 537
538 // static 538 // static
539 v8::Handle<v8::Value> SearchBoxExtensionWrapper::IsKeyCaptureEnabled( 539 v8::Handle<v8::Value> SearchBoxExtensionWrapper::IsKeyCaptureEnabled(
540 const v8::Arguments& args) { 540 const v8::Arguments& args) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 677
678 // static 678 // static
679 v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow( 679 v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow(
680 const v8::Arguments& args) { 680 const v8::Arguments& args) {
681 content::RenderView* render_view = GetRenderView(); 681 content::RenderView* render_view = GetRenderView();
682 if (!render_view || !args.Length()) return v8::Undefined(); 682 if (!render_view || !args.Length()) return v8::Undefined();
683 683
684 GURL destination_url; 684 GURL destination_url;
685 content::PageTransition transition = content::PAGE_TRANSITION_TYPED; 685 content::PageTransition transition = content::PAGE_TRANSITION_TYPED;
686 if (args[0]->IsNumber()) { 686 if (args[0]->IsNumber()) {
687 const InstantAutocompleteResult* result = SearchBox::Get(render_view)-> 687 InstantAutocompleteResult result;
688 GetAutocompleteResultWithId(args[0]->Uint32Value()); 688 if (SearchBox::Get(render_view)->GetAutocompleteResultWithId(
689 if (result) { 689 args[0]->Uint32Value(), &result)) {
690 destination_url = GURL(result->destination_url); 690 destination_url = GURL(result.destination_url);
691 transition = result->transition; 691 transition = result.transition;
692 } 692 }
693 } else { 693 } else {
694 destination_url = GURL(V8ValueToUTF16(args[0])); 694 destination_url = GURL(V8ValueToUTF16(args[0]));
695 } 695 }
696 696
697 // Navigate the main frame. 697 // Navigate the main frame.
698 if (destination_url.is_valid()) { 698 if (destination_url.is_valid()) {
699 WindowOpenDisposition disposition = CURRENT_TAB; 699 WindowOpenDisposition disposition = CURRENT_TAB;
700 if (args[1]->Uint32Value() == 2) 700 if (args[1]->Uint32Value() == 2)
701 disposition = NEW_BACKGROUND_TAB; 701 disposition = NEW_BACKGROUND_TAB;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 } 768 }
769 769
770 // static 770 // static
771 v8::Handle<v8::Value> 771 v8::Handle<v8::Value>
772 SearchBoxExtensionWrapper::SetQuerySuggestionFromAutocompleteResult( 772 SearchBoxExtensionWrapper::SetQuerySuggestionFromAutocompleteResult(
773 const v8::Arguments& args) { 773 const v8::Arguments& args) {
774 content::RenderView* render_view = GetRenderView(); 774 content::RenderView* render_view = GetRenderView();
775 if (!render_view || !args.Length()) return v8::Undefined(); 775 if (!render_view || !args.Length()) return v8::Undefined();
776 776
777 DVLOG(1) << render_view << " SetQuerySuggestionFromAutocompleteResult"; 777 DVLOG(1) << render_view << " SetQuerySuggestionFromAutocompleteResult";
778 const InstantAutocompleteResult* result = SearchBox::Get(render_view)-> 778 InstantAutocompleteResult result;
779 GetAutocompleteResultWithId(args[0]->Uint32Value()); 779 if (!SearchBox::Get(render_view)->GetAutocompleteResultWithId(
780 if (!result) return v8::Undefined(); 780 args[0]->Uint32Value(), &result)) {
781 return v8::Undefined();
782 }
781 783
782 // We only support selecting autocomplete results that are URLs. 784 // We only support selecting autocomplete results that are URLs.
783 string16 text = result->destination_url; 785 string16 text = result.destination_url;
784 InstantCompleteBehavior behavior = INSTANT_COMPLETE_NOW; 786 InstantCompleteBehavior behavior = INSTANT_COMPLETE_NOW;
785 InstantSuggestionType type = INSTANT_SUGGESTION_URL; 787 InstantSuggestionType type = INSTANT_SUGGESTION_URL;
786 788
787 std::vector<InstantSuggestion> suggestions; 789 std::vector<InstantSuggestion> suggestions;
788 suggestions.push_back(InstantSuggestion(text, behavior, type)); 790 suggestions.push_back(InstantSuggestion(text, behavior, type));
789 SearchBox::Get(render_view)->SetSuggestions(suggestions); 791 SearchBox::Get(render_view)->SetSuggestions(suggestions);
790 792
791 return v8::Undefined(); 793 return v8::Undefined();
792 } 794 }
793 795
(...skipping 18 matching lines...) Expand all
812 return v8::Undefined(); 814 return v8::Undefined();
813 } 815 }
814 816
815 v8::Handle<v8::Value> 817 v8::Handle<v8::Value>
816 SearchBoxExtensionWrapper::SetQueryFromAutocompleteResult( 818 SearchBoxExtensionWrapper::SetQueryFromAutocompleteResult(
817 const v8::Arguments& args) { 819 const v8::Arguments& args) {
818 content::RenderView* render_view = GetRenderView(); 820 content::RenderView* render_view = GetRenderView();
819 if (!render_view || !args.Length()) return v8::Undefined(); 821 if (!render_view || !args.Length()) return v8::Undefined();
820 822
821 DVLOG(1) << render_view << " SetQueryFromAutocompleteResult"; 823 DVLOG(1) << render_view << " SetQueryFromAutocompleteResult";
822 const InstantAutocompleteResult* result = SearchBox::Get(render_view)-> 824 InstantAutocompleteResult result;
823 GetAutocompleteResultWithId(args[0]->Uint32Value()); 825 if (!SearchBox::Get(render_view)->GetAutocompleteResultWithId(
824 if (!result) return v8::Undefined(); 826 args[0]->Uint32Value(), &result)) {
827 return v8::Undefined();
828 }
825 829
826 // We only support selecting autocomplete results that are URLs. 830 // We only support selecting autocomplete results that are URLs.
827 string16 text = result->destination_url; 831 string16 text = result.destination_url;
828 InstantCompleteBehavior behavior = INSTANT_COMPLETE_REPLACE; 832 InstantCompleteBehavior behavior = INSTANT_COMPLETE_REPLACE;
829 // TODO(jered): Distinguish between history URLs and search provider 833 // TODO(jered): Distinguish between history URLs and search provider
830 // navsuggest URLs so that we can do proper accounting on history URLs. 834 // navsuggest URLs so that we can do proper accounting on history URLs.
831 InstantSuggestionType type = INSTANT_SUGGESTION_URL; 835 InstantSuggestionType type = INSTANT_SUGGESTION_URL;
832 836
833 std::vector<InstantSuggestion> suggestions; 837 std::vector<InstantSuggestion> suggestions;
834 suggestions.push_back(InstantSuggestion(text, behavior, type)); 838 suggestions.push_back(InstantSuggestion(text, behavior, type));
835 SearchBox::Get(render_view)->SetSuggestions(suggestions); 839 SearchBox::Get(render_view)->SetSuggestions(suggestions);
836 840
837 return v8::Undefined(); 841 return v8::Undefined();
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 void SearchBoxExtension::DispatchThemeChange(WebKit::WebFrame* frame) { 1032 void SearchBoxExtension::DispatchThemeChange(WebKit::WebFrame* frame) {
1029 Dispatch(frame, kDispatchThemeChangeEventScript); 1033 Dispatch(frame, kDispatchThemeChangeEventScript);
1030 } 1034 }
1031 1035
1032 // static 1036 // static
1033 void SearchBoxExtension::DispatchMostVisitedChanged( 1037 void SearchBoxExtension::DispatchMostVisitedChanged(
1034 WebKit::WebFrame* frame) { 1038 WebKit::WebFrame* frame) {
1035 Dispatch(frame, kDispatchMostVisitedChangedScript); 1039 Dispatch(frame, kDispatchMostVisitedChangedScript);
1036 } 1040 }
1037 } // namespace extensions_v8 1041 } // namespace extensions_v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698