Index: chromeos/dbus/shill_service_client_stub.cc |
diff --git a/chromeos/dbus/shill_service_client_stub.cc b/chromeos/dbus/shill_service_client_stub.cc |
index 5060650f702187dc3a5680517a2e929c18f40299..61318c2b01a07d5b9932dc0de0a9b49dd6620a2b 100644 |
--- a/chromeos/dbus/shill_service_client_stub.cc |
+++ b/chromeos/dbus/shill_service_client_stub.cc |
@@ -24,6 +24,9 @@ namespace chromeos { |
namespace { |
+const char kStubPortalledWifiPath[] = "portalled_wifi"; |
+const char kStubPortalledWifiName[] = "Portalled Wifi"; |
+ |
void ErrorFunction(const std::string& error_name, |
const std::string& error_message) { |
LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message; |
@@ -51,6 +54,16 @@ ShillServiceClientStub::~ShillServiceClientStub() { |
observer_list_.begin(), observer_list_.end()); |
} |
+// static |
+bool ShillServiceClientStub::IsStubPortalledWifiEnabled( |
+ const std::string& path) { |
+ if (!CommandLine::ForCurrentProcess()-> |
+ HasSwitch(chromeos::switches::kEnableStubPortalledWifi)) { |
+ return false; |
+ } |
+ return (path == kStubPortalledWifiPath); |
oshima
2013/08/07 16:01:12
nit: nuke ()
ygorshenin1
2013/08/08 08:05:57
Done.
|
+} |
+ |
// ShillServiceClient overrides. |
void ShillServiceClientStub::AddPropertyChangedObserver( |
@@ -190,7 +203,9 @@ void ShillServiceClientStub::Connect(const dbus::ObjectPath& service_path, |
const int kConnectDelaySeconds = 5; |
delay = base::TimeDelta::FromSeconds(kConnectDelaySeconds); |
} |
- base::StringValue online_value(flimflam::kStateOnline); |
+ base::StringValue online_value( |
+ service_path.value() == kStubPortalledWifiPath ? |
+ flimflam::kStatePortal : flimflam::kStateOnline); |
base::MessageLoop::current()->PostDelayedTask( |
FROM_HERE, |
base::Bind(&ShillServiceClientStub::SetProperty, |
@@ -301,7 +316,12 @@ void ShillServiceClientStub::AddService(const std::string& service_path, |
const std::string& state, |
bool add_to_visible_list, |
bool add_to_watch_list) { |
- AddServiceWithIPConfig(service_path, name, type, state, "", |
+ std::string nstate = state; |
+ if (CommandLine::ForCurrentProcess()-> |
+ HasSwitch(chromeos::switches::kDefaultStubNetworkStateIdle)) { |
oshima
2013/08/07 16:01:12
nit: indent like this
CommandLine::ForCurrentProc
ygorshenin1
2013/08/08 08:05:57
Done.
|
+ nstate = flimflam::kStateIdle; |
+ } |
+ AddServiceWithIPConfig(service_path, name, type, nstate, "", |
add_to_visible_list, add_to_watch_list); |
} |
@@ -435,6 +455,17 @@ void ShillServiceClientStub::AddDefaultServices() { |
flimflam::kSignalStrengthProperty, |
strength_value); |
+ if (CommandLine::ForCurrentProcess()-> |
+ HasSwitch(chromeos::switches::kEnableStubPortalledWifi)) { |
oshima
2013/08/07 16:01:12
ditto
ygorshenin1
2013/08/08 08:05:57
Done.
|
+ AddService(kStubPortalledWifiPath, kStubPortalledWifiName, |
+ flimflam::kTypeWifi, |
+ flimflam::kStatePortal, |
+ add_to_visible, add_to_watchlist); |
+ SetServiceProperty(kStubPortalledWifiPath, |
+ flimflam::kSecurityProperty, |
+ base::StringValue(flimflam::kSecurityNone)); |
+ } |
+ |
// Wimax |
AddService("wimax1", "wimax1", |