OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |