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

Unified Diff: chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc

Issue 1017443002: Allow users to add third-party VPNs from the settings page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@f_3_460428_update_details_dialog
Patch Set: Fixed closure errors. Addressed comments. Created 5 years, 9 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: chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
index 403125c093aa9912e8bc80c0636f3607273ab7bc..7171b089e0b47b774e7cbe81af80633c1205e585 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
@@ -106,7 +106,8 @@ const char kSetNetworkGuidMessage[] = "setNetworkGuid";
const char kRemoveNetworkMessage[] = "removeNetwork";
// TODO(stevenjb): Deprecate these and integrate with settings Web UI.
-const char kAddConnectionMessage[] = "addConnection";
+const char kAddVPNConnectionMessage[] = "addVPNConnection";
+const char kAddNonVPNConnectionMessage[] = "addNonVPNConnection";
const char kConfigureNetworkMessage[] = "configureNetwork";
const char kActivateNetworkMessage[] = "activateNetwork";
@@ -289,8 +290,11 @@ void InternetOptionsHandler::InitializePage() {
}
void InternetOptionsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(kAddConnectionMessage,
- base::Bind(&InternetOptionsHandler::AddConnection,
+ web_ui()->RegisterMessageCallback(kAddVPNConnectionMessage,
+ base::Bind(&InternetOptionsHandler::AddVPNConnection,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(kAddNonVPNConnectionMessage,
+ base::Bind(&InternetOptionsHandler::AddNonVPNConnection,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(kRemoveNetworkMessage,
base::Bind(&InternetOptionsHandler::RemoveNetwork,
@@ -565,7 +569,27 @@ const PrefService* InternetOptionsHandler::GetPrefs() const {
return Profile::FromWebUI(web_ui())->GetPrefs();
}
-void InternetOptionsHandler::AddConnection(const base::ListValue* args) {
+
+void InternetOptionsHandler::AddVPNConnection(const base::ListValue* args) {
+ if (args->empty()) {
+ // Show the "add network" dialog for the built-in OpenVPN/L2TP provider.
+ NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow());
+ return;
+ }
+
+ std::string extension_id;
+ if (args->GetSize() != 1 || !args->GetString(0, &extension_id)) {
+ NOTREACHED();
+ return;
+ }
+
+ // Request that the third-party VPN provider identified by |provider_id|
+ // show its "add network" dialog.
+ chromeos::VpnServiceFactory::GetForBrowserContext(
+ GetProfileForPrimaryUser())->SendShowAddDialogToExtension(extension_id);
+}
+
+void InternetOptionsHandler::AddNonVPNConnection(const base::ListValue* args) {
std::string onc_type;
if (args->GetSize() != 1 || !args->GetString(0, &onc_type)) {
NOTREACHED();
@@ -573,8 +597,6 @@ void InternetOptionsHandler::AddConnection(const base::ListValue* args) {
}
if (onc_type == ::onc::network_type::kWiFi) {
NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow());
- } else if (onc_type == ::onc::network_type::kVPN) {
- NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow());
} else if (onc_type == ::onc::network_type::kCellular) {
ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow());
} else {

Powered by Google App Engine
This is Rietveld 408576698