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

Side by Side Diff: chrome/browser/chromeos/net/network_change_notifier_chromeos.cc

Issue 7029019: Added ChromeOS-specific NetworkChangeNotifier specialization that is wired directly to flimflam. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
Sam Leffler 2011/05/17 02:34:28 it's 2011
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/chromeos/net/network_change_notifier_chromeos.h"
6
7 #include <errno.h>
8 #include <sys/socket.h>
9
10 #include "base/compiler_specific.h"
oshima 2011/05/17 17:33:05 move this to header (for OVERRIDE)
zel 2011/05/18 00:43:33 Done.
11 #include "base/eintr_wrapper.h"
12 #include "base/task.h"
oshima 2011/05/17 17:33:05 is this used?
zel 2011/05/18 00:43:33 Done.
13 #include "base/threading/thread.h"
14 #include "chrome/browser/chromeos/cros/cros_library.h"
15 #include "net/base/net_errors.h"
16
17 namespace net {
18
19 namespace {
20
21 const int kInvalidSocket = -1;
Sam Leffler 2011/05/17 02:34:28 don't see this used
zel 2011/05/18 00:43:33 Done.
22
23 } // namespace
24
25 NetworkChangeNotifierCros::NetworkChangeNotifierCros()
26 : connected_(false),
27 has_active_network_(false),
28 connectivity_state_(chromeos::CONN_STATE_UNKNOWN) {
29
30 chromeos::NetworkLibrary* lib =
31 chromeos::CrosLibrary::Get()->GetNetworkLibrary();
32 lib->AddNetworkManagerObserver(this);
33 UpdateNetworkState(lib);
34 }
35
36 NetworkChangeNotifierCros::~NetworkChangeNotifierCros() {
37 chromeos::NetworkLibrary* lib =
38 chromeos::CrosLibrary::Get()->GetNetworkLibrary();
39 lib->RemoveNetworkManagerObserver(this);
40 }
41
42 void NetworkChangeNotifierCros::OnNetworkManagerChanged(
43 chromeos::NetworkLibrary* cros) {
44 UpdateNetworkState(cros);
45 }
46
47 bool NetworkChangeNotifierCros::IsCurrentlyOffline() const {
48 return connectivity_state_ != chromeos::CONN_STATE_UNRESTRICTED;
49 }
50
51 void NetworkChangeNotifierCros::UpdateNetworkState(
52 chromeos::NetworkLibrary* lib) {
53 const chromeos::Network* network = lib->active_network();
54 // Check if the active network, its IP address or its connectivity status had
55 // changed.
56 if ((network && !has_active_network_) || (!network && has_active_network_) ||
57 (network && (network->service_path() != service_path_ ||
58 network->connectivity_state() != connectivity_state_)) ||
59 lib->IPAddress() != ip_address_) {
oshima 2011/05/17 17:33:05 since the condition is a bit complicated, we need
oshima 2011/05/18 01:28:45 The code looks correct, but I'm still concerned ab
60 if (network) {
61 has_active_network_ = true;
62 service_path_ = network->service_path();
63 } else {
64 has_active_network_ = false;
65 service_path_.clear();
66 }
67 ip_address_ = lib->IPAddress();
Sam Leffler 2011/05/17 02:34:28 I'm not familiar with this stuff but how do these
zel 2011/05/18 00:43:33 Yes, on ChromeOS side this notification should be
68 NotifyObserversOfIPAddressChange();
69 }
70 if ((network && network->connectivity_state() != connectivity_state_) &&
Sam Leffler 2011/05/17 02:34:28 Again, not familiar with semantics here, but flimf
oshima 2011/05/17 17:33:05 If network can be null, don't we have to notify of
zel 2011/05/18 00:43:33 This part is rewritten now. Please take a look at
71 lib->Connected() != connected_) {
72 connectivity_state_ = network->connectivity_state();
73 connected_ = lib->Connected();
74 NotifyObserversOfOnlineStateChange();
oshima 2011/05/17 17:33:05 I believe NetworkChangeNotifier clients expect to
zel 2011/05/18 00:43:33 Done.
75 }
76 }
77
78 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698