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

Side by Side Diff: content/browser/message_port_service.cc

Issue 921013002: Optionally have MessagePort pass data as base::Value, part 1. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@n-c-move-v8-value-converter
Patch Set: Update singly-included comment Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/message_port_service.h" 5 #include "content/browser/message_port_service.h"
6 6
7 #include "content/common/message_port_messages.h" 7 #include "content/common/message_port_messages.h"
8 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
9 #include "content/public/browser/message_port_delegate.h" 9 #include "content/public/browser/message_port_delegate.h"
10 10
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 } 126 }
127 127
128 DCHECK(message_ports_[remote_message_port_id].entangled_message_port_id == 128 DCHECK(message_ports_[remote_message_port_id].entangled_message_port_id ==
129 MSG_ROUTING_NONE); 129 MSG_ROUTING_NONE);
130 message_ports_[remote_message_port_id].entangled_message_port_id = 130 message_ports_[remote_message_port_id].entangled_message_port_id =
131 local_message_port_id; 131 local_message_port_id;
132 } 132 }
133 133
134 void MessagePortService::PostMessage( 134 void MessagePortService::PostMessage(
135 int sender_message_port_id, 135 int sender_message_port_id,
136 const base::string16& message, 136 const MessagePortMessage& message,
137 const std::vector<int>& sent_message_port_ids) { 137 const std::vector<int>& sent_message_port_ids) {
138 DCHECK_CURRENTLY_ON(BrowserThread::IO); 138 DCHECK_CURRENTLY_ON(BrowserThread::IO);
139 if (!message_ports_.count(sender_message_port_id)) { 139 if (!message_ports_.count(sender_message_port_id)) {
140 NOTREACHED(); 140 NOTREACHED();
141 return; 141 return;
142 } 142 }
143 143
144 int entangled_message_port_id = 144 int entangled_message_port_id =
145 message_ports_[sender_message_port_id].entangled_message_port_id; 145 message_ports_[sender_message_port_id].entangled_message_port_id;
146 if (entangled_message_port_id == MSG_ROUTING_NONE) 146 if (entangled_message_port_id == MSG_ROUTING_NONE)
147 return; // Process could have crashed. 147 return; // Process could have crashed.
148 148
149 if (!message_ports_.count(entangled_message_port_id)) { 149 if (!message_ports_.count(entangled_message_port_id)) {
150 NOTREACHED(); 150 NOTREACHED();
151 return; 151 return;
152 } 152 }
153 153
154 PostMessageTo(entangled_message_port_id, message, sent_message_port_ids); 154 PostMessageTo(entangled_message_port_id, message, sent_message_port_ids);
155 } 155 }
156 156
157 void MessagePortService::PostMessageTo( 157 void MessagePortService::PostMessageTo(
158 int message_port_id, 158 int message_port_id,
159 const base::string16& message, 159 const MessagePortMessage& message,
160 const std::vector<int>& sent_message_port_ids) { 160 const std::vector<int>& sent_message_port_ids) {
161 if (!message_ports_.count(message_port_id)) { 161 if (!message_ports_.count(message_port_id)) {
162 NOTREACHED(); 162 NOTREACHED();
163 return; 163 return;
164 } 164 }
165 for (size_t i = 0; i < sent_message_port_ids.size(); ++i) { 165 for (size_t i = 0; i < sent_message_port_ids.size(); ++i) {
166 if (!message_ports_.count(sent_message_port_ids[i])) { 166 if (!message_ports_.count(sent_message_port_ids[i])) {
167 NOTREACHED(); 167 NOTREACHED();
168 return; 168 return;
169 } 169 }
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 // Do the disentanglement (and be paranoid about the other side existing 318 // Do the disentanglement (and be paranoid about the other side existing
319 // just in case something unusual happened during entanglement). 319 // just in case something unusual happened during entanglement).
320 if (message_ports_.count(entangled_id)) { 320 if (message_ports_.count(entangled_id)) {
321 message_ports_[entangled_id].entangled_message_port_id = MSG_ROUTING_NONE; 321 message_ports_[entangled_id].entangled_message_port_id = MSG_ROUTING_NONE;
322 } 322 }
323 } 323 }
324 message_ports_.erase(erase_item); 324 message_ports_.erase(erase_item);
325 } 325 }
326 326
327 } // namespace content 327 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698