| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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_message_service.h" | 5 #include "chrome/browser/extensions/extension_message_service.h" |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/singleton.h" | 8 #include "base/singleton.h" |
| 9 #include "base/stl_util-inl.h" | 9 #include "base/stl_util-inl.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 DCHECK(GET_CHANNEL_RECEIVERS_ID(channel_id) == port2_id); | 191 DCHECK(GET_CHANNEL_RECEIVERS_ID(channel_id) == port2_id); |
| 192 | 192 |
| 193 *port1 = port1_id; | 193 *port1 = port1_id; |
| 194 *port2 = port2_id; | 194 *port2 = port2_id; |
| 195 } | 195 } |
| 196 | 196 |
| 197 int ExtensionMessageService::OpenChannelToExtension( | 197 int ExtensionMessageService::OpenChannelToExtension( |
| 198 int routing_id, const std::string& source_extension_id, | 198 int routing_id, const std::string& source_extension_id, |
| 199 const std::string& target_extension_id, | 199 const std::string& target_extension_id, |
| 200 const std::string& channel_name, ResourceMessageFilter* source) { | 200 const std::string& channel_name, ResourceMessageFilter* source) { |
| 201 DCHECK_EQ(MessageLoop::current(), | 201 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); |
| 202 ChromeThread::GetMessageLoop(ChromeThread::IO)); | |
| 203 | 202 |
| 204 // Create a channel ID for both sides of the channel. | 203 // Create a channel ID for both sides of the channel. |
| 205 int port1_id = -1; | 204 int port1_id = -1; |
| 206 int port2_id = -1; | 205 int port2_id = -1; |
| 207 AllocatePortIdPair(&port1_id, &port2_id); | 206 AllocatePortIdPair(&port1_id, &port2_id); |
| 208 | 207 |
| 209 // Each side of the port is given his own port ID. When they send messages, | 208 // Each side of the port is given his own port ID. When they send messages, |
| 210 // we convert to the opposite port ID. See PostMessageFromRenderer. | 209 // we convert to the opposite port ID. See PostMessageFromRenderer. |
| 211 ui_loop_->PostTask(FROM_HERE, | 210 ui_loop_->PostTask(FROM_HERE, |
| 212 NewRunnableMethod(this, | 211 NewRunnableMethod(this, |
| 213 &ExtensionMessageService::OpenChannelToExtensionOnUIThread, | 212 &ExtensionMessageService::OpenChannelToExtensionOnUIThread, |
| 214 source->id(), routing_id, port2_id, source_extension_id, | 213 source->id(), routing_id, port2_id, source_extension_id, |
| 215 target_extension_id, channel_name)); | 214 target_extension_id, channel_name)); |
| 216 | 215 |
| 217 return port1_id; | 216 return port1_id; |
| 218 } | 217 } |
| 219 | 218 |
| 220 int ExtensionMessageService::OpenChannelToTab(int routing_id, | 219 int ExtensionMessageService::OpenChannelToTab(int routing_id, |
| 221 int tab_id, | 220 int tab_id, |
| 222 const std::string& extension_id, | 221 const std::string& extension_id, |
| 223 const std::string& channel_name, | 222 const std::string& channel_name, |
| 224 ResourceMessageFilter* source) { | 223 ResourceMessageFilter* source) { |
| 225 DCHECK_EQ(MessageLoop::current(), | 224 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); |
| 226 ChromeThread::GetMessageLoop(ChromeThread::IO)); | |
| 227 | 225 |
| 228 // Create a channel ID for both sides of the channel. | 226 // Create a channel ID for both sides of the channel. |
| 229 int port1_id = -1; | 227 int port1_id = -1; |
| 230 int port2_id = -1; | 228 int port2_id = -1; |
| 231 AllocatePortIdPair(&port1_id, &port2_id); | 229 AllocatePortIdPair(&port1_id, &port2_id); |
| 232 | 230 |
| 233 // Each side of the port is given his own port ID. When they send messages, | 231 // Each side of the port is given his own port ID. When they send messages, |
| 234 // we convert to the opposite port ID. See PostMessageFromRenderer. | 232 // we convert to the opposite port ID. See PostMessageFromRenderer. |
| 235 ui_loop_->PostTask(FROM_HERE, | 233 ui_loop_->PostTask(FROM_HERE, |
| 236 NewRunnableMethod(this, | 234 NewRunnableMethod(this, |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 | 506 |
| 509 if (current->second->opener.sender == sender) { | 507 if (current->second->opener.sender == sender) { |
| 510 CloseChannelImpl(current, GET_CHANNEL_OPENER_ID(current->first), | 508 CloseChannelImpl(current, GET_CHANNEL_OPENER_ID(current->first), |
| 511 notify_other_port); | 509 notify_other_port); |
| 512 } else if (current->second->receiver.sender == sender) { | 510 } else if (current->second->receiver.sender == sender) { |
| 513 CloseChannelImpl(current, GET_CHANNEL_RECEIVERS_ID(current->first), | 511 CloseChannelImpl(current, GET_CHANNEL_RECEIVERS_ID(current->first), |
| 514 notify_other_port); | 512 notify_other_port); |
| 515 } | 513 } |
| 516 } | 514 } |
| 517 } | 515 } |
| OLD | NEW |