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

Side by Side Diff: chrome/browser/extensions/extension_function_dispatcher.cc

Issue 7346024: Get rid of the ProfileId. It was added for ceee. I reverted the original change, since it led to ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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/browser/extensions/extension_function_dispatcher.h" 5 #include "chrome/browser/extensions/extension_function_dispatcher.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 return FactoryRegistry::GetInstance()->OverrideFunction(name, factory); 420 return FactoryRegistry::GetInstance()->OverrideFunction(name, factory);
421 } 421 }
422 422
423 void ExtensionFunctionDispatcher::ResetFunctions() { 423 void ExtensionFunctionDispatcher::ResetFunctions() {
424 FactoryRegistry::GetInstance()->ResetFunctions(); 424 FactoryRegistry::GetInstance()->ResetFunctions();
425 } 425 }
426 426
427 // static 427 // static
428 void ExtensionFunctionDispatcher::DispatchOnIOThread( 428 void ExtensionFunctionDispatcher::DispatchOnIOThread(
429 const ExtensionInfoMap* extension_info_map, 429 const ExtensionInfoMap* extension_info_map,
430 ProfileId profile_id, 430 void* profile,
431 int render_process_id, 431 int render_process_id,
432 base::WeakPtr<ChromeRenderMessageFilter> ipc_sender, 432 base::WeakPtr<ChromeRenderMessageFilter> ipc_sender,
433 int routing_id, 433 int routing_id,
434 const ExtensionHostMsg_Request_Params& params) { 434 const ExtensionHostMsg_Request_Params& params) {
435 const Extension* extension = 435 const Extension* extension =
436 extension_info_map->extensions().GetByURL(params.source_url); 436 extension_info_map->extensions().GetByURL(params.source_url);
437 437
438 scoped_refptr<ExtensionFunction> function( 438 scoped_refptr<ExtensionFunction> function(
439 CreateExtensionFunction(params, extension, profile_id, render_process_id, 439 CreateExtensionFunction(params, extension, profile, render_process_id,
440 ipc_sender, routing_id)); 440 ipc_sender, routing_id));
441 if (!function) 441 if (!function)
442 return; 442 return;
443 443
444 IOThreadExtensionFunction* function_io = 444 IOThreadExtensionFunction* function_io =
445 function->AsIOThreadExtensionFunction(); 445 function->AsIOThreadExtensionFunction();
446 if (!function_io) { 446 if (!function_io) {
447 NOTREACHED(); 447 NOTREACHED();
448 return; 448 return;
449 } 449 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 return; 503 return;
504 } 504 }
505 505
506 // TODO(aa): When we allow content scripts to call extension APIs, we will 506 // TODO(aa): When we allow content scripts to call extension APIs, we will
507 // have to pass the extension ID explicitly here, not use the source URL. 507 // have to pass the extension ID explicitly here, not use the source URL.
508 const Extension* extension = service->GetExtensionByURL(params.source_url); 508 const Extension* extension = service->GetExtensionByURL(params.source_url);
509 if (!extension) 509 if (!extension)
510 extension = service->GetExtensionByWebExtent(params.source_url); 510 extension = service->GetExtensionByWebExtent(params.source_url);
511 511
512 scoped_refptr<ExtensionFunction> function(CreateExtensionFunction( 512 scoped_refptr<ExtensionFunction> function(CreateExtensionFunction(
513 params, extension, profile_->GetRuntimeId(), 513 params, extension, profile_,
514 render_view_host->process()->id(), 514 render_view_host->process()->id(),
515 render_view_host, render_view_host->routing_id())); 515 render_view_host, render_view_host->routing_id()));
516 if (!function) 516 if (!function)
517 return; 517 return;
518 518
519 UIThreadExtensionFunction* function_ui = 519 UIThreadExtensionFunction* function_ui =
520 function->AsUIThreadExtensionFunction(); 520 function->AsUIThreadExtensionFunction();
521 if (!function_ui) { 521 if (!function_ui) {
522 NOTREACHED(); 522 NOTREACHED();
523 return; 523 return;
(...skipping 14 matching lines...) Expand all
538 render_view_host->Send(new ExtensionMsg_Response( 538 render_view_host->Send(new ExtensionMsg_Response(
539 render_view_host->routing_id(), function->request_id(), false, 539 render_view_host->routing_id(), function->request_id(), false,
540 std::string(), QuotaLimitHeuristic::kGenericOverQuotaError)); 540 std::string(), QuotaLimitHeuristic::kGenericOverQuotaError));
541 } 541 }
542 } 542 }
543 543
544 // static 544 // static
545 ExtensionFunction* ExtensionFunctionDispatcher::CreateExtensionFunction( 545 ExtensionFunction* ExtensionFunctionDispatcher::CreateExtensionFunction(
546 const ExtensionHostMsg_Request_Params& params, 546 const ExtensionHostMsg_Request_Params& params,
547 const Extension* extension, 547 const Extension* extension,
548 ProfileId profile_id, 548 void* profile,
549 int render_process_id, 549 int render_process_id,
550 IPC::Message::Sender* ipc_sender, 550 IPC::Message::Sender* ipc_sender,
551 int routing_id) { 551 int routing_id) {
552 // TODO(aa): It would be cool to use ExtensionProcessManager to track which 552 // TODO(aa): It would be cool to use ExtensionProcessManager to track which
553 // processes are extension processes rather than ChildProcessSecurityPolicy. 553 // processes are extension processes rather than ChildProcessSecurityPolicy.
554 // EPM has richer information: it not only knows which processes contain 554 // EPM has richer information: it not only knows which processes contain
555 // at least one extension, but it knows which extensions are inside and what 555 // at least one extension, but it knows which extensions are inside and what
556 // permissions the have. So we would be able to enforce permissions more 556 // permissions the have. So we would be able to enforce permissions more
557 // granularly. 557 // granularly.
558 if (!ChildProcessSecurityPolicy::GetInstance()->HasExtensionBindings( 558 if (!ChildProcessSecurityPolicy::GetInstance()->HasExtensionBindings(
(...skipping 20 matching lines...) Expand all
579 } 579 }
580 580
581 ExtensionFunction* function = 581 ExtensionFunction* function =
582 FactoryRegistry::GetInstance()->NewFunction(params.name); 582 FactoryRegistry::GetInstance()->NewFunction(params.name);
583 function->SetArgs(&params.arguments); 583 function->SetArgs(&params.arguments);
584 function->set_source_url(params.source_url); 584 function->set_source_url(params.source_url);
585 function->set_request_id(params.request_id); 585 function->set_request_id(params.request_id);
586 function->set_has_callback(params.has_callback); 586 function->set_has_callback(params.has_callback);
587 function->set_user_gesture(params.user_gesture); 587 function->set_user_gesture(params.user_gesture);
588 function->set_extension(extension); 588 function->set_extension(extension);
589 function->set_profile_id(profile_id); 589 function->set_profile(profile);
590 return function; 590 return function;
591 } 591 }
592 592
593 // static 593 // static
594 void ExtensionFunctionDispatcher::SendAccessDenied( 594 void ExtensionFunctionDispatcher::SendAccessDenied(
595 IPC::Message::Sender* ipc_sender, int routing_id, int request_id) { 595 IPC::Message::Sender* ipc_sender, int routing_id, int request_id) {
596 ipc_sender->Send(new ExtensionMsg_Response( 596 ipc_sender->Send(new ExtensionMsg_Response(
597 routing_id, request_id, false, std::string(), 597 routing_id, request_id, false, std::string(),
598 "Access to extension API denied.")); 598 "Access to extension API denied."));
599 } 599 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_function_dispatcher.h ('k') | chrome/browser/extensions/extension_proxy_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698