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

Unified Diff: chrome/browser/extensions/api/messaging/message_service.cc

Issue 2344273002: Remove stl_util's STLDeleteContainerPairSecondPointers from extensions. (Closed)
Patch Set: fix Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/messaging/message_service.cc
diff --git a/chrome/browser/extensions/api/messaging/message_service.cc b/chrome/browser/extensions/api/messaging/message_service.cc
index 621055f95de72a203fc919d661975f8e46231243..5b4c3829bff7839f33c2214405d12a301177a635 100644
--- a/chrome/browser/extensions/api/messaging/message_service.cc
+++ b/chrome/browser/extensions/api/messaging/message_service.cc
@@ -14,8 +14,8 @@
#include "base/json/json_writer.h"
#include "base/lazy_instance.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
-#include "base/stl_util.h"
#include "build/build_config.h"
#include "chrome/browser/extensions/api/messaging/extension_message_port.h"
#include "chrome/browser/extensions/api/messaging/incognito_connectability.h"
@@ -233,8 +233,6 @@ MessageService::MessageService(BrowserContext* context)
MessageService::~MessageService() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- base::STLDeleteContainerPairSecondPointers(channels_.begin(),
- channels_.end());
channels_.clear();
}
@@ -478,7 +476,7 @@ void MessageService::OpenChannelToNativeApp(
// Keep the opener alive until the channel is closed.
channel->opener->IncrementLazyKeepaliveCount();
- AddChannel(channel.release(), receiver_port_id);
+ AddChannel(std::move(channel), receiver_port_id);
#else // !(defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX))
const char kNativeMessagingNotSupportedError[] =
"Native Messaging is not supported on this platform.";
@@ -589,10 +587,12 @@ void MessageService::OpenChannelImpl(BrowserContext* browser_context,
return;
}
- MessageChannel* channel(new MessageChannel());
+ std::unique_ptr<MessageChannel> channel_ptr =
+ base::MakeUnique<MessageChannel>();
+ MessageChannel* channel = channel_ptr.get();
Devlin 2016/09/16 20:23:19 optional nit: maybe rename to "raw_channel"?
Avi (use Gerrit) 2016/09/16 20:41:45 I'll pass. That's used for the rest of the functi
channel->opener.reset(opener.release());
channel->receiver.reset(params->receiver.release());
- AddChannel(channel, params->receiver_port_id);
+ AddChannel(std::move(channel_ptr), params->receiver_port_id);
// TODO(robwu): Could |guest_process_id| and |guest_render_frame_routing_id|
// be removed? In the past extension message routing was process-based, but
@@ -653,12 +653,13 @@ void MessageService::OpenChannelImpl(BrowserContext* browser_context,
channel->receiver->IncrementLazyKeepaliveCount();
}
-void MessageService::AddChannel(MessageChannel* channel, int receiver_port_id) {
+void MessageService::AddChannel(std::unique_ptr<MessageChannel> channel,
+ int receiver_port_id) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
int channel_id = GET_CHANNEL_ID(receiver_port_id);
CHECK(channels_.find(channel_id) == channels_.end());
- channels_[channel_id] = channel;
+ channels_[channel_id] = std::move(channel);
pending_lazy_background_page_channels_.erase(channel_id);
}
@@ -727,7 +728,7 @@ void MessageService::CloseChannelImpl(
bool notify_other_port) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- MessageChannel* channel = channel_iter->second;
+ std::unique_ptr<MessageChannel> channel = std::move(channel_iter->second);
// Remove from map to make sure that it is impossible for CloseChannelImpl to
// run twice for the same channel.
channels_.erase(channel_iter);
@@ -742,8 +743,6 @@ void MessageService::CloseChannelImpl(
// Balance the IncrementLazyKeepaliveCount() in OpenChannelImpl.
channel->opener->DecrementLazyKeepaliveCount();
channel->receiver->DecrementLazyKeepaliveCount();
-
- delete channel;
}
void MessageService::PostMessage(int source_port_id, const Message& message) {
@@ -758,7 +757,7 @@ void MessageService::PostMessage(int source_port_id, const Message& message) {
return;
}
- DispatchMessage(source_port_id, iter->second, message);
+ DispatchMessage(source_port_id, iter->second.get(), message);
}
void MessageService::EnqueuePendingMessage(int source_port_id,
@@ -1019,7 +1018,8 @@ void MessageService::DispatchPendingMessages(const PendingMessagesQueue& queue,
MessageChannelMap::iterator channel_iter = channels_.find(channel_id);
if (channel_iter != channels_.end()) {
for (const PendingMessage& message : queue) {
- DispatchMessage(message.first, channel_iter->second, message.second);
+ DispatchMessage(message.first, channel_iter->second.get(),
+ message.second);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698