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

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

Issue 6750018: Cleanup: Stop creating RenderViewObservers from chrome/ in RenderViewer. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix build on win/mac Created 9 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_extension.h" 5 #include "chrome/renderer/searchbox_extension.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/string_split.h" 11 #include "base/string_split.h"
12 #include "base/stringprintf.h" 12 #include "base/stringprintf.h"
13 #include "chrome/common/render_messages_params.h" 13 #include "chrome/common/render_messages_params.h"
14 #include "chrome/renderer/render_view_wrapper.h"
14 #include "chrome/renderer/searchbox.h" 15 #include "chrome/renderer/searchbox.h"
15 #include "content/renderer/render_view.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptSource.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptSource.h"
18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
19 #include "v8/include/v8.h" 19 #include "v8/include/v8.h"
20 20
21 using WebKit::WebFrame; 21 using WebKit::WebFrame;
22 using WebKit::WebScriptSource; 22 using WebKit::WebScriptSource;
23 using WebKit::WebString; 23 using WebKit::WebString;
24 using WebKit::WebView; 24 using WebKit::WebView;
25 25
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 class SearchBoxExtensionWrapper : public v8::Extension { 126 class SearchBoxExtensionWrapper : public v8::Extension {
127 public: 127 public:
128 SearchBoxExtensionWrapper(); 128 SearchBoxExtensionWrapper();
129 129
130 // Allows v8's javascript code to call the native functions defined 130 // Allows v8's javascript code to call the native functions defined
131 // in this class for window.chrome. 131 // in this class for window.chrome.
132 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( 132 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
133 v8::Handle<v8::String> name); 133 v8::Handle<v8::String> name);
134 134
135 // Helper function to find the RenderView. May return NULL. 135 // Helper function to find the RenderView. May return NULL.
136 static RenderView* GetRenderView(); 136 static RenderViewWrapper* GetRenderViewWrapper();
137 137
138 // Gets the value of the user's search query. 138 // Gets the value of the user's search query.
139 static v8::Handle<v8::Value> GetValue(const v8::Arguments& args); 139 static v8::Handle<v8::Value> GetValue(const v8::Arguments& args);
140 140
141 // Gets whether the |value| should be considered final -- as opposed to a 141 // Gets whether the |value| should be considered final -- as opposed to a
142 // partial match. This may be set if the user clicks a suggestion, presses 142 // partial match. This may be set if the user clicks a suggestion, presses
143 // forward delete, or in other cases where Chrome overrides. 143 // forward delete, or in other cases where Chrome overrides.
144 static v8::Handle<v8::Value> GetVerbatim(const v8::Arguments& args); 144 static v8::Handle<v8::Value> GetVerbatim(const v8::Arguments& args);
145 145
146 // Gets the start of the selection in the search box. 146 // Gets the start of the selection in the search box.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 return v8::FunctionTemplate::New(GetWidth); 191 return v8::FunctionTemplate::New(GetWidth);
192 } else if (name->Equals(v8::String::New("GetHeight"))) { 192 } else if (name->Equals(v8::String::New("GetHeight"))) {
193 return v8::FunctionTemplate::New(GetHeight); 193 return v8::FunctionTemplate::New(GetHeight);
194 } else if (name->Equals(v8::String::New("SetSuggestions"))) { 194 } else if (name->Equals(v8::String::New("SetSuggestions"))) {
195 return v8::FunctionTemplate::New(SetSuggestions); 195 return v8::FunctionTemplate::New(SetSuggestions);
196 } 196 }
197 return v8::Handle<v8::FunctionTemplate>(); 197 return v8::Handle<v8::FunctionTemplate>();
198 } 198 }
199 199
200 // static 200 // static
201 RenderView* SearchBoxExtensionWrapper::GetRenderView() { 201 RenderViewWrapper* SearchBoxExtensionWrapper::GetRenderViewWrapper() {
202 WebFrame* webframe = WebFrame::frameForEnteredContext(); 202 WebFrame* webframe = WebFrame::frameForEnteredContext();
203 DCHECK(webframe) << "There should be an active frame since we just got " 203 DCHECK(webframe) << "There should be an active frame since we just got "
204 "a native function called."; 204 "a native function called.";
205 if (!webframe) return NULL; 205 if (!webframe) return NULL;
206 206
207 WebView* webview = webframe->view(); 207 WebView* webview = webframe->view();
208 if (!webview) return NULL; // can happen during closing 208 if (!webview) return NULL; // can happen during closing
209 209
210 return RenderView::FromWebView(webview); 210 return RenderViewWrapper::FromWebView(webview);
211 } 211 }
212 212
213 // static 213 // static
214 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetValue( 214 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetValue(
215 const v8::Arguments& args) { 215 const v8::Arguments& args) {
216 RenderView* render_view = GetRenderView(); 216 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
217 if (!render_view) return v8::Undefined(); 217 if (!render_view_wrapper) return v8::Undefined();
218 return v8::String::New( 218 return v8::String::New(
219 reinterpret_cast<const uint16_t*>( 219 reinterpret_cast<const uint16_t*>(
220 render_view->searchbox()->value().c_str()), 220 render_view_wrapper->searchbox()->value().c_str()),
221 render_view->searchbox()->value().length()); 221 render_view_wrapper->searchbox()->value().length());
222 } 222 }
223 223
224 // static 224 // static
225 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetVerbatim( 225 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetVerbatim(
226 const v8::Arguments& args) { 226 const v8::Arguments& args) {
227 RenderView* render_view = GetRenderView(); 227 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
228 if (!render_view) return v8::Undefined(); 228 if (!render_view_wrapper) return v8::Undefined();
229 return v8::Boolean::New(render_view->searchbox()->verbatim()); 229 return v8::Boolean::New(render_view_wrapper->searchbox()->verbatim());
230 } 230 }
231 231
232 // static 232 // static
233 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetSelectionStart( 233 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetSelectionStart(
234 const v8::Arguments& args) { 234 const v8::Arguments& args) {
235 RenderView* render_view = GetRenderView(); 235 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
236 if (!render_view) return v8::Undefined(); 236 if (!render_view_wrapper) return v8::Undefined();
237 return v8::Int32::New(render_view->searchbox()->selection_start()); 237 return v8::Int32::New(render_view_wrapper->searchbox()->selection_start());
238 } 238 }
239 239
240 // static 240 // static
241 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetSelectionEnd( 241 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetSelectionEnd(
242 const v8::Arguments& args) { 242 const v8::Arguments& args) {
243 RenderView* render_view = GetRenderView(); 243 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
244 if (!render_view) return v8::Undefined(); 244 if (!render_view_wrapper) return v8::Undefined();
245 return v8::Int32::New(render_view->searchbox()->selection_end()); 245 return v8::Int32::New(render_view_wrapper->searchbox()->selection_end());
246 } 246 }
247 247
248 // static 248 // static
249 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetX( 249 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetX(
250 const v8::Arguments& args) { 250 const v8::Arguments& args) {
251 RenderView* render_view = GetRenderView(); 251 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
252 if (!render_view) return v8::Undefined(); 252 if (!render_view_wrapper) return v8::Undefined();
253 return v8::Int32::New(render_view->searchbox()->rect().x()); 253 return v8::Int32::New(render_view_wrapper->searchbox()->rect().x());
254 } 254 }
255 255
256 // static 256 // static
257 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetY( 257 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetY(
258 const v8::Arguments& args) { 258 const v8::Arguments& args) {
259 RenderView* render_view = GetRenderView(); 259 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
260 if (!render_view) return v8::Undefined(); 260 if (!render_view_wrapper) return v8::Undefined();
261 return v8::Int32::New(render_view->searchbox()->rect().y()); 261 return v8::Int32::New(render_view_wrapper->searchbox()->rect().y());
262 } 262 }
263 263
264 // static 264 // static
265 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetWidth( 265 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetWidth(
266 const v8::Arguments& args) { 266 const v8::Arguments& args) {
267 RenderView* render_view = GetRenderView(); 267 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
268 if (!render_view) return v8::Undefined(); 268 if (!render_view_wrapper) return v8::Undefined();
269 return v8::Int32::New(render_view->searchbox()->rect().width()); 269 return v8::Int32::New(render_view_wrapper->searchbox()->rect().width());
270 } 270 }
271 271
272 // static 272 // static
273 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetHeight( 273 v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetHeight(
274 const v8::Arguments& args) { 274 const v8::Arguments& args) {
275 RenderView* render_view = GetRenderView(); 275 RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper();
276 if (!render_view) return v8::Undefined(); 276 if (!render_view_wrapper) return v8::Undefined();
277 return v8::Int32::New(render_view->searchbox()->rect().height()); 277 return v8::Int32::New(render_view_wrapper->searchbox()->rect().height());
278 } 278 }
279 279
280 // Accepts a single argument in form: 280 // Accepts a single argument in form:
281 // { 281 // {
282 // suggestions: [ 282 // suggestions: [
283 // { 283 // {
284 // value: "..." 284 // value: "..."
285 // } 285 // }
286 // ] 286 // ]
287 // } 287 // }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 suggestion_json->Get(v8::String::New("complete_behavior")); 335 suggestion_json->Get(v8::String::New("complete_behavior"));
336 if (complete_value->IsString()) { 336 if (complete_value->IsString()) {
337 if (complete_value->Equals(v8::String::New("never"))) 337 if (complete_value->Equals(v8::String::New("never")))
338 behavior = INSTANT_COMPLETE_NEVER; 338 behavior = INSTANT_COMPLETE_NEVER;
339 else if (complete_value->Equals(v8::String::New("delayed"))) 339 else if (complete_value->Equals(v8::String::New("delayed")))
340 behavior = INSTANT_COMPLETE_DELAYED; 340 behavior = INSTANT_COMPLETE_DELAYED;
341 } 341 }
342 } 342 }
343 } 343 }
344 344
345 if (RenderView* render_view = GetRenderView()) 345 if (RenderViewWrapper* render_view_wrapper = GetRenderViewWrapper())
346 render_view->searchbox()->SetSuggestions(suggestions, behavior); 346 render_view_wrapper->searchbox()->SetSuggestions(suggestions, behavior);
347 return v8::Undefined(); 347 return v8::Undefined();
348 } 348 }
349 349
350 // static 350 // static
351 bool Dispatch(WebFrame* frame, const std::string& event_name) { 351 bool Dispatch(WebFrame* frame, const std::string& event_name) {
352 DCHECK(frame) << "Dispatch requires frame"; 352 DCHECK(frame) << "Dispatch requires frame";
353 if (!frame) return false; 353 if (!frame) return false;
354 354
355 v8::HandleScope handle_scope; 355 v8::HandleScope handle_scope;
356 v8::Local<v8::Context> context = frame->mainWorldScriptContext(); 356 v8::Local<v8::Context> context = frame->mainWorldScriptContext();
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 427
428 return supports_searchbox_api || supports_deprecated_api; 428 return supports_searchbox_api || supports_deprecated_api;
429 } 429 }
430 430
431 // static 431 // static
432 v8::Extension* SearchBoxExtension::Get() { 432 v8::Extension* SearchBoxExtension::Get() {
433 return new SearchBoxExtensionWrapper(); 433 return new SearchBoxExtensionWrapper();
434 } 434 }
435 435
436 } // namespace extensions_v8 436 } // namespace extensions_v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698