OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 DCHECK_EQ(listeners_[event_name].count(render_process_id), 1u) | 170 DCHECK_EQ(listeners_[event_name].count(render_process_id), 1u) |
171 << " PID=" << render_process_id << " event=" << event_name; | 171 << " PID=" << render_process_id << " event=" << event_name; |
172 listeners_[event_name].erase(render_process_id); | 172 listeners_[event_name].erase(render_process_id); |
173 | 173 |
174 if (extension_devtools_manager_.get()) { | 174 if (extension_devtools_manager_.get()) { |
175 extension_devtools_manager_->RemoveEventListener(event_name, | 175 extension_devtools_manager_->RemoveEventListener(event_name, |
176 render_process_id); | 176 render_process_id); |
177 } | 177 } |
178 } | 178 } |
179 | 179 |
| 180 bool ExtensionMessageService::HasEventListener( |
| 181 const std::string& event_name) { |
| 182 return (listeners_.find(event_name) != listeners_.end() && |
| 183 !listeners_[event_name].empty()); |
| 184 } |
| 185 |
180 void ExtensionMessageService::AllocatePortIdPair(int* port1, int* port2) { | 186 void ExtensionMessageService::AllocatePortIdPair(int* port1, int* port2) { |
181 AutoLock lock(next_port_id_lock_); | 187 AutoLock lock(next_port_id_lock_); |
182 | 188 |
183 // TODO(mpcomplete): what happens when this wraps? | 189 // TODO(mpcomplete): what happens when this wraps? |
184 int port1_id = next_port_id_++; | 190 int port1_id = next_port_id_++; |
185 int port2_id = next_port_id_++; | 191 int port2_id = next_port_id_++; |
186 | 192 |
187 DCHECK(IS_OPENER_PORT_ID(port1_id)); | 193 DCHECK(IS_OPENER_PORT_ID(port1_id)); |
188 DCHECK(GET_OPPOSITE_PORT_ID(port1_id) == port2_id); | 194 DCHECK(GET_OPPOSITE_PORT_ID(port1_id) == port2_id); |
189 DCHECK(GET_OPPOSITE_PORT_ID(port2_id) == port1_id); | 195 DCHECK(GET_OPPOSITE_PORT_ID(port2_id) == port1_id); |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 | 550 |
545 if (current->second->opener.sender == sender) { | 551 if (current->second->opener.sender == sender) { |
546 CloseChannelImpl(current, GET_CHANNEL_OPENER_ID(current->first), | 552 CloseChannelImpl(current, GET_CHANNEL_OPENER_ID(current->first), |
547 notify_other_port); | 553 notify_other_port); |
548 } else if (current->second->receiver.sender == sender) { | 554 } else if (current->second->receiver.sender == sender) { |
549 CloseChannelImpl(current, GET_CHANNEL_RECEIVERS_ID(current->first), | 555 CloseChannelImpl(current, GET_CHANNEL_RECEIVERS_ID(current->first), |
550 notify_other_port); | 556 notify_other_port); |
551 } | 557 } |
552 } | 558 } |
553 } | 559 } |
OLD | NEW |