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

Side by Side Diff: extensions/renderer/dispatcher.cc

Issue 708713003: Don't crash when granting permissions to active tab. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change for with iterators to a foreach. Created 6 years, 1 month 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
« no previous file with comments | « extensions/renderer/dispatcher.h ('k') | extensions/renderer/dispatcher_delegate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/renderer/dispatcher.h" 5 #include "extensions/renderer/dispatcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/alias.h" 10 #include "base/debug/alias.h"
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(context))); 709 scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(context)));
710 module_system->RegisterNativeHandler( 710 module_system->RegisterNativeHandler(
711 "runtime", scoped_ptr<NativeHandler>(new RuntimeCustomBindings(context))); 711 "runtime", scoped_ptr<NativeHandler>(new RuntimeCustomBindings(context)));
712 } 712 }
713 713
714 bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { 714 bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) {
715 bool handled = true; 715 bool handled = true;
716 IPC_BEGIN_MESSAGE_MAP(Dispatcher, message) 716 IPC_BEGIN_MESSAGE_MAP(Dispatcher, message)
717 IPC_MESSAGE_HANDLER(ExtensionMsg_ActivateExtension, OnActivateExtension) 717 IPC_MESSAGE_HANDLER(ExtensionMsg_ActivateExtension, OnActivateExtension)
718 IPC_MESSAGE_HANDLER(ExtensionMsg_CancelSuspend, OnCancelSuspend) 718 IPC_MESSAGE_HANDLER(ExtensionMsg_CancelSuspend, OnCancelSuspend)
719 IPC_MESSAGE_HANDLER(ExtensionMsg_ClearTabSpecificPermissions,
720 OnClearTabSpecificPermissions)
721 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnDeliverMessage) 719 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnDeliverMessage)
722 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, OnDispatchOnConnect) 720 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, OnDispatchOnConnect)
723 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, OnDispatchOnDisconnect) 721 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, OnDispatchOnDisconnect)
724 IPC_MESSAGE_HANDLER(ExtensionMsg_Loaded, OnLoaded) 722 IPC_MESSAGE_HANDLER(ExtensionMsg_Loaded, OnLoaded)
725 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnMessageInvoke) 723 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnMessageInvoke)
726 IPC_MESSAGE_HANDLER(ExtensionMsg_SetChannel, OnSetChannel) 724 IPC_MESSAGE_HANDLER(ExtensionMsg_SetChannel, OnSetChannel)
727 IPC_MESSAGE_HANDLER(ExtensionMsg_SetFunctionNames, OnSetFunctionNames) 725 IPC_MESSAGE_HANDLER(ExtensionMsg_SetFunctionNames, OnSetFunctionNames)
728 IPC_MESSAGE_HANDLER(ExtensionMsg_SetScriptingWhitelist, 726 IPC_MESSAGE_HANDLER(ExtensionMsg_SetScriptingWhitelist,
729 OnSetScriptingWhitelist) 727 OnSetScriptingWhitelist)
730 IPC_MESSAGE_HANDLER(ExtensionMsg_SetSystemFont, OnSetSystemFont) 728 IPC_MESSAGE_HANDLER(ExtensionMsg_SetSystemFont, OnSetSystemFont)
731 IPC_MESSAGE_HANDLER(ExtensionMsg_ShouldSuspend, OnShouldSuspend) 729 IPC_MESSAGE_HANDLER(ExtensionMsg_ShouldSuspend, OnShouldSuspend)
732 IPC_MESSAGE_HANDLER(ExtensionMsg_Suspend, OnSuspend) 730 IPC_MESSAGE_HANDLER(ExtensionMsg_Suspend, OnSuspend)
733 IPC_MESSAGE_HANDLER(ExtensionMsg_TransferBlobs, OnTransferBlobs) 731 IPC_MESSAGE_HANDLER(ExtensionMsg_TransferBlobs, OnTransferBlobs)
734 IPC_MESSAGE_HANDLER(ExtensionMsg_Unloaded, OnUnloaded) 732 IPC_MESSAGE_HANDLER(ExtensionMsg_Unloaded, OnUnloaded)
735 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdatePermissions, OnUpdatePermissions) 733 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdatePermissions, OnUpdatePermissions)
736 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateTabSpecificPermissions,
737 OnUpdateTabSpecificPermissions)
738 IPC_MESSAGE_HANDLER(ExtensionMsg_UsingWebRequestAPI, OnUsingWebRequestAPI) 734 IPC_MESSAGE_HANDLER(ExtensionMsg_UsingWebRequestAPI, OnUsingWebRequestAPI)
739 IPC_MESSAGE_FORWARD(ExtensionMsg_WatchPages, 735 IPC_MESSAGE_FORWARD(ExtensionMsg_WatchPages,
740 content_watcher_.get(), 736 content_watcher_.get(),
741 ContentWatcher::OnWatchPages) 737 ContentWatcher::OnWatchPages)
742 IPC_MESSAGE_UNHANDLED(handled = false) 738 IPC_MESSAGE_UNHANDLED(handled = false)
743 IPC_END_MESSAGE_MAP() 739 IPC_END_MESSAGE_MAP()
744 740
745 return handled; 741 return handled;
746 } 742 }
747 743
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 InitOriginPermissions(extension); 823 InitOriginPermissions(extension);
828 } 824 }
829 825
830 UpdateActiveExtensions(); 826 UpdateActiveExtensions();
831 } 827 }
832 828
833 void Dispatcher::OnCancelSuspend(const std::string& extension_id) { 829 void Dispatcher::OnCancelSuspend(const std::string& extension_id) {
834 DispatchEvent(extension_id, kOnSuspendCanceledEvent); 830 DispatchEvent(extension_id, kOnSuspendCanceledEvent);
835 } 831 }
836 832
837 void Dispatcher::OnClearTabSpecificPermissions(
838 int tab_id,
839 const std::vector<std::string>& extension_ids) {
840 delegate_->ClearTabSpecificPermissions(this, tab_id, extension_ids);
841 }
842
843 void Dispatcher::OnDeliverMessage(int target_port_id, const Message& message) { 833 void Dispatcher::OnDeliverMessage(int target_port_id, const Message& message) {
844 scoped_ptr<RequestSender::ScopedTabID> scoped_tab_id; 834 scoped_ptr<RequestSender::ScopedTabID> scoped_tab_id;
845 std::map<int, int>::const_iterator it = 835 std::map<int, int>::const_iterator it =
846 port_to_tab_id_map_.find(target_port_id); 836 port_to_tab_id_map_.find(target_port_id);
847 if (it != port_to_tab_id_map_.end()) { 837 if (it != port_to_tab_id_map_.end()) {
848 scoped_tab_id.reset( 838 scoped_tab_id.reset(
849 new RequestSender::ScopedTabID(request_sender(), it->second)); 839 new RequestSender::ScopedTabID(request_sender(), it->second));
850 } 840 }
851 841
852 MessagingBindings::DeliverMessage(script_context_set_, 842 MessagingBindings::DeliverMessage(script_context_set_,
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 UpdateOriginPermissions( 994 UpdateOriginPermissions(
1005 extension, 995 extension,
1006 extension->permissions_data()->GetEffectiveHostPermissions(), 996 extension->permissions_data()->GetEffectiveHostPermissions(),
1007 active->effective_hosts()); 997 active->effective_hosts());
1008 } 998 }
1009 999
1010 extension->permissions_data()->SetPermissions(active, withheld); 1000 extension->permissions_data()->SetPermissions(active, withheld);
1011 UpdateBindings(extension->id()); 1001 UpdateBindings(extension->id());
1012 } 1002 }
1013 1003
1014 void Dispatcher::OnUpdateTabSpecificPermissions(
1015 const GURL& url,
1016 int tab_id,
1017 const std::string& extension_id,
1018 const URLPatternSet& origin_set) {
1019 delegate_->UpdateTabSpecificPermissions(
1020 this, url, tab_id, extension_id, origin_set);
1021 }
1022
1023 void Dispatcher::OnUsingWebRequestAPI(bool webrequest_used) { 1004 void Dispatcher::OnUsingWebRequestAPI(bool webrequest_used) {
1024 webrequest_used_ = webrequest_used; 1005 webrequest_used_ = webrequest_used;
1025 } 1006 }
1026 1007
1027 void Dispatcher::OnUserScriptsUpdated( 1008 void Dispatcher::OnUserScriptsUpdated(
1028 const std::set<std::string>& changed_extensions, 1009 const std::set<std::string>& changed_extensions,
1029 const std::vector<UserScript*>& scripts) { 1010 const std::vector<UserScript*>& scripts) {
1030 UpdateActiveExtensions(); 1011 UpdateActiveExtensions();
1031 } 1012 }
1032 1013
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1403 return v8::Handle<v8::Object>(); 1384 return v8::Handle<v8::Object>();
1404 1385
1405 if (bind_name) 1386 if (bind_name)
1406 *bind_name = split.back(); 1387 *bind_name = split.back();
1407 1388
1408 return bind_object.IsEmpty() ? AsObjectOrEmpty(GetOrCreateChrome(context)) 1389 return bind_object.IsEmpty() ? AsObjectOrEmpty(GetOrCreateChrome(context))
1409 : bind_object; 1390 : bind_object;
1410 } 1391 }
1411 1392
1412 } // namespace extensions 1393 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/dispatcher.h ('k') | extensions/renderer/dispatcher_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698