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

Side by Side Diff: net/base/network_change_notifier_linux.cc

Issue 11360108: Start calculating new combined NetworkChangeNotifier signal (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address szym's first round of comments Created 8 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This implementation of NetworkChangeNotifier's offline state detection 5 // This implementation of NetworkChangeNotifier's offline state detection
6 // depends on D-Bus and NetworkManager, and is known to work on at least 6 // depends on D-Bus and NetworkManager, and is known to work on at least
7 // GNOME version 2.30. If D-Bus or NetworkManager are unavailable, this 7 // GNOME version 2.30. If D-Bus or NetworkManager are unavailable, this
8 // implementation will always behave as if it is online. 8 // implementation will always behave as if it is online.
9 9
10 #include "net/base/network_change_notifier_linux.h" 10 #include "net/base/network_change_notifier_linux.h"
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 NetworkChangeNotifierLinux* NetworkChangeNotifierLinux::Create() { 299 NetworkChangeNotifierLinux* NetworkChangeNotifierLinux::Create() {
300 return new NetworkChangeNotifierLinux(NULL); 300 return new NetworkChangeNotifierLinux(NULL);
301 } 301 }
302 302
303 NetworkChangeNotifierLinux* NetworkChangeNotifierLinux::CreateForTest( 303 NetworkChangeNotifierLinux* NetworkChangeNotifierLinux::CreateForTest(
304 dbus::Bus* bus) { 304 dbus::Bus* bus) {
305 return new NetworkChangeNotifierLinux(bus); 305 return new NetworkChangeNotifierLinux(bus);
306 } 306 }
307 307
308 NetworkChangeNotifierLinux::NetworkChangeNotifierLinux(dbus::Bus* bus) 308 NetworkChangeNotifierLinux::NetworkChangeNotifierLinux(dbus::Bus* bus)
309 : notifier_thread_(new Thread(bus)) { 309 : NetworkChangeNotifier(NetworkChangeCalculatorParamsLinux()),
310 notifier_thread_(new Thread(bus)) {
310 // We create this notifier thread because the notification implementation 311 // We create this notifier thread because the notification implementation
311 // needs a MessageLoopForIO, and there's no guarantee that 312 // needs a MessageLoopForIO, and there's no guarantee that
312 // MessageLoop::current() meets that criterion. 313 // MessageLoop::current() meets that criterion.
313 base::Thread::Options thread_options(MessageLoop::TYPE_IO, 0); 314 base::Thread::Options thread_options(MessageLoop::TYPE_IO, 0);
314 notifier_thread_->StartWithOptions(thread_options); 315 notifier_thread_->StartWithOptions(thread_options);
315 } 316 }
316 317
317 NetworkChangeNotifierLinux::~NetworkChangeNotifierLinux() { 318 NetworkChangeNotifierLinux::~NetworkChangeNotifierLinux() {
318 // Stopping from here allows us to sanity- check that the notifier 319 // Stopping from here allows us to sanity- check that the notifier
319 // thread shut down properly. 320 // thread shut down properly.
320 notifier_thread_->Stop(); 321 notifier_thread_->Stop();
321 } 322 }
322 323
324 // static
325 NetworkChangeNotifier::NetworkChangeCalculatorParams
326 NetworkChangeNotifierLinux::NetworkChangeCalculatorParamsLinux() {
327 NetworkChangeCalculatorParams params;
328 // Delay values arrived at by simple experimentation and adjusted so as to
329 // produce a single signal when switching between network connections.
330 params.ip_address_offline_delay_ = base::TimeDelta::FromMilliseconds(1500);
331 params.ip_address_online_delay_ = base::TimeDelta::FromMilliseconds(500);
332 params.connection_type_offline_delay_ =
333 base::TimeDelta::FromMilliseconds(1500);
334 params.connection_type_online_delay_ = base::TimeDelta::FromMilliseconds(500);
335 return params;
336 }
337
323 NetworkChangeNotifier::ConnectionType 338 NetworkChangeNotifier::ConnectionType
324 NetworkChangeNotifierLinux::GetCurrentConnectionType() const { 339 NetworkChangeNotifierLinux::GetCurrentConnectionType() const {
325 return notifier_thread_->GetCurrentConnectionType(); 340 return notifier_thread_->GetCurrentConnectionType();
326 } 341 }
327 342
328 const internal::AddressTrackerLinux* 343 const internal::AddressTrackerLinux*
329 NetworkChangeNotifierLinux::GetAddressTrackerInternal() const { 344 NetworkChangeNotifierLinux::GetAddressTrackerInternal() const {
330 return notifier_thread_->address_tracker(); 345 return notifier_thread_->address_tracker();
331 } 346 }
332 347
333 } // namespace net 348 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698