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

Unified Diff: extensions/browser/api/networking_private/networking_private_chromeos.cc

Issue 1272003002: Allow networkingPrivate to request configure UI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Feedback Created 5 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 side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api/networking_private/networking_private_chromeos.cc
diff --git a/extensions/browser/api/networking_private/networking_private_chromeos.cc b/extensions/browser/api/networking_private/networking_private_chromeos.cc
index 83db6529f8fb88a56b1f64320e97677ab70478ff..006d09ea7861335bde50aaefe21a9190c647909c 100644
--- a/extensions/browser/api/networking_private/networking_private_chromeos.cc
+++ b/extensions/browser/api/networking_private/networking_private_chromeos.cc
@@ -166,8 +166,8 @@ NetworkingPrivateChromeOS::NetworkingPrivateChromeOS(
content::BrowserContext* browser_context,
scoped_ptr<VerifyDelegate> verify_delegate)
: NetworkingPrivateDelegate(verify_delegate.Pass()),
- browser_context_(browser_context) {
-}
+ browser_context_(browser_context),
+ weak_ptr_factory_(this) {}
NetworkingPrivateChromeOS::~NetworkingPrivateChromeOS() {
}
@@ -310,10 +310,28 @@ void NetworkingPrivateChromeOS::StartConnect(
const bool check_error_state = false;
NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
service_path, success_callback,
- base::Bind(&NetworkHandlerFailureCallback, failure_callback),
+ base::Bind(&NetworkingPrivateChromeOS::ConnectFailureCallback,
+ weak_ptr_factory_.GetWeakPtr(), guid, success_callback,
+ failure_callback),
check_error_state);
}
+void NetworkingPrivateChromeOS::ConnectFailureCallback(
+ const std::string& guid,
+ const VoidCallback& success_callback,
+ const FailureCallback& failure_callback,
+ const std::string& error_name,
+ scoped_ptr<base::DictionaryValue> error_data) {
+ // TODO(stevenjb): Temporary workaround to show the configuration UI.
+ // Eventually the caller (e.g. Settings) should handle any failures and
+ // show its own configuration UI. crbug.com/380937.
+ if (ui_delegate()->HandleConnectFailed(guid, error_name)) {
+ success_callback.Run();
+ return;
+ }
+ failure_callback.Run(error_name);
+}
+
void NetworkingPrivateChromeOS::StartDisconnect(
const std::string& guid,
const VoidCallback& success_callback,

Powered by Google App Engine
This is Rietveld 408576698