Index: chromeos/dbus/fake_shill_manager_client.cc |
diff --git a/chromeos/dbus/fake_shill_manager_client.cc b/chromeos/dbus/fake_shill_manager_client.cc |
index 117f85013be85739a469398546f6bad78024f8da..7198acd70dcc7040e1758ccbfdd5c1472fec8b68 100644 |
--- a/chromeos/dbus/fake_shill_manager_client.cc |
+++ b/chromeos/dbus/fake_shill_manager_client.cc |
@@ -453,25 +453,29 @@ void FakeShillManagerClient::AddManagerService(const std::string& service_path, |
} |
void FakeShillManagerClient::RemoveManagerService( |
- const std::string& service_path) { |
+ const std::string& service_path, |
+ bool remove_from_complete_list) { |
base::StringValue service_path_value(service_path); |
+ if (remove_from_complete_list && |
+ GetListProperty(shill::kServiceCompleteListProperty)->Remove( |
+ service_path_value, NULL)) { |
+ CallNotifyObserversPropertyChanged(shill::kServiceCompleteListProperty); |
pneubeck (no reviews)
2014/05/16 13:18:55
I think the reason for this notification missing w
stevenjb
2014/05/16 17:35:23
Ah, you are correct, I'll remove these. Done.
|
+ } |
if (GetListProperty(shill::kServicesProperty)->Remove( |
service_path_value, NULL)) { |
CallNotifyObserversPropertyChanged(shill::kServicesProperty); |
} |
- GetListProperty(shill::kServiceCompleteListProperty)->Remove( |
- service_path_value, NULL); |
if (GetListProperty(shill::kServiceWatchListProperty)->Remove( |
service_path_value, NULL)) { |
- CallNotifyObserversPropertyChanged( |
- shill::kServiceWatchListProperty); |
+ CallNotifyObserversPropertyChanged(shill::kServiceWatchListProperty); |
} |
} |
void FakeShillManagerClient::ClearManagerServices() { |
- GetListProperty(shill::kServicesProperty)->Clear(); |
GetListProperty(shill::kServiceCompleteListProperty)->Clear(); |
+ GetListProperty(shill::kServicesProperty)->Clear(); |
GetListProperty(shill::kServiceWatchListProperty)->Clear(); |
+ CallNotifyObserversPropertyChanged(shill::kServiceCompleteListProperty); |
pneubeck (no reviews)
2014/05/16 13:18:55
ditto
stevenjb
2014/05/16 17:35:23
Done.
|
CallNotifyObserversPropertyChanged(shill::kServicesProperty); |
CallNotifyObserversPropertyChanged(shill::kServiceWatchListProperty); |
} |
@@ -488,6 +492,11 @@ void FakeShillManagerClient::ServiceStateChanged( |
} |
void FakeShillManagerClient::SortManagerServices() { |
+ SortServiceList(shill::kServicesProperty); |
+ SortServiceList(shill::kServiceCompleteListProperty); |
+} |
+ |
+void FakeShillManagerClient::SortServiceList(const std::string& property) { |
static const char* ordered_types[] = { |
shill::kTypeEthernet, |
shill::kTypeWifi, |
@@ -495,28 +504,26 @@ void FakeShillManagerClient::SortManagerServices() { |
shill::kTypeWimax, |
shill::kTypeVPN |
}; |
- base::ListValue* service_list = GetListProperty(shill::kServicesProperty); |
- if (!service_list || service_list->empty()) { |
- if (!default_service_.empty()) { |
- default_service_.clear(); |
- base::StringValue empty_value(""); |
- SetManagerProperty(shill::kDefaultServiceProperty, empty_value); |
- } |
- return; |
- } |
+ |
+ base::ListValue* service_list = GetListProperty(property); |
std::vector<std::string> active_services; |
std::vector<std::string> inactive_services; |
- for (size_t i = 0; i < arraysize(ordered_types); ++i) { |
- AppendServicesForType(service_list, ordered_types[i], |
+ if (service_list && !service_list->empty()) { |
+ for (size_t i = 0; i < arraysize(ordered_types); ++i) { |
+ AppendServicesForType(service_list, ordered_types[i], |
&active_services, &inactive_services); |
+ } |
+ service_list->Clear(); |
+ for (size_t i = 0; i < active_services.size(); ++i) |
+ service_list->AppendString(active_services[i]); |
+ for (size_t i = 0; i < inactive_services.size(); ++i) |
+ service_list->AppendString(inactive_services[i]); |
+ |
+ CallNotifyObserversPropertyChanged(property); |
} |
- service_list->Clear(); |
- for (size_t i = 0; i < active_services.size(); ++i) |
- service_list->AppendString(active_services[i]); |
- for (size_t i = 0; i < inactive_services.size(); ++i) |
- service_list->AppendString(inactive_services[i]); |
- CallNotifyObserversPropertyChanged(shill::kServicesProperty); |
+ if (property != shill::kServicesProperty) |
+ return; |
// Set the first active service as the Default service. |
std::string new_default_service; |
@@ -540,6 +547,8 @@ void FakeShillManagerClient::SortManagerServices() { |
base::StringValue default_service_value(default_service_); |
SetManagerProperty(shill::kDefaultServiceProperty, default_service_value); |
} |
+ |
+ return; |
} |