Index: chrome/browser/ui/webui/chromeos/network_ui.cc |
diff --git a/chrome/browser/ui/webui/chromeos/network_ui.cc b/chrome/browser/ui/webui/chromeos/network_ui.cc |
index 24f11315f5d8f10ecfdeebc417d831014aef78c0..b4cd829b2186ee4f0eac56cb69c683cec6988d91 100644 |
--- a/chrome/browser/ui/webui/chromeos/network_ui.cc |
+++ b/chrome/browser/ui/webui/chromeos/network_ui.cc |
@@ -9,6 +9,7 @@ |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
#include "base/values.h" |
+#include "chrome/browser/chromeos/options/network_config_view.h" |
#include "chrome/browser/extensions/tab_helper.h" |
#include "chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.h" |
#include "chrome/common/url_constants.h" |
@@ -78,6 +79,10 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler { |
"getShillProperties", |
base::Bind(&NetworkConfigMessageHandler::GetShillProperties, |
base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "addNetwork", |
+ base::Bind(&NetworkConfigMessageHandler::AddNetwork, |
+ base::Unretained(this))); |
} |
private: |
@@ -132,6 +137,16 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler { |
return_arg_list); |
} |
+ void AddNetwork(const base::ListValue* args) { |
+ std::string onc_type; |
+ args->GetString(0, &onc_type); |
+ std::string shill_type = (onc_type == ::onc::network_type::kVPN) |
+ ? shill::kTypeVPN |
+ : shill::kTypeWifi; |
+ NetworkConfigView::ShowForType( |
+ shill_type, web_ui()->GetWebContents()->GetTopLevelNativeWindow()); |
+ } |
+ |
base::WeakPtrFactory<NetworkConfigMessageHandler> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(NetworkConfigMessageHandler); |