| OLD | NEW |
| 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 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 806 std::map<int, int>::const_iterator it = | 806 std::map<int, int>::const_iterator it = |
| 807 port_to_tab_id_map_.find(target_port_id); | 807 port_to_tab_id_map_.find(target_port_id); |
| 808 if (it != port_to_tab_id_map_.end()) { | 808 if (it != port_to_tab_id_map_.end()) { |
| 809 scoped_tab_id.reset( | 809 scoped_tab_id.reset( |
| 810 new RequestSender::ScopedTabID(request_sender(), it->second)); | 810 new RequestSender::ScopedTabID(request_sender(), it->second)); |
| 811 } | 811 } |
| 812 | 812 |
| 813 MessagingBindings::DeliverMessage(script_context_set_, | 813 MessagingBindings::DeliverMessage(script_context_set_, |
| 814 target_port_id, | 814 target_port_id, |
| 815 message, | 815 message, |
| 816 NULL); // All render views. | 816 nullptr); // All render views. |
| 817 } | 817 } |
| 818 | 818 |
| 819 void Dispatcher::OnDispatchOnConnect( | 819 void Dispatcher::OnDispatchOnConnect( |
| 820 int target_port_id, | 820 int target_port_id, |
| 821 const std::string& channel_name, | 821 const std::string& channel_name, |
| 822 const base::DictionaryValue& source_tab, | 822 const base::DictionaryValue& source_tab, |
| 823 const ExtensionMsg_ExternalConnectionInfo& info, | 823 const ExtensionMsg_ExternalConnectionInfo& info, |
| 824 const std::string& tls_channel_id) { | 824 const std::string& tls_channel_id) { |
| 825 DCHECK(!ContainsKey(port_to_tab_id_map_, target_port_id)); | 825 DCHECK(!ContainsKey(port_to_tab_id_map_, target_port_id)); |
| 826 DCHECK_EQ(1, target_port_id % 2); // target renderer ports have odd IDs. | 826 DCHECK_EQ(1, target_port_id % 2); // target renderer ports have odd IDs. |
| 827 int sender_tab_id = -1; | 827 int sender_tab_id = -1; |
| 828 source_tab.GetInteger("id", &sender_tab_id); | 828 source_tab.GetInteger("id", &sender_tab_id); |
| 829 port_to_tab_id_map_[target_port_id] = sender_tab_id; | 829 port_to_tab_id_map_[target_port_id] = sender_tab_id; |
| 830 | 830 |
| 831 MessagingBindings::DispatchOnConnect(script_context_set_, | 831 MessagingBindings::DispatchOnConnect(script_context_set_, |
| 832 target_port_id, | 832 target_port_id, |
| 833 channel_name, | 833 channel_name, |
| 834 source_tab, | 834 source_tab, |
| 835 info, | 835 info, |
| 836 tls_channel_id, | 836 tls_channel_id, |
| 837 NULL); // All render views. | 837 nullptr); // All render views. |
| 838 } | 838 } |
| 839 | 839 |
| 840 void Dispatcher::OnDispatchOnDisconnect(int port_id, | 840 void Dispatcher::OnDispatchOnDisconnect(int port_id, |
| 841 const std::string& error_message) { | 841 const std::string& error_message) { |
| 842 MessagingBindings::DispatchOnDisconnect(script_context_set_, | 842 MessagingBindings::DispatchOnDisconnect(script_context_set_, |
| 843 port_id, | 843 port_id, |
| 844 error_message, | 844 error_message, |
| 845 NULL); // All render views. | 845 nullptr); // All render views. |
| 846 } | 846 } |
| 847 | 847 |
| 848 void Dispatcher::OnLoaded( | 848 void Dispatcher::OnLoaded( |
| 849 const std::vector<ExtensionMsg_Loaded_Params>& loaded_extensions) { | 849 const std::vector<ExtensionMsg_Loaded_Params>& loaded_extensions) { |
| 850 std::vector<ExtensionMsg_Loaded_Params>::const_iterator i; | 850 std::vector<ExtensionMsg_Loaded_Params>::const_iterator i; |
| 851 for (i = loaded_extensions.begin(); i != loaded_extensions.end(); ++i) { | 851 for (i = loaded_extensions.begin(); i != loaded_extensions.end(); ++i) { |
| 852 std::string error; | 852 std::string error; |
| 853 scoped_refptr<const Extension> extension = i->ConvertToExtension(&error); | 853 scoped_refptr<const Extension> extension = i->ConvertToExtension(&error); |
| 854 if (!extension.get()) { | 854 if (!extension.get()) { |
| 855 extension_load_errors_[i->id] = error; | 855 extension_load_errors_[i->id] = error; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 866 void Dispatcher::OnLoadedInternal(scoped_refptr<const Extension> extension) { | 866 void Dispatcher::OnLoadedInternal(scoped_refptr<const Extension> extension) { |
| 867 extensions_.Insert(extension); | 867 extensions_.Insert(extension); |
| 868 } | 868 } |
| 869 | 869 |
| 870 void Dispatcher::OnMessageInvoke(const std::string& extension_id, | 870 void Dispatcher::OnMessageInvoke(const std::string& extension_id, |
| 871 const std::string& module_name, | 871 const std::string& module_name, |
| 872 const std::string& function_name, | 872 const std::string& function_name, |
| 873 const base::ListValue& args, | 873 const base::ListValue& args, |
| 874 bool user_gesture) { | 874 bool user_gesture) { |
| 875 InvokeModuleSystemMethod( | 875 InvokeModuleSystemMethod( |
| 876 NULL, extension_id, module_name, function_name, args, user_gesture); | 876 nullptr, extension_id, module_name, function_name, args, user_gesture); |
| 877 } | 877 } |
| 878 | 878 |
| 879 void Dispatcher::OnSetChannel(int channel) { | 879 void Dispatcher::OnSetChannel(int channel) { |
| 880 delegate_->SetChannel(channel); | 880 delegate_->SetChannel(channel); |
| 881 } | 881 } |
| 882 | 882 |
| 883 void Dispatcher::OnSetFunctionNames(const std::vector<std::string>& names) { | 883 void Dispatcher::OnSetFunctionNames(const std::vector<std::string>& names) { |
| 884 function_names_.clear(); | 884 function_names_.clear(); |
| 885 for (size_t i = 0; i < names.size(); ++i) | 885 for (size_t i = 0; i < names.size(); ++i) |
| 886 function_names_.insert(names[i]); | 886 function_names_.insert(names[i]); |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1114 Feature* feature = api_feature_provider->GetFeature(api_name); | 1114 Feature* feature = api_feature_provider->GetFeature(api_name); |
| 1115 DCHECK(feature); | 1115 DCHECK(feature); |
| 1116 | 1116 |
| 1117 // Internal APIs are included via require(api_name) from internal code | 1117 // Internal APIs are included via require(api_name) from internal code |
| 1118 // rather than chrome[api_name]. | 1118 // rather than chrome[api_name]. |
| 1119 if (feature->IsInternal()) | 1119 if (feature->IsInternal()) |
| 1120 continue; | 1120 continue; |
| 1121 | 1121 |
| 1122 // If this API has a parent feature (and isn't marked 'noparent'), | 1122 // If this API has a parent feature (and isn't marked 'noparent'), |
| 1123 // then this must be a function or event, so we should not register. | 1123 // then this must be a function or event, so we should not register. |
| 1124 if (api_feature_provider->GetParent(feature) != NULL) | 1124 if (api_feature_provider->GetParent(feature) != nullptr) |
| 1125 continue; | 1125 continue; |
| 1126 | 1126 |
| 1127 // Skip chrome.test if this isn't a test. | 1127 // Skip chrome.test if this isn't a test. |
| 1128 if (api_name == "test" && | 1128 if (api_name == "test" && |
| 1129 !CommandLine::ForCurrentProcess()->HasSwitch( | 1129 !CommandLine::ForCurrentProcess()->HasSwitch( |
| 1130 ::switches::kTestType)) { | 1130 ::switches::kTestType)) { |
| 1131 continue; | 1131 continue; |
| 1132 } | 1132 } |
| 1133 | 1133 |
| 1134 if (context->IsAnyFeatureAvailableToContext(*feature)) | 1134 if (context->IsAnyFeatureAvailableToContext(*feature)) |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1364 return v8::Handle<v8::Object>(); | 1364 return v8::Handle<v8::Object>(); |
| 1365 | 1365 |
| 1366 if (bind_name) | 1366 if (bind_name) |
| 1367 *bind_name = split.back(); | 1367 *bind_name = split.back(); |
| 1368 | 1368 |
| 1369 return bind_object.IsEmpty() ? AsObjectOrEmpty(GetOrCreateChrome(context)) | 1369 return bind_object.IsEmpty() ? AsObjectOrEmpty(GetOrCreateChrome(context)) |
| 1370 : bind_object; | 1370 : bind_object; |
| 1371 } | 1371 } |
| 1372 | 1372 |
| 1373 } // namespace extensions | 1373 } // namespace extensions |
| OLD | NEW |