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

Side by Side Diff: chrome/browser/local_discovery/service_discovery_client_mac.mm

Issue 1127553002: [chrome/browser/local_discovery] Replace MessageLoopProxy usage with ThreadTaskRunnerHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Build break : Dependency in components/wifi classes Created 5 years, 7 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_client_mac.h" 5 #include "chrome/browser/local_discovery/service_discovery_client_mac.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 #import <arpa/inet.h> 8 #import <arpa/inet.h>
9 #import <net/if_dl.h> 9 #import <net/if_dl.h>
10 10
11 #include "base/memory/singleton.h" 11 #include "base/memory/singleton.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/single_thread_task_runner.h"
14 #include "base/thread_task_runner_handle.h"
13 #include "base/threading/thread.h" 15 #include "base/threading/thread.h"
14 16
15 using local_discovery::ServiceWatcherImplMac; 17 using local_discovery::ServiceWatcherImplMac;
16 using local_discovery::ServiceResolverImplMac; 18 using local_discovery::ServiceResolverImplMac;
17 19
18 @interface NetServiceBrowserDelegate 20 @interface NetServiceBrowserDelegate
19 : NSObject<NSNetServiceBrowserDelegate, NSNetServiceDelegate> { 21 : NSObject<NSNetServiceBrowserDelegate, NSNetServiceDelegate> {
20 @private 22 @private
21 ServiceWatcherImplMac::NetServiceBrowserContainer* container_; // weak. 23 ServiceWatcherImplMac::NetServiceBrowserContainer* container_; // weak.
22 base::scoped_nsobject<NSMutableArray> services_; 24 base::scoped_nsobject<NSMutableArray> services_;
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 new base::Thread(kServiceDiscoveryThreadName)); 152 new base::Thread(kServiceDiscoveryThreadName));
151 // Only TYPE_UI uses an NSRunLoop. 153 // Only TYPE_UI uses an NSRunLoop.
152 base::Thread::Options options(base::MessageLoop::TYPE_UI, 0); 154 base::Thread::Options options(base::MessageLoop::TYPE_UI, 0);
153 service_discovery_thread_->StartWithOptions(options); 155 service_discovery_thread_->StartWithOptions(options);
154 } 156 }
155 } 157 }
156 158
157 ServiceWatcherImplMac::NetServiceBrowserContainer::NetServiceBrowserContainer( 159 ServiceWatcherImplMac::NetServiceBrowserContainer::NetServiceBrowserContainer(
158 const std::string& service_type, 160 const std::string& service_type,
159 const ServiceWatcher::UpdatedCallback& callback, 161 const ServiceWatcher::UpdatedCallback& callback,
160 scoped_refptr<base::MessageLoopProxy> service_discovery_runner) 162 scoped_refptr<base::SingleThreadTaskRunner> service_discovery_runner)
161 : service_type_(service_type), 163 : service_type_(service_type),
162 callback_(callback), 164 callback_(callback),
163 callback_runner_(base::MessageLoopProxy::current()), 165 callback_runner_(base::ThreadTaskRunnerHandle::Get()),
164 service_discovery_runner_(service_discovery_runner), 166 service_discovery_runner_(service_discovery_runner),
165 weak_factory_(this) {} 167 weak_factory_(this) {
168 }
166 169
167 ServiceWatcherImplMac::NetServiceBrowserContainer:: 170 ServiceWatcherImplMac::NetServiceBrowserContainer::
168 ~NetServiceBrowserContainer() { 171 ~NetServiceBrowserContainer() {
169 DCHECK(IsOnServiceDiscoveryThread()); 172 DCHECK(IsOnServiceDiscoveryThread());
170 } 173 }
171 174
172 void ServiceWatcherImplMac::NetServiceBrowserContainer::Start() { 175 void ServiceWatcherImplMac::NetServiceBrowserContainer::Start() {
173 service_discovery_runner_->PostTask( 176 service_discovery_runner_->PostTask(
174 FROM_HERE, 177 FROM_HERE,
175 base::Bind(&NetServiceBrowserContainer::StartOnDiscoveryThread, 178 base::Bind(&NetServiceBrowserContainer::StartOnDiscoveryThread,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 callback_runner_->PostTask(FROM_HERE, base::Bind(callback_, update, service)); 222 callback_runner_->PostTask(FROM_HERE, base::Bind(callback_, update, service));
220 } 223 }
221 224
222 void ServiceWatcherImplMac::NetServiceBrowserContainer::DeleteSoon() { 225 void ServiceWatcherImplMac::NetServiceBrowserContainer::DeleteSoon() {
223 service_discovery_runner_->DeleteSoon(FROM_HERE, this); 226 service_discovery_runner_->DeleteSoon(FROM_HERE, this);
224 } 227 }
225 228
226 ServiceWatcherImplMac::ServiceWatcherImplMac( 229 ServiceWatcherImplMac::ServiceWatcherImplMac(
227 const std::string& service_type, 230 const std::string& service_type,
228 const ServiceWatcher::UpdatedCallback& callback, 231 const ServiceWatcher::UpdatedCallback& callback,
229 scoped_refptr<base::MessageLoopProxy> service_discovery_runner) 232 scoped_refptr<base::SingleThreadTaskRunner> service_discovery_runner)
230 : service_type_(service_type), 233 : service_type_(service_type),
231 callback_(callback), 234 callback_(callback),
232 started_(false), 235 started_(false),
233 weak_factory_(this) { 236 weak_factory_(this) {
234 container_.reset(new NetServiceBrowserContainer( 237 container_.reset(new NetServiceBrowserContainer(
235 service_type, 238 service_type,
236 base::Bind(&ServiceWatcherImplMac::OnServicesUpdate, 239 base::Bind(&ServiceWatcherImplMac::OnServicesUpdate,
237 weak_factory_.GetWeakPtr()), 240 weak_factory_.GetWeakPtr()),
238 service_discovery_runner)); 241 service_discovery_runner));
239 } 242 }
(...skipping 26 matching lines...) Expand all
266 void ServiceWatcherImplMac::OnServicesUpdate(ServiceWatcher::UpdateType update, 269 void ServiceWatcherImplMac::OnServicesUpdate(ServiceWatcher::UpdateType update,
267 const std::string& service) { 270 const std::string& service) {
268 VLOG(1) << "ServiceWatcherImplMac::OnServicesUpdate: " 271 VLOG(1) << "ServiceWatcherImplMac::OnServicesUpdate: "
269 << service + "." + service_type_; 272 << service + "." + service_type_;
270 callback_.Run(update, service + "." + service_type_); 273 callback_.Run(update, service + "." + service_type_);
271 } 274 }
272 275
273 ServiceResolverImplMac::NetServiceContainer::NetServiceContainer( 276 ServiceResolverImplMac::NetServiceContainer::NetServiceContainer(
274 const std::string& service_name, 277 const std::string& service_name,
275 const ServiceResolver::ResolveCompleteCallback& callback, 278 const ServiceResolver::ResolveCompleteCallback& callback,
276 scoped_refptr<base::MessageLoopProxy> service_discovery_runner) 279 scoped_refptr<base::SingleThreadTaskRunner> service_discovery_runner)
277 : service_name_(service_name), 280 : service_name_(service_name),
278 callback_(callback), 281 callback_(callback),
279 callback_runner_(base::MessageLoopProxy::current()), 282 callback_runner_(base::ThreadTaskRunnerHandle::Get()),
280 service_discovery_runner_(service_discovery_runner), 283 service_discovery_runner_(service_discovery_runner),
281 weak_factory_(this) {} 284 weak_factory_(this) {
285 }
282 286
283 ServiceResolverImplMac::NetServiceContainer::~NetServiceContainer() { 287 ServiceResolverImplMac::NetServiceContainer::~NetServiceContainer() {
284 DCHECK(IsOnServiceDiscoveryThread()); 288 DCHECK(IsOnServiceDiscoveryThread());
285 } 289 }
286 290
287 void ServiceResolverImplMac::NetServiceContainer::StartResolving() { 291 void ServiceResolverImplMac::NetServiceContainer::StartResolving() {
288 service_discovery_runner_->PostTask( 292 service_discovery_runner_->PostTask(
289 FROM_HERE, 293 FROM_HERE,
290 base::Bind(&NetServiceContainer::StartResolvingOnDiscoveryThread, 294 base::Bind(&NetServiceContainer::StartResolvingOnDiscoveryThread,
291 weak_factory_.GetWeakPtr())); 295 weak_factory_.GetWeakPtr()));
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 } 363 }
360 364
361 void ServiceResolverImplMac::NetServiceContainer::SetServiceForTesting( 365 void ServiceResolverImplMac::NetServiceContainer::SetServiceForTesting(
362 base::scoped_nsobject<NSNetService> service) { 366 base::scoped_nsobject<NSNetService> service) {
363 service_ = service; 367 service_ = service;
364 } 368 }
365 369
366 ServiceResolverImplMac::ServiceResolverImplMac( 370 ServiceResolverImplMac::ServiceResolverImplMac(
367 const std::string& service_name, 371 const std::string& service_name,
368 const ServiceResolver::ResolveCompleteCallback& callback, 372 const ServiceResolver::ResolveCompleteCallback& callback,
369 scoped_refptr<base::MessageLoopProxy> service_discovery_runner) 373 scoped_refptr<base::SingleThreadTaskRunner> service_discovery_runner)
370 : service_name_(service_name), 374 : service_name_(service_name),
371 callback_(callback), 375 callback_(callback),
372 has_resolved_(false), 376 has_resolved_(false),
373 weak_factory_(this) { 377 weak_factory_(this) {
374 container_.reset(new NetServiceContainer( 378 container_.reset(new NetServiceContainer(
375 service_name, 379 service_name,
376 base::Bind(&ServiceResolverImplMac::OnResolveComplete, 380 base::Bind(&ServiceResolverImplMac::OnResolveComplete,
377 weak_factory_.GetWeakPtr()), 381 weak_factory_.GetWeakPtr()),
378 service_discovery_runner)); 382 service_discovery_runner));
379 } 383 }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 container_->OnResolveUpdate(local_discovery::ServiceResolver::STATUS_SUCCESS); 470 container_->OnResolveUpdate(local_discovery::ServiceResolver::STATUS_SUCCESS);
467 } 471 }
468 472
469 - (void)netService:(NSNetService *)sender 473 - (void)netService:(NSNetService *)sender
470 didNotResolve:(NSDictionary *)errorDict { 474 didNotResolve:(NSDictionary *)errorDict {
471 container_->OnResolveUpdate( 475 container_->OnResolveUpdate(
472 local_discovery::ServiceResolver::STATUS_REQUEST_TIMEOUT); 476 local_discovery::ServiceResolver::STATUS_REQUEST_TIMEOUT);
473 } 477 }
474 478
475 @end 479 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698