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

Side by Side Diff: chrome/browser/local_discovery/service_discovery_host_client.cc

Issue 1061503008: [chrome/browser/local_discovery] favor DCHECK_CURRENTLY_ON for better logs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 "chrome/browser/local_discovery/service_discovery_host_client.h" 5 #include "chrome/browser/local_discovery/service_discovery_host_client.h"
6 6
7 #include "chrome/common/local_discovery/local_discovery_messages.h" 7 #include "chrome/common/local_discovery/local_discovery_messages.h"
8 #include "chrome/grit/generated_resources.h" 8 #include "chrome/grit/generated_resources.h"
9 #include "content/public/browser/browser_thread.h" 9 #include "content/public/browser/browser_thread.h"
10 #include "content/public/browser/utility_process_host.h" 10 #include "content/public/browser/utility_process_host.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 179
180 ServiceDiscoveryHostClient::~ServiceDiscoveryHostClient() { 180 ServiceDiscoveryHostClient::~ServiceDiscoveryHostClient() {
181 DCHECK(service_watcher_callbacks_.empty()); 181 DCHECK(service_watcher_callbacks_.empty());
182 DCHECK(service_resolver_callbacks_.empty()); 182 DCHECK(service_resolver_callbacks_.empty());
183 DCHECK(domain_resolver_callbacks_.empty()); 183 DCHECK(domain_resolver_callbacks_.empty());
184 } 184 }
185 185
186 scoped_ptr<ServiceWatcher> ServiceDiscoveryHostClient::CreateServiceWatcher( 186 scoped_ptr<ServiceWatcher> ServiceDiscoveryHostClient::CreateServiceWatcher(
187 const std::string& service_type, 187 const std::string& service_type,
188 const ServiceWatcher::UpdatedCallback& callback) { 188 const ServiceWatcher::UpdatedCallback& callback) {
189 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 189 DCHECK_CURRENTLY_ON(BrowserThread::UI);
190 return scoped_ptr<ServiceWatcher>( 190 return scoped_ptr<ServiceWatcher>(
191 new ServiceWatcherProxy(this, service_type, callback)); 191 new ServiceWatcherProxy(this, service_type, callback));
192 } 192 }
193 193
194 scoped_ptr<ServiceResolver> ServiceDiscoveryHostClient::CreateServiceResolver( 194 scoped_ptr<ServiceResolver> ServiceDiscoveryHostClient::CreateServiceResolver(
195 const std::string& service_name, 195 const std::string& service_name,
196 const ServiceResolver::ResolveCompleteCallback& callback) { 196 const ServiceResolver::ResolveCompleteCallback& callback) {
197 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 197 DCHECK_CURRENTLY_ON(BrowserThread::UI);
198 return scoped_ptr<ServiceResolver>( 198 return scoped_ptr<ServiceResolver>(
199 new ServiceResolverProxy(this, service_name, callback)); 199 new ServiceResolverProxy(this, service_name, callback));
200 } 200 }
201 201
202 scoped_ptr<LocalDomainResolver> 202 scoped_ptr<LocalDomainResolver>
203 ServiceDiscoveryHostClient::CreateLocalDomainResolver( 203 ServiceDiscoveryHostClient::CreateLocalDomainResolver(
204 const std::string& domain, 204 const std::string& domain,
205 net::AddressFamily address_family, 205 net::AddressFamily address_family,
206 const LocalDomainResolver::IPAddressCallback& callback) { 206 const LocalDomainResolver::IPAddressCallback& callback) {
207 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 207 DCHECK_CURRENTLY_ON(BrowserThread::UI);
208 return scoped_ptr<LocalDomainResolver>(new LocalDomainResolverProxy( 208 return scoped_ptr<LocalDomainResolver>(new LocalDomainResolverProxy(
209 this, domain, address_family, callback)); 209 this, domain, address_family, callback));
210 } 210 }
211 211
212 uint64 ServiceDiscoveryHostClient::RegisterWatcherCallback( 212 uint64 ServiceDiscoveryHostClient::RegisterWatcherCallback(
213 const ServiceWatcher::UpdatedCallback& callback) { 213 const ServiceWatcher::UpdatedCallback& callback) {
214 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 214 DCHECK_CURRENTLY_ON(BrowserThread::UI);
215 DCHECK(!ContainsKey(service_watcher_callbacks_, current_id_ + 1)); 215 DCHECK(!ContainsKey(service_watcher_callbacks_, current_id_ + 1));
216 service_watcher_callbacks_[++current_id_] = callback; 216 service_watcher_callbacks_[++current_id_] = callback;
217 return current_id_; 217 return current_id_;
218 } 218 }
219 219
220 uint64 ServiceDiscoveryHostClient::RegisterResolverCallback( 220 uint64 ServiceDiscoveryHostClient::RegisterResolverCallback(
221 const ServiceResolver::ResolveCompleteCallback& callback) { 221 const ServiceResolver::ResolveCompleteCallback& callback) {
222 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 222 DCHECK_CURRENTLY_ON(BrowserThread::UI);
223 DCHECK(!ContainsKey(service_resolver_callbacks_, current_id_ + 1)); 223 DCHECK(!ContainsKey(service_resolver_callbacks_, current_id_ + 1));
224 service_resolver_callbacks_[++current_id_] = callback; 224 service_resolver_callbacks_[++current_id_] = callback;
225 return current_id_; 225 return current_id_;
226 } 226 }
227 227
228 uint64 ServiceDiscoveryHostClient::RegisterLocalDomainResolverCallback( 228 uint64 ServiceDiscoveryHostClient::RegisterLocalDomainResolverCallback(
229 const LocalDomainResolver::IPAddressCallback& callback) { 229 const LocalDomainResolver::IPAddressCallback& callback) {
230 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 230 DCHECK_CURRENTLY_ON(BrowserThread::UI);
231 DCHECK(!ContainsKey(domain_resolver_callbacks_, current_id_ + 1)); 231 DCHECK(!ContainsKey(domain_resolver_callbacks_, current_id_ + 1));
232 domain_resolver_callbacks_[++current_id_] = callback; 232 domain_resolver_callbacks_[++current_id_] = callback;
233 return current_id_; 233 return current_id_;
234 } 234 }
235 235
236 void ServiceDiscoveryHostClient::UnregisterWatcherCallback(uint64 id) { 236 void ServiceDiscoveryHostClient::UnregisterWatcherCallback(uint64 id) {
237 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 237 DCHECK_CURRENTLY_ON(BrowserThread::UI);
238 service_watcher_callbacks_.erase(id); 238 service_watcher_callbacks_.erase(id);
239 } 239 }
240 240
241 void ServiceDiscoveryHostClient::UnregisterResolverCallback(uint64 id) { 241 void ServiceDiscoveryHostClient::UnregisterResolverCallback(uint64 id) {
242 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 242 DCHECK_CURRENTLY_ON(BrowserThread::UI);
243 service_resolver_callbacks_.erase(id); 243 service_resolver_callbacks_.erase(id);
244 } 244 }
245 245
246 void ServiceDiscoveryHostClient::UnregisterLocalDomainResolverCallback( 246 void ServiceDiscoveryHostClient::UnregisterLocalDomainResolverCallback(
247 uint64 id) { 247 uint64 id) {
248 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 248 DCHECK_CURRENTLY_ON(BrowserThread::UI);
249 domain_resolver_callbacks_.erase(id); 249 domain_resolver_callbacks_.erase(id);
250 } 250 }
251 251
252 void ServiceDiscoveryHostClient::Start( 252 void ServiceDiscoveryHostClient::Start(
253 const base::Closure& error_callback) { 253 const base::Closure& error_callback) {
254 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 254 DCHECK_CURRENTLY_ON(BrowserThread::UI);
255 DCHECK(!utility_host_); 255 DCHECK(!utility_host_);
256 DCHECK(error_callback_.is_null()); 256 DCHECK(error_callback_.is_null());
257 error_callback_ = error_callback; 257 error_callback_ = error_callback;
258 io_runner_->PostTask( 258 io_runner_->PostTask(
259 FROM_HERE, 259 FROM_HERE,
260 base::Bind(&ServiceDiscoveryHostClient::StartOnIOThread, this)); 260 base::Bind(&ServiceDiscoveryHostClient::StartOnIOThread, this));
261 } 261 }
262 262
263 void ServiceDiscoveryHostClient::Shutdown() { 263 void ServiceDiscoveryHostClient::Shutdown() {
264 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 264 DCHECK_CURRENTLY_ON(BrowserThread::UI);
265 io_runner_->PostTask( 265 io_runner_->PostTask(
266 FROM_HERE, 266 FROM_HERE,
267 base::Bind(&ServiceDiscoveryHostClient::ShutdownOnIOThread, this)); 267 base::Bind(&ServiceDiscoveryHostClient::ShutdownOnIOThread, this));
268 } 268 }
269 269
270 #if defined(OS_POSIX) 270 #if defined(OS_POSIX)
271 271
272 void ServiceDiscoveryHostClient::StartOnIOThread() { 272 void ServiceDiscoveryHostClient::StartOnIOThread() {
273 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 273 DCHECK_CURRENTLY_ON(BrowserThread::IO);
274 DCHECK(!utility_host_); 274 DCHECK(!utility_host_);
275 BrowserThread::PostTaskAndReplyWithResult( 275 BrowserThread::PostTaskAndReplyWithResult(
276 BrowserThread::FILE, 276 BrowserThread::FILE,
277 FROM_HERE, 277 FROM_HERE,
278 base::Bind(&GetSocketsOnFileThread), 278 base::Bind(&GetSocketsOnFileThread),
279 base::Bind(&ServiceDiscoveryHostClient::OnSocketsReady, this)); 279 base::Bind(&ServiceDiscoveryHostClient::OnSocketsReady, this));
280 } 280 }
281 281
282 void ServiceDiscoveryHostClient::OnSocketsReady(const SocketInfoList& sockets) { 282 void ServiceDiscoveryHostClient::OnSocketsReady(const SocketInfoList& sockets) {
283 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 283 DCHECK_CURRENTLY_ON(BrowserThread::IO);
284 DCHECK(!utility_host_); 284 DCHECK(!utility_host_);
285 utility_host_ = UtilityProcessHost::Create( 285 utility_host_ = UtilityProcessHost::Create(
286 this, base::MessageLoopProxy::current().get())->AsWeakPtr(); 286 this, base::MessageLoopProxy::current().get())->AsWeakPtr();
287 utility_host_->SetName(l10n_util::GetStringUTF16( 287 utility_host_->SetName(l10n_util::GetStringUTF16(
288 IDS_UTILITY_PROCESS_SERVICE_DISCOVERY_HANDLER_NAME)); 288 IDS_UTILITY_PROCESS_SERVICE_DISCOVERY_HANDLER_NAME));
289 utility_host_->EnableMDns(); 289 utility_host_->EnableMDns();
290 utility_host_->StartBatchMode(); 290 utility_host_->StartBatchMode();
291 if (sockets.empty()) { 291 if (sockets.empty()) {
292 ShutdownOnIOThread(); 292 ShutdownOnIOThread();
293 return; 293 return;
294 } 294 }
295 utility_host_->Send(new LocalDiscoveryMsg_SetSockets(sockets)); 295 utility_host_->Send(new LocalDiscoveryMsg_SetSockets(sockets));
296 // Send messages for requests made during network enumeration. 296 // Send messages for requests made during network enumeration.
297 for (size_t i = 0; i < delayed_messages_.size(); ++i) 297 for (size_t i = 0; i < delayed_messages_.size(); ++i)
298 utility_host_->Send(delayed_messages_[i]); 298 utility_host_->Send(delayed_messages_[i]);
299 delayed_messages_.weak_clear(); 299 delayed_messages_.weak_clear();
300 } 300 }
301 301
302 #else // OS_POSIX 302 #else // OS_POSIX
303 303
304 void ServiceDiscoveryHostClient::StartOnIOThread() { 304 void ServiceDiscoveryHostClient::StartOnIOThread() {
305 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 305 DCHECK_CURRENTLY_ON(BrowserThread::IO);
306 DCHECK(!utility_host_); 306 DCHECK(!utility_host_);
307 utility_host_ = UtilityProcessHost::Create( 307 utility_host_ = UtilityProcessHost::Create(
308 this, base::MessageLoopProxy::current().get())->AsWeakPtr(); 308 this, base::MessageLoopProxy::current().get())->AsWeakPtr();
309 utility_host_->SetName(l10n_util::GetStringUTF16( 309 utility_host_->SetName(l10n_util::GetStringUTF16(
310 IDS_UTILITY_PROCESS_SERVICE_DISCOVERY_HANDLER_NAME)); 310 IDS_UTILITY_PROCESS_SERVICE_DISCOVERY_HANDLER_NAME));
311 utility_host_->EnableMDns(); 311 utility_host_->EnableMDns();
312 utility_host_->StartBatchMode(); 312 utility_host_->StartBatchMode();
313 // Windows does not enumerate networks here. 313 // Windows does not enumerate networks here.
314 DCHECK(delayed_messages_.empty()); 314 DCHECK(delayed_messages_.empty());
315 } 315 }
316 316
317 #endif // OS_POSIX 317 #endif // OS_POSIX
318 318
319 void ServiceDiscoveryHostClient::ShutdownOnIOThread() { 319 void ServiceDiscoveryHostClient::ShutdownOnIOThread() {
320 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 320 DCHECK_CURRENTLY_ON(BrowserThread::IO);
321 if (utility_host_) { 321 if (utility_host_) {
322 utility_host_->Send(new LocalDiscoveryMsg_ShutdownLocalDiscovery); 322 utility_host_->Send(new LocalDiscoveryMsg_ShutdownLocalDiscovery);
323 utility_host_->EndBatchMode(); 323 utility_host_->EndBatchMode();
324 utility_host_.reset(); 324 utility_host_.reset();
325 } 325 }
326 error_callback_ = base::Closure(); 326 error_callback_ = base::Closure();
327 } 327 }
328 328
329 void ServiceDiscoveryHostClient::Send(IPC::Message* msg) { 329 void ServiceDiscoveryHostClient::Send(IPC::Message* msg) {
330 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 330 DCHECK_CURRENTLY_ON(BrowserThread::UI);
331 io_runner_->PostTask( 331 io_runner_->PostTask(
332 FROM_HERE, 332 FROM_HERE,
333 base::Bind(&ServiceDiscoveryHostClient::SendOnIOThread, this, msg)); 333 base::Bind(&ServiceDiscoveryHostClient::SendOnIOThread, this, msg));
334 } 334 }
335 335
336 void ServiceDiscoveryHostClient::SendOnIOThread(IPC::Message* msg) { 336 void ServiceDiscoveryHostClient::SendOnIOThread(IPC::Message* msg) {
337 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 337 DCHECK_CURRENTLY_ON(BrowserThread::IO);
338 if (utility_host_) { 338 if (utility_host_) {
339 utility_host_->Send(msg); 339 utility_host_->Send(msg);
340 } else { 340 } else {
341 delayed_messages_.push_back(msg); 341 delayed_messages_.push_back(msg);
342 } 342 }
343 } 343 }
344 344
345 void ServiceDiscoveryHostClient::OnProcessCrashed(int exit_code) { 345 void ServiceDiscoveryHostClient::OnProcessCrashed(int exit_code) {
346 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 346 DCHECK_CURRENTLY_ON(BrowserThread::IO);
347 DCHECK(!utility_host_); 347 DCHECK(!utility_host_);
348 OnError(); 348 OnError();
349 } 349 }
350 350
351 bool ServiceDiscoveryHostClient::OnMessageReceived( 351 bool ServiceDiscoveryHostClient::OnMessageReceived(
352 const IPC::Message& message) { 352 const IPC::Message& message) {
353 bool handled = true; 353 bool handled = true;
354 IPC_BEGIN_MESSAGE_MAP(ServiceDiscoveryHostClient, message) 354 IPC_BEGIN_MESSAGE_MAP(ServiceDiscoveryHostClient, message)
355 IPC_MESSAGE_HANDLER(LocalDiscoveryHostMsg_Error, OnError) 355 IPC_MESSAGE_HANDLER(LocalDiscoveryHostMsg_Error, OnError)
356 IPC_MESSAGE_HANDLER(LocalDiscoveryHostMsg_WatcherCallback, 356 IPC_MESSAGE_HANDLER(LocalDiscoveryHostMsg_WatcherCallback,
(...skipping 15 matching lines...) Expand all
372 372
373 for (WatcherCallbacks::iterator i = service_watcher_callbacks.begin(); 373 for (WatcherCallbacks::iterator i = service_watcher_callbacks.begin();
374 i != service_watcher_callbacks.end(); i++) { 374 i != service_watcher_callbacks.end(); i++) {
375 if (!i->second.is_null()) { 375 if (!i->second.is_null()) {
376 i->second.Run(ServiceWatcher::UPDATE_INVALIDATED, ""); 376 i->second.Run(ServiceWatcher::UPDATE_INVALIDATED, "");
377 } 377 }
378 } 378 }
379 } 379 }
380 380
381 void ServiceDiscoveryHostClient::OnError() { 381 void ServiceDiscoveryHostClient::OnError() {
382 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 382 DCHECK_CURRENTLY_ON(BrowserThread::IO);
383 if (!error_callback_.is_null()) 383 if (!error_callback_.is_null())
384 callback_runner_->PostTask(FROM_HERE, error_callback_); 384 callback_runner_->PostTask(FROM_HERE, error_callback_);
385 } 385 }
386 386
387 void ServiceDiscoveryHostClient::OnWatcherCallback( 387 void ServiceDiscoveryHostClient::OnWatcherCallback(
388 uint64 id, 388 uint64 id,
389 ServiceWatcher::UpdateType update, 389 ServiceWatcher::UpdateType update,
390 const std::string& service_name) { 390 const std::string& service_name) {
391 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 391 DCHECK_CURRENTLY_ON(BrowserThread::IO);
392 callback_runner_->PostTask( 392 callback_runner_->PostTask(
393 FROM_HERE, 393 FROM_HERE,
394 base::Bind(&ServiceDiscoveryHostClient::RunWatcherCallback, this, id, 394 base::Bind(&ServiceDiscoveryHostClient::RunWatcherCallback, this, id,
395 update, service_name)); 395 update, service_name));
396 } 396 }
397 397
398 void ServiceDiscoveryHostClient::OnResolverCallback( 398 void ServiceDiscoveryHostClient::OnResolverCallback(
399 uint64 id, 399 uint64 id,
400 ServiceResolver::RequestStatus status, 400 ServiceResolver::RequestStatus status,
401 const ServiceDescription& description) { 401 const ServiceDescription& description) {
402 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 402 DCHECK_CURRENTLY_ON(BrowserThread::IO);
403 callback_runner_->PostTask( 403 callback_runner_->PostTask(
404 FROM_HERE, 404 FROM_HERE,
405 base::Bind(&ServiceDiscoveryHostClient::RunResolverCallback, this, id, 405 base::Bind(&ServiceDiscoveryHostClient::RunResolverCallback, this, id,
406 status, description)); 406 status, description));
407 } 407 }
408 408
409 void ServiceDiscoveryHostClient::OnLocalDomainResolverCallback( 409 void ServiceDiscoveryHostClient::OnLocalDomainResolverCallback(
410 uint64 id, 410 uint64 id,
411 bool success, 411 bool success,
412 const net::IPAddressNumber& ip_address_ipv4, 412 const net::IPAddressNumber& ip_address_ipv4,
413 const net::IPAddressNumber& ip_address_ipv6) { 413 const net::IPAddressNumber& ip_address_ipv6) {
414 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 414 DCHECK_CURRENTLY_ON(BrowserThread::IO);
415 callback_runner_->PostTask( 415 callback_runner_->PostTask(
416 FROM_HERE, 416 FROM_HERE,
417 base::Bind(&ServiceDiscoveryHostClient::RunLocalDomainResolverCallback, 417 base::Bind(&ServiceDiscoveryHostClient::RunLocalDomainResolverCallback,
418 this, id, success, ip_address_ipv4, ip_address_ipv6)); 418 this, id, success, ip_address_ipv4, ip_address_ipv6));
419 } 419 }
420 420
421 void ServiceDiscoveryHostClient::RunWatcherCallback( 421 void ServiceDiscoveryHostClient::RunWatcherCallback(
422 uint64 id, 422 uint64 id,
423 ServiceWatcher::UpdateType update, 423 ServiceWatcher::UpdateType update,
424 const std::string& service_name) { 424 const std::string& service_name) {
425 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 425 DCHECK_CURRENTLY_ON(BrowserThread::UI);
426 WatcherCallbacks::iterator it = service_watcher_callbacks_.find(id); 426 WatcherCallbacks::iterator it = service_watcher_callbacks_.find(id);
427 if (it != service_watcher_callbacks_.end() && !it->second.is_null()) 427 if (it != service_watcher_callbacks_.end() && !it->second.is_null())
428 it->second.Run(update, service_name); 428 it->second.Run(update, service_name);
429 } 429 }
430 430
431 void ServiceDiscoveryHostClient::RunResolverCallback( 431 void ServiceDiscoveryHostClient::RunResolverCallback(
432 uint64 id, 432 uint64 id,
433 ServiceResolver::RequestStatus status, 433 ServiceResolver::RequestStatus status,
434 const ServiceDescription& description) { 434 const ServiceDescription& description) {
435 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 435 DCHECK_CURRENTLY_ON(BrowserThread::UI);
436 ResolverCallbacks::iterator it = service_resolver_callbacks_.find(id); 436 ResolverCallbacks::iterator it = service_resolver_callbacks_.find(id);
437 if (it != service_resolver_callbacks_.end() && !it->second.is_null()) 437 if (it != service_resolver_callbacks_.end() && !it->second.is_null())
438 it->second.Run(status, description); 438 it->second.Run(status, description);
439 } 439 }
440 440
441 void ServiceDiscoveryHostClient::RunLocalDomainResolverCallback( 441 void ServiceDiscoveryHostClient::RunLocalDomainResolverCallback(
442 uint64 id, 442 uint64 id,
443 bool success, 443 bool success,
444 const net::IPAddressNumber& ip_address_ipv4, 444 const net::IPAddressNumber& ip_address_ipv4,
445 const net::IPAddressNumber& ip_address_ipv6) { 445 const net::IPAddressNumber& ip_address_ipv6) {
446 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 446 DCHECK_CURRENTLY_ON(BrowserThread::UI);
447 DomainResolverCallbacks::iterator it = domain_resolver_callbacks_.find(id); 447 DomainResolverCallbacks::iterator it = domain_resolver_callbacks_.find(id);
448 if (it != domain_resolver_callbacks_.end() && !it->second.is_null()) 448 if (it != domain_resolver_callbacks_.end() && !it->second.is_null())
449 it->second.Run(success, ip_address_ipv4, ip_address_ipv6); 449 it->second.Run(success, ip_address_ipv4, ip_address_ipv6);
450 } 450 }
451 451
452 } // namespace local_discovery 452 } // namespace local_discovery
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698