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

Side by Side Diff: chromeos/dbus/shill_service_client_stub.cc

Issue 22340006: Show notifications for Network Config errors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + move comment Created 7 years, 4 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "chromeos/dbus/shill_service_client_stub.h" 5 #include "chromeos/dbus/shill_service_client_stub.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 base::MessageLoop::current()->PostTask( 158 base::MessageLoop::current()->PostTask(
159 FROM_HERE, 159 FROM_HERE,
160 base::Bind(&PassStubListValue, 160 base::Bind(&PassStubListValue,
161 callback, base::Owned(results.release()))); 161 callback, base::Owned(results.release())));
162 } 162 }
163 163
164 void ShillServiceClientStub::Connect(const dbus::ObjectPath& service_path, 164 void ShillServiceClientStub::Connect(const dbus::ObjectPath& service_path,
165 const base::Closure& callback, 165 const base::Closure& callback,
166 const ErrorCallback& error_callback) { 166 const ErrorCallback& error_callback) {
167 VLOG(1) << "ShillServiceClientStub::Connect: " << service_path.value(); 167 VLOG(1) << "ShillServiceClientStub::Connect: " << service_path.value();
168 base::Value* service; 168 base::DictionaryValue* service_properties;
169 if (!stub_services_.Get(service_path.value(), &service)) { 169 if (!stub_services_.GetDictionary(
170 service_path.value(), &service_properties)) {
170 LOG(ERROR) << "Service not found: " << service_path.value(); 171 LOG(ERROR) << "Service not found: " << service_path.value();
171 error_callback.Run("Error.InvalidService", "Invalid Service"); 172 error_callback.Run("Error.InvalidService", "Invalid Service");
172 return; 173 return;
173 } 174 }
174 175
175 // Set any other services of the same Type to 'offline' first, before setting 176 // Set any other services of the same Type to 'offline' first, before setting
176 // State to Association which will trigger sorting Manager.Services and 177 // State to Association which will trigger sorting Manager.Services and
177 // sending an update. 178 // sending an update.
178 SetOtherServicesOffline(service_path.value()); 179 SetOtherServicesOffline(service_path.value());
179 180
180 // Set Associating. 181 // Set Associating.
181 base::StringValue associating_value(flimflam::kStateAssociation); 182 base::StringValue associating_value(flimflam::kStateAssociation);
182 SetServiceProperty(service_path.value(), 183 SetServiceProperty(service_path.value(),
183 flimflam::kStateProperty, 184 flimflam::kStateProperty,
184 associating_value); 185 associating_value);
185 186
186 // Set Online after a delay. 187 // Set Online after a delay.
187 base::TimeDelta delay; 188 base::TimeDelta delay;
188 if (CommandLine::ForCurrentProcess()->HasSwitch( 189 if (CommandLine::ForCurrentProcess()->HasSwitch(
189 chromeos::switches::kEnableStubInteractive)) { 190 chromeos::switches::kEnableStubInteractive)) {
190 const int kConnectDelaySeconds = 5; 191 const int kConnectDelaySeconds = 5;
191 delay = base::TimeDelta::FromSeconds(kConnectDelaySeconds); 192 delay = base::TimeDelta::FromSeconds(kConnectDelaySeconds);
192 } 193 }
193 base::StringValue online_value(flimflam::kStateOnline); 194 base::StringValue online_value(flimflam::kStateOnline);
195 std::string passphrase;
196 service_properties->GetStringWithoutPathExpansion(
197 flimflam::kPassphraseProperty, &passphrase);
198 if (passphrase == "failure")
199 online_value = base::StringValue(flimflam::kStateFailure);
194 base::MessageLoop::current()->PostDelayedTask( 200 base::MessageLoop::current()->PostDelayedTask(
195 FROM_HERE, 201 FROM_HERE,
196 base::Bind(&ShillServiceClientStub::SetProperty, 202 base::Bind(&ShillServiceClientStub::SetProperty,
197 weak_ptr_factory_.GetWeakPtr(), 203 weak_ptr_factory_.GetWeakPtr(),
198 service_path, 204 service_path,
199 flimflam::kStateProperty, 205 flimflam::kStateProperty,
200 online_value, 206 online_value,
201 base::Bind(&base::DoNothing), 207 base::Bind(&base::DoNothing),
202 error_callback), 208 error_callback),
203 delay); 209 delay);
204 callback.Run(); 210 callback.Run();
211 // On failure, also set the Error property.
212 if (passphrase == "failure") {
213 base::MessageLoop::current()->PostDelayedTask(
214 FROM_HERE,
215 base::Bind(&ShillServiceClientStub::SetProperty,
216 weak_ptr_factory_.GetWeakPtr(),
217 service_path,
218 flimflam::kErrorProperty,
219 base::StringValue(flimflam::kErrorBadPassphrase),
220 base::Bind(&base::DoNothing),
221 error_callback),
222 delay);
223 }
205 } 224 }
206 225
207 void ShillServiceClientStub::Disconnect(const dbus::ObjectPath& service_path, 226 void ShillServiceClientStub::Disconnect(const dbus::ObjectPath& service_path,
208 const base::Closure& callback, 227 const base::Closure& callback,
209 const ErrorCallback& error_callback) { 228 const ErrorCallback& error_callback) {
210 base::Value* service; 229 base::Value* service;
211 if (!stub_services_.Get(service_path.value(), &service)) { 230 if (!stub_services_.Get(service_path.value(), &service)) {
212 error_callback.Run("Error.InvalidService", "Invalid Service"); 231 error_callback.Run("Error.InvalidService", "Invalid Service");
213 return; 232 return;
214 } 233 }
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 properties->GetString(flimflam::kTypeProperty, &type); 581 properties->GetString(flimflam::kTypeProperty, &type);
563 if (type != service_type) 582 if (type != service_type)
564 continue; 583 continue;
565 properties->SetWithoutPathExpansion( 584 properties->SetWithoutPathExpansion(
566 flimflam::kStateProperty, 585 flimflam::kStateProperty,
567 base::Value::CreateStringValue(flimflam::kStateIdle)); 586 base::Value::CreateStringValue(flimflam::kStateIdle));
568 } 587 }
569 } 588 }
570 589
571 } // namespace chromeos 590 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/options/wifi_config_view.cc ('k') | chromeos/network/network_connection_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698