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

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

Issue 105493002: Use base namespace for string16 in chrome/renderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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/json/string_escape.h" 8 #include "base/json/string_escape.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 const char kCSSBackgroundRepeat[] = "repeat"; 49 const char kCSSBackgroundRepeat[] = "repeat";
50 50
51 const char kThemeAttributionFormat[] = "-webkit-image-set(" 51 const char kThemeAttributionFormat[] = "-webkit-image-set("
52 "url(chrome-search://theme/IDR_THEME_NTP_ATTRIBUTION?%s) 1x, " 52 "url(chrome-search://theme/IDR_THEME_NTP_ATTRIBUTION?%s) 1x, "
53 "url(chrome-search://theme/IDR_THEME_NTP_ATTRIBUTION@2x?%s) 2x)"; 53 "url(chrome-search://theme/IDR_THEME_NTP_ATTRIBUTION@2x?%s) 2x)";
54 54
55 const char kLTRHtmlTextDirection[] = "ltr"; 55 const char kLTRHtmlTextDirection[] = "ltr";
56 const char kRTLHtmlTextDirection[] = "rtl"; 56 const char kRTLHtmlTextDirection[] = "rtl";
57 57
58 // Converts a V8 value to a string16. 58 // Converts a V8 value to a string16.
59 string16 V8ValueToUTF16(v8::Handle<v8::Value> v) { 59 base::string16 V8ValueToUTF16(v8::Handle<v8::Value> v) {
60 v8::String::Value s(v); 60 v8::String::Value s(v);
61 return string16(reinterpret_cast<const char16*>(*s), s.length()); 61 return base::string16(reinterpret_cast<const char16*>(*s), s.length());
62 } 62 }
63 63
64 // Converts string16 to V8 String. 64 // Converts string16 to V8 String.
65 v8::Handle<v8::String> UTF16ToV8String(v8::Isolate* isolate, 65 v8::Handle<v8::String> UTF16ToV8String(v8::Isolate* isolate,
66 const string16& s) { 66 const base::string16& s) {
67 return v8::String::NewFromTwoByte(isolate, 67 return v8::String::NewFromTwoByte(isolate,
68 reinterpret_cast<const uint16_t*>(s.data()), 68 reinterpret_cast<const uint16_t*>(s.data()),
69 v8::String::kNormalString, 69 v8::String::kNormalString,
70 s.size()); 70 s.size());
71 } 71 }
72 72
73 // Converts std::string to V8 String. 73 // Converts std::string to V8 String.
74 v8::Handle<v8::String> UTF8ToV8String(v8::Isolate* isolate, 74 v8::Handle<v8::String> UTF8ToV8String(v8::Isolate* isolate,
75 const std::string& s) { 75 const std::string& s) {
76 return v8::String::NewFromUtf8( 76 return v8::String::NewFromUtf8(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 // title as "MSDN: Microsoft D...". As another example, the title of 111 // title as "MSDN: Microsoft D...". As another example, the title of
112 // http://yahoo.com is "Yahoo!". In RTL locales, in the New Tab page, the 112 // http://yahoo.com is "Yahoo!". In RTL locales, in the New Tab page, the
113 // title will be rendered as "!Yahoo" if its "dir" attribute is not set to 113 // title will be rendered as "!Yahoo" if its "dir" attribute is not set to
114 // "ltr". 114 // "ltr".
115 std::string direction; 115 std::string direction;
116 if (base::i18n::StringContainsStrongRTLChars(mv_item.title)) 116 if (base::i18n::StringContainsStrongRTLChars(mv_item.title))
117 direction = kRTLHtmlTextDirection; 117 direction = kRTLHtmlTextDirection;
118 else 118 else
119 direction = kLTRHtmlTextDirection; 119 direction = kLTRHtmlTextDirection;
120 120
121 string16 title = mv_item.title; 121 base::string16 title = mv_item.title;
122 if (title.empty()) 122 if (title.empty())
123 title = UTF8ToUTF16(mv_item.url.spec()); 123 title = UTF8ToUTF16(mv_item.url.spec());
124 124
125 v8::Handle<v8::Object> obj = v8::Object::New(); 125 v8::Handle<v8::Object> obj = v8::Object::New();
126 obj->Set(v8::String::NewFromUtf8(isolate, "renderViewId"), 126 obj->Set(v8::String::NewFromUtf8(isolate, "renderViewId"),
127 v8::Int32::New(isolate, render_view_id)); 127 v8::Int32::New(isolate, render_view_id));
128 obj->Set(v8::String::NewFromUtf8(isolate, "rid"), 128 obj->Set(v8::String::NewFromUtf8(isolate, "rid"),
129 v8::Int32::New(isolate, restricted_id)); 129 v8::Int32::New(isolate, restricted_id));
130 obj->Set(v8::String::NewFromUtf8(isolate, "thumbnailUrl"), 130 obj->Set(v8::String::NewFromUtf8(isolate, "thumbnailUrl"),
131 GenerateThumbnailURL(isolate, render_view_id, restricted_id)); 131 GenerateThumbnailURL(isolate, render_view_id, restricted_id));
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 v8::Handle<v8::Array> color_array = v8::Array::New(isolate, 4); 178 v8::Handle<v8::Array> color_array = v8::Array::New(isolate, 4);
179 color_array->Set(0, v8::Int32::New(isolate, color.r)); 179 color_array->Set(0, v8::Int32::New(isolate, color.r));
180 color_array->Set(1, v8::Int32::New(isolate, color.g)); 180 color_array->Set(1, v8::Int32::New(isolate, color.g));
181 color_array->Set(2, v8::Int32::New(isolate, color.b)); 181 color_array->Set(2, v8::Int32::New(isolate, color.b));
182 color_array->Set(3, v8::Int32::New(isolate, color.a)); 182 color_array->Set(3, v8::Int32::New(isolate, color.a));
183 return color_array; 183 return color_array;
184 } 184 }
185 185
186 // Resolves a possibly relative URL using the current URL. 186 // Resolves a possibly relative URL using the current URL.
187 GURL ResolveURL(const GURL& current_url, 187 GURL ResolveURL(const GURL& current_url,
188 const string16& possibly_relative_url) { 188 const base::string16& possibly_relative_url) {
189 if (current_url.is_valid() && !possibly_relative_url.empty()) 189 if (current_url.is_valid() && !possibly_relative_url.empty())
190 return current_url.Resolve(possibly_relative_url); 190 return current_url.Resolve(possibly_relative_url);
191 return GURL(possibly_relative_url); 191 return GURL(possibly_relative_url);
192 } 192 }
193 193
194 } // namespace internal 194 } // namespace internal
195 195
196 namespace extensions_v8 { 196 namespace extensions_v8 {
197 197
198 static const char kSearchBoxExtensionName[] = "v8/EmbeddedSearch"; 198 static const char kSearchBoxExtensionName[] = "v8/EmbeddedSearch";
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 bool SearchBoxExtension::PageSupportsInstant(blink::WebFrame* frame) { 450 bool SearchBoxExtension::PageSupportsInstant(blink::WebFrame* frame) {
451 if (!frame) return false; 451 if (!frame) return false;
452 v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); 452 v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
453 v8::Handle<v8::Value> v = frame->executeScriptAndReturnValue( 453 v8::Handle<v8::Value> v = frame->executeScriptAndReturnValue(
454 blink::WebScriptSource(kSupportsInstantScript)); 454 blink::WebScriptSource(kSupportsInstantScript));
455 return !v.IsEmpty() && v->BooleanValue(); 455 return !v.IsEmpty() && v->BooleanValue();
456 } 456 }
457 457
458 // static 458 // static
459 void SearchBoxExtension::DispatchChromeIdentityCheckResult( 459 void SearchBoxExtension::DispatchChromeIdentityCheckResult(
460 blink::WebFrame* frame, const string16& identity, bool identity_match) { 460 blink::WebFrame* frame,
461 const base::string16& identity,
462 bool identity_match) {
461 std::string escaped_identity; 463 std::string escaped_identity;
462 base::JsonDoubleQuote(identity, true, &escaped_identity); 464 base::JsonDoubleQuote(identity, true, &escaped_identity);
463 blink::WebString script(UTF8ToUTF16(base::StringPrintf( 465 blink::WebString script(UTF8ToUTF16(base::StringPrintf(
464 kDispatchChromeIdentityCheckResult, 466 kDispatchChromeIdentityCheckResult,
465 escaped_identity.c_str(), 467 escaped_identity.c_str(),
466 identity_match ? "true" : "false"))); 468 identity_match ? "true" : "false")));
467 Dispatch(frame, script); 469 Dispatch(frame, script);
468 } 470 }
469 471
470 // static 472 // static
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 v8::Isolate* isolate = args.GetIsolate(); 682 v8::Isolate* isolate = args.GetIsolate();
681 args.GetReturnValue().Set(GenerateMostVisitedItem( 683 args.GetReturnValue().Set(GenerateMostVisitedItem(
682 isolate, render_view->GetRoutingID(), restricted_id, mv_item)); 684 isolate, render_view->GetRoutingID(), restricted_id, mv_item));
683 } 685 }
684 686
685 // static 687 // static
686 void SearchBoxExtensionWrapper::GetQuery( 688 void SearchBoxExtensionWrapper::GetQuery(
687 const v8::FunctionCallbackInfo<v8::Value>& args) { 689 const v8::FunctionCallbackInfo<v8::Value>& args) {
688 content::RenderView* render_view = GetRenderView(); 690 content::RenderView* render_view = GetRenderView();
689 if (!render_view) return; 691 if (!render_view) return;
690 const string16& query = SearchBox::Get(render_view)->query(); 692 const base::string16& query = SearchBox::Get(render_view)->query();
691 DVLOG(1) << render_view << " GetQuery: '" << query << "'"; 693 DVLOG(1) << render_view << " GetQuery: '" << query << "'";
692 v8::Isolate* isolate = args.GetIsolate(); 694 v8::Isolate* isolate = args.GetIsolate();
693 args.GetReturnValue().Set(UTF16ToV8String(isolate, query)); 695 args.GetReturnValue().Set(UTF16ToV8String(isolate, query));
694 } 696 }
695 697
696 // static 698 // static
697 void SearchBoxExtensionWrapper::GetRightToLeft( 699 void SearchBoxExtensionWrapper::GetRightToLeft(
698 const v8::FunctionCallbackInfo<v8::Value>& args) { 700 const v8::FunctionCallbackInfo<v8::Value>& args) {
699 args.GetReturnValue().Set(base::i18n::IsRTL()); 701 args.GetReturnValue().Set(base::i18n::IsRTL());
700 } 702 }
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 // Check if the url is a rid 945 // Check if the url is a rid
944 if (args[0]->IsNumber()) { 946 if (args[0]->IsNumber()) {
945 InstantMostVisitedItem item; 947 InstantMostVisitedItem item;
946 if (SearchBox::Get(render_view)->GetMostVisitedItemWithID( 948 if (SearchBox::Get(render_view)->GetMostVisitedItemWithID(
947 args[0]->IntegerValue(), &item)) { 949 args[0]->IntegerValue(), &item)) {
948 destination_url = item.url; 950 destination_url = item.url;
949 is_most_visited_item_url = true; 951 is_most_visited_item_url = true;
950 } 952 }
951 } else { 953 } else {
952 // Resolve the URL 954 // Resolve the URL
953 const string16& possibly_relative_url = V8ValueToUTF16(args[0]); 955 const base::string16& possibly_relative_url = V8ValueToUTF16(args[0]);
954 GURL current_url = GetCurrentURL(render_view); 956 GURL current_url = GetCurrentURL(render_view);
955 destination_url = internal::ResolveURL(current_url, possibly_relative_url); 957 destination_url = internal::ResolveURL(current_url, possibly_relative_url);
956 } 958 }
957 959
958 DVLOG(1) << render_view << " NavigateContentWindow: " << destination_url; 960 DVLOG(1) << render_view << " NavigateContentWindow: " << destination_url;
959 961
960 // Navigate the main frame. 962 // Navigate the main frame.
961 if (destination_url.is_valid()) { 963 if (destination_url.is_valid()) {
962 WindowOpenDisposition disposition = CURRENT_TAB; 964 WindowOpenDisposition disposition = CURRENT_TAB;
963 if (args[1]->Uint32Value() == 2) 965 if (args[1]->Uint32Value() == 2)
964 disposition = NEW_BACKGROUND_TAB; 966 disposition = NEW_BACKGROUND_TAB;
965 SearchBox::Get(render_view)->NavigateToURL(destination_url, disposition, 967 SearchBox::Get(render_view)->NavigateToURL(destination_url, disposition,
966 is_most_visited_item_url); 968 is_most_visited_item_url);
967 } 969 }
968 } 970 }
969 971
970 // static 972 // static
971 void SearchBoxExtensionWrapper::Paste( 973 void SearchBoxExtensionWrapper::Paste(
972 const v8::FunctionCallbackInfo<v8::Value>& args) { 974 const v8::FunctionCallbackInfo<v8::Value>& args) {
973 content::RenderView* render_view = GetRenderView(); 975 content::RenderView* render_view = GetRenderView();
974 if (!render_view) return; 976 if (!render_view) return;
975 977
976 string16 text; 978 base::string16 text;
977 if (!args[0]->IsUndefined()) 979 if (!args[0]->IsUndefined())
978 text = V8ValueToUTF16(args[0]); 980 text = V8ValueToUTF16(args[0]);
979 981
980 DVLOG(1) << render_view << " Paste: " << text; 982 DVLOG(1) << render_view << " Paste: " << text;
981 SearchBox::Get(render_view)->Paste(text); 983 SearchBox::Get(render_view)->Paste(text);
982 } 984 }
983 985
984 // static 986 // static
985 void SearchBoxExtensionWrapper::StartCapturingKeyStrokes( 987 void SearchBoxExtensionWrapper::StartCapturingKeyStrokes(
986 const v8::FunctionCallbackInfo<v8::Value>& args) { 988 const v8::FunctionCallbackInfo<v8::Value>& args) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 if (!render_view) return; 1040 if (!render_view) return;
1039 1041
1040 bool display_instant_results = 1042 bool display_instant_results =
1041 SearchBox::Get(render_view)->display_instant_results(); 1043 SearchBox::Get(render_view)->display_instant_results();
1042 DVLOG(1) << render_view << " GetDisplayInstantResults" << 1044 DVLOG(1) << render_view << " GetDisplayInstantResults" <<
1043 display_instant_results; 1045 display_instant_results;
1044 args.GetReturnValue().Set(display_instant_results); 1046 args.GetReturnValue().Set(display_instant_results);
1045 } 1047 }
1046 1048
1047 } // namespace extensions_v8 1049 } // namespace extensions_v8
OLDNEW
« no previous file with comments | « chrome/renderer/searchbox/searchbox_extension.h ('k') | chrome/renderer/searchbox/searchbox_extension_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698