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

Side by Side Diff: chrome/common/local_discovery/service_discovery_client_impl.cc

Issue 1167163002: chrome: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added some missing message_loop.h includes. Created 5 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <utility> 5 #include <utility>
6 6
7 #include "base/location.h"
7 #include "base/logging.h" 8 #include "base/logging.h"
8 #include "base/memory/singleton.h" 9 #include "base/memory/singleton.h"
9 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/single_thread_task_runner.h"
10 #include "base/stl_util.h" 11 #include "base/stl_util.h"
12 #include "base/thread_task_runner_handle.h"
11 #include "chrome/common/local_discovery/service_discovery_client_impl.h" 13 #include "chrome/common/local_discovery/service_discovery_client_impl.h"
12 #include "net/dns/dns_protocol.h" 14 #include "net/dns/dns_protocol.h"
13 #include "net/dns/record_rdata.h" 15 #include "net/dns/record_rdata.h"
14 16
15 namespace local_discovery { 17 namespace local_discovery {
16 18
17 namespace { 19 namespace {
18 // TODO(noamsml): Make this configurable through the LocalDomainResolver 20 // TODO(noamsml): Make this configurable through the LocalDomainResolver
19 // interface. 21 // interface.
20 const int kLocalDomainSecondAddressTimeoutMs = 100; 22 const int kLocalDomainSecondAddressTimeoutMs = 100;
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 found->second->set_has_srv(true); 265 found->second->set_has_srv(true);
264 } 266 }
265 } 267 }
266 268
267 void ServiceWatcherImpl::DeferUpdate(ServiceWatcher::UpdateType update_type, 269 void ServiceWatcherImpl::DeferUpdate(ServiceWatcher::UpdateType update_type,
268 const std::string& service_name) { 270 const std::string& service_name) {
269 ServiceListenersMap::iterator found = services_.find(service_name); 271 ServiceListenersMap::iterator found = services_.find(service_name);
270 272
271 if (found != services_.end() && !found->second->update_pending()) { 273 if (found != services_.end() && !found->second->update_pending()) {
272 found->second->set_update_pending(true); 274 found->second->set_update_pending(true);
273 base::MessageLoop::current()->PostTask( 275 base::ThreadTaskRunnerHandle::Get()->PostTask(
274 FROM_HERE, 276 FROM_HERE, base::Bind(&ServiceWatcherImpl::DeliverDeferredUpdate,
275 base::Bind(&ServiceWatcherImpl::DeliverDeferredUpdate, AsWeakPtr(), 277 AsWeakPtr(), update_type, service_name));
276 update_type, service_name));
277 } 278 }
278 } 279 }
279 280
280 void ServiceWatcherImpl::DeliverDeferredUpdate( 281 void ServiceWatcherImpl::DeliverDeferredUpdate(
281 ServiceWatcher::UpdateType update_type, const std::string& service_name) { 282 ServiceWatcher::UpdateType update_type, const std::string& service_name) {
282 ServiceListenersMap::iterator found = services_.find(service_name); 283 ServiceListenersMap::iterator found = services_.find(service_name);
283 284
284 if (found != services_.end()) { 285 if (found != services_.end()) {
285 found->second->set_update_pending(false); 286 found->second->set_update_pending(false);
286 if (!callback_.is_null()) 287 if (!callback_.is_null())
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 } 320 }
320 321
321 void ServiceWatcherImpl::OnNsecRecord(const std::string& name, 322 void ServiceWatcherImpl::OnNsecRecord(const std::string& name,
322 unsigned rrtype) { 323 unsigned rrtype) {
323 // Do nothing. It is an error for hosts to broadcast an NSEC record for PTR 324 // Do nothing. It is an error for hosts to broadcast an NSEC record for PTR
324 // on any name. 325 // on any name.
325 } 326 }
326 327
327 void ServiceWatcherImpl::ScheduleQuery(int timeout_seconds) { 328 void ServiceWatcherImpl::ScheduleQuery(int timeout_seconds) {
328 if (timeout_seconds <= kMaxRequeryTimeSeconds) { 329 if (timeout_seconds <= kMaxRequeryTimeSeconds) {
329 base::MessageLoop::current()->PostDelayedTask( 330 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
330 FROM_HERE, 331 FROM_HERE, base::Bind(&ServiceWatcherImpl::SendQuery, AsWeakPtr(),
331 base::Bind(&ServiceWatcherImpl::SendQuery, 332 timeout_seconds * 2 /*next_timeout_seconds*/,
332 AsWeakPtr(), 333 false /*force_update*/),
333 timeout_seconds * 2 /*next_timeout_seconds*/,
334 false /*force_update*/),
335 base::TimeDelta::FromSeconds(timeout_seconds)); 334 base::TimeDelta::FromSeconds(timeout_seconds));
336 } 335 }
337 } 336 }
338 337
339 void ServiceWatcherImpl::SendQuery(int next_timeout_seconds, 338 void ServiceWatcherImpl::SendQuery(int next_timeout_seconds,
340 bool force_update) { 339 bool force_update) {
341 CreateTransaction(true /*network*/, false /*cache*/, force_update, 340 CreateTransaction(true /*network*/, false /*cache*/, force_update,
342 &transaction_network_); 341 &transaction_network_);
343 ScheduleQuery(next_timeout_seconds); 342 ScheduleQuery(next_timeout_seconds);
344 } 343 }
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 address_ipv6_ = rdata->address(); 552 address_ipv6_ = rdata->address();
554 } 553 }
555 } 554 }
556 555
557 if (transactions_finished_ == 1 && 556 if (transactions_finished_ == 1 &&
558 address_family_ == net::ADDRESS_FAMILY_UNSPECIFIED) { 557 address_family_ == net::ADDRESS_FAMILY_UNSPECIFIED) {
559 timeout_callback_.Reset(base::Bind( 558 timeout_callback_.Reset(base::Bind(
560 &LocalDomainResolverImpl::SendResolvedAddresses, 559 &LocalDomainResolverImpl::SendResolvedAddresses,
561 base::Unretained(this))); 560 base::Unretained(this)));
562 561
563 base::MessageLoop::current()->PostDelayedTask( 562 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
564 FROM_HERE, 563 FROM_HERE, timeout_callback_.callback(),
565 timeout_callback_.callback(),
566 base::TimeDelta::FromMilliseconds(kLocalDomainSecondAddressTimeoutMs)); 564 base::TimeDelta::FromMilliseconds(kLocalDomainSecondAddressTimeoutMs));
567 } else if (transactions_finished_ == 2 565 } else if (transactions_finished_ == 2
568 || address_family_ != net::ADDRESS_FAMILY_UNSPECIFIED) { 566 || address_family_ != net::ADDRESS_FAMILY_UNSPECIFIED) {
569 SendResolvedAddresses(); 567 SendResolvedAddresses();
570 } 568 }
571 } 569 }
572 570
573 bool LocalDomainResolverImpl::IsSuccess() { 571 bool LocalDomainResolverImpl::IsSuccess() {
574 return !address_ipv4_.empty() || !address_ipv6_.empty(); 572 return !address_ipv4_.empty() || !address_ipv6_.empty();
575 } 573 }
576 574
577 void LocalDomainResolverImpl::SendResolvedAddresses() { 575 void LocalDomainResolverImpl::SendResolvedAddresses() {
578 transaction_a_.reset(); 576 transaction_a_.reset();
579 transaction_aaaa_.reset(); 577 transaction_aaaa_.reset();
580 timeout_callback_.Cancel(); 578 timeout_callback_.Cancel();
581 callback_.Run(IsSuccess(), address_ipv4_, address_ipv6_); 579 callback_.Run(IsSuccess(), address_ipv4_, address_ipv6_);
582 } 580 }
583 581
584 } // namespace local_discovery 582 } // namespace local_discovery
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698