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

Side by Side Diff: chrome/renderer/extensions/extension_process_bindings.cc

Issue 6735004: Move extension messages to their own file and add a RenderViewObserver to start moving the extens... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' 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) 2011 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/extensions/extension_process_bindings.h" 5 #include "chrome/renderer/extensions/extension_process_bindings.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/command_line.h" 12 #include "base/command_line.h"
13 #include "base/json/json_reader.h" 13 #include "base/json/json_reader.h"
14 #include "base/lazy_instance.h" 14 #include "base/lazy_instance.h"
15 #include "base/scoped_ptr.h" 15 #include "base/scoped_ptr.h"
16 #include "base/string_number_conversions.h" 16 #include "base/string_number_conversions.h"
17 #include "base/string_util.h" 17 #include "base/string_util.h"
18 #include "chrome/common/extensions/extension.h" 18 #include "chrome/common/extensions/extension.h"
19 #include "chrome/common/extensions/extension_constants.h" 19 #include "chrome/common/extensions/extension_constants.h"
20 #include "chrome/common/extensions/extension_messages.h"
20 #include "chrome/common/extensions/extension_set.h" 21 #include "chrome/common/extensions/extension_set.h"
21 #include "chrome/common/extensions/url_pattern.h" 22 #include "chrome/common/extensions/url_pattern.h"
22 #include "chrome/common/render_messages.h" 23 #include "chrome/common/render_messages.h"
23 #include "chrome/common/render_messages_params.h" 24 #include "chrome/common/render_messages_params.h"
24 #include "chrome/common/url_constants.h" 25 #include "chrome/common/url_constants.h"
25 #include "chrome/renderer/extensions/bindings_utils.h" 26 #include "chrome/renderer/extensions/bindings_utils.h"
26 #include "chrome/renderer/extensions/event_bindings.h" 27 #include "chrome/renderer/extensions/event_bindings.h"
27 #include "chrome/renderer/extensions/js_only_v8_extensions.h" 28 #include "chrome/renderer/extensions/js_only_v8_extensions.h"
28 #include "chrome/renderer/extensions/renderer_extension_bindings.h" 29 #include "chrome/renderer/extensions/renderer_extension_bindings.h"
29 #include "chrome/renderer/user_script_slave.h" 30 #include "chrome/renderer/user_script_slave.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 RenderView* renderview = bindings_utils::GetRenderViewForCurrentContext(); 326 RenderView* renderview = bindings_utils::GetRenderViewForCurrentContext();
326 if (!renderview) 327 if (!renderview)
327 return v8::Undefined(); 328 return v8::Undefined();
328 329
329 if (args.Length() >= 3 && args[0]->IsInt32() && args[1]->IsString() && 330 if (args.Length() >= 3 && args[0]->IsInt32() && args[1]->IsString() &&
330 args[2]->IsString()) { 331 args[2]->IsString()) {
331 int tab_id = args[0]->Int32Value(); 332 int tab_id = args[0]->Int32Value();
332 std::string extension_id = *v8::String::Utf8Value(args[1]->ToString()); 333 std::string extension_id = *v8::String::Utf8Value(args[1]->ToString());
333 std::string channel_name = *v8::String::Utf8Value(args[2]->ToString()); 334 std::string channel_name = *v8::String::Utf8Value(args[2]->ToString());
334 int port_id = -1; 335 int port_id = -1;
335 renderview->Send(new ViewHostMsg_OpenChannelToTab( 336 renderview->Send(new ExtensionHostMsg_OpenChannelToTab(
336 renderview->routing_id(), tab_id, extension_id, channel_name, 337 renderview->routing_id(), tab_id, extension_id, channel_name,
337 &port_id)); 338 &port_id));
338 return v8::Integer::New(port_id); 339 return v8::Integer::New(port_id);
339 } 340 }
340 return v8::Undefined(); 341 return v8::Undefined();
341 } 342 }
342 343
343 static v8::Handle<v8::Value> GetCurrentPageActions( 344 static v8::Handle<v8::Value> GetCurrentPageActions(
344 const v8::Arguments& args) { 345 const v8::Arguments& args) {
345 std::string extension_id = *v8::String::Utf8Value(args[0]->ToString()); 346 std::string extension_id = *v8::String::Utf8Value(args[0]->ToString());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 392
392 int request_id = args[2]->Int32Value(); 393 int request_id = args[2]->Int32Value();
393 bool has_callback = args[3]->BooleanValue(); 394 bool has_callback = args[3]->BooleanValue();
394 395
395 v8::Persistent<v8::Context> current_context = 396 v8::Persistent<v8::Context> current_context =
396 v8::Persistent<v8::Context>::New(v8::Context::GetCurrent()); 397 v8::Persistent<v8::Context>::New(v8::Context::GetCurrent());
397 DCHECK(!current_context.IsEmpty()); 398 DCHECK(!current_context.IsEmpty());
398 GetPendingRequestMap()[request_id].reset(new PendingRequest( 399 GetPendingRequestMap()[request_id].reset(new PendingRequest(
399 current_context, name)); 400 current_context, name));
400 401
401 ViewHostMsg_DomMessage_Params params; 402 ExtensionHostMsg_DomMessage_Params params;
402 params.name = name; 403 params.name = name;
403 params.arguments.Swap(value_args); 404 params.arguments.Swap(value_args);
404 params.source_url = source_url; 405 params.source_url = source_url;
405 params.request_id = request_id; 406 params.request_id = request_id;
406 params.has_callback = has_callback; 407 params.has_callback = has_callback;
407 params.user_gesture = webframe->isProcessingUserGesture(); 408 params.user_gesture = webframe->isProcessingUserGesture();
408 renderview->SendExtensionRequest(params); 409 renderview->Send(new ExtensionHostMsg_Request(
410 renderview->routing_id(), params));
409 411
410 return v8::Undefined(); 412 return v8::Undefined();
411 } 413 }
412 414
413 // Starts an API request to the browser, with an optional callback. The 415 // Starts an API request to the browser, with an optional callback. The
414 // callback will be dispatched to EventBindings::HandleResponse. 416 // callback will be dispatched to EventBindings::HandleResponse.
415 static v8::Handle<v8::Value> StartRequest(const v8::Arguments& args) { 417 static v8::Handle<v8::Value> StartRequest(const v8::Arguments& args) {
416 std::string str_args = *v8::String::Utf8Value(args[1]); 418 std::string str_args = *v8::String::Utf8Value(args[1]);
417 base::JSONReader reader; 419 base::JSONReader reader;
418 scoped_ptr<Value> value_args; 420 scoped_ptr<Value> value_args;
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 ExtensionProcessBindings::ThrowPermissionDeniedException( 649 ExtensionProcessBindings::ThrowPermissionDeniedException(
648 const std::string& function_name) { 650 const std::string& function_name) {
649 static const char kMessage[] = 651 static const char kMessage[] =
650 "You do not have permission to use '%s'. Be sure to declare" 652 "You do not have permission to use '%s'. Be sure to declare"
651 " in your manifest what permissions you need."; 653 " in your manifest what permissions you need.";
652 std::string error_msg = StringPrintf(kMessage, function_name.c_str()); 654 std::string error_msg = StringPrintf(kMessage, function_name.c_str());
653 655
654 return v8::ThrowException(v8::Exception::Error( 656 return v8::ThrowException(v8::Exception::Error(
655 v8::String::New(error_msg.c_str()))); 657 v8::String::New(error_msg.c_str())));
656 } 658 }
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/extension_helper.cc ('k') | chrome/renderer/extensions/renderer_extension_bindings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698