summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui')
-rw-r--r--chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc16
-rw-r--r--chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc94
-rw-r--r--chrome/browser/ui/webui/options/chromeos/internet_options_handler.h4
3 files changed, 92 insertions, 22 deletions
diff --git a/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc b/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc
index 81c8ee5..16da1e5 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc
@@ -598,7 +598,7 @@ void MobileSetupHandler::StartOTASP() {
network->connected() &&
network->activation_state() == chromeos::ACTIVATION_STATE_ACTIVATED) {
chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
- DisconnectFromWirelessNetwork(network);
+ DisconnectFromNetwork(network);
} else {
EvaluateCellularNetwork(network);
}
@@ -624,7 +624,7 @@ void MobileSetupHandler::DisconnectFromNetwork(
DCHECK(network);
LOG(INFO) << "Disconnecting from: " << network->service_path();
chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
- DisconnectFromWirelessNetwork(network);
+ DisconnectFromNetwork(network);
// Disconnect will force networks to be reevaluated, so
// we don't want to continue processing on this path anymore.
evaluating_ = false;
@@ -696,7 +696,7 @@ void MobileSetupHandler::ForceReconnect(
// First, disconnect...
LOG(INFO) << "Disconnecting from " << network->service_path();
chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
- DisconnectFromWirelessNetwork(network);
+ DisconnectFromNetwork(network);
// Check the network state 3s after we disconnect to make sure.
scoped_refptr<TaskProxy> task = new TaskProxy(AsWeakPtr(),
delay);
@@ -760,8 +760,7 @@ void MobileSetupHandler::EvaluateCellularNetwork(
}
default: {
if (network->failed_or_disconnected() ||
- network->connection_state() ==
- chromeos::STATE_ACTIVATION_FAILURE) {
+ network->state() == chromeos::STATE_ACTIVATION_FAILURE) {
new_state = (network->activation_state() ==
chromeos::ACTIVATION_STATE_PARTIALLY_ACTIVATED) ?
PLAN_ACTIVATION_TRYING_OTASP :
@@ -942,7 +941,7 @@ void MobileSetupHandler::EvaluateCellularNetwork(
network->activation_state() == chromeos::ACTIVATION_STATE_ACTIVATING) &&
(network->error() == chromeos::ERROR_UNKNOWN ||
network->error() == chromeos::ERROR_OTASP_FAILED) &&
- network->connection_state() == chromeos::STATE_ACTIVATION_FAILURE) {
+ network->state() == chromeos::STATE_ACTIVATION_FAILURE) {
LOG(WARNING) << "Activation failure detected "
<< network->service_path().c_str();
switch (state_) {
@@ -1224,7 +1223,7 @@ bool MobileSetupHandler::GotActivationError(
const char* error_code = kErrorDefault;
// This is the magic for detection of errors in during activation process.
- if (network->connection_state() == chromeos::STATE_FAILURE &&
+ if (network->state() == chromeos::STATE_FAILURE &&
network->error() == chromeos::ERROR_AAA_FAILED) {
if (network->activation_state() ==
chromeos::ACTIVATION_STATE_PARTIALLY_ACTIVATED) {
@@ -1238,8 +1237,7 @@ bool MobileSetupHandler::GotActivationError(
}
}
got_error = true;
- } else if (network->connection_state() ==
- chromeos::STATE_ACTIVATION_FAILURE) {
+ } else if (network->state() == chromeos::STATE_ACTIVATION_FAILURE) {
if (network->error() == chromeos::ERROR_NEED_EVDO) {
if (network->activation_state() ==
chromeos::ACTIVATION_STATE_PARTIALLY_ACTIVATED)
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 3be430c..3f8ad78 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
@@ -648,6 +648,14 @@ void InternetOptionsHandler::PopulateDictionaryDetails(
} else {
PopulateCellularDetails(cros, cellular, &dictionary);
}
+ } else if (type == chromeos::TYPE_VPN) {
+ const chromeos::VirtualNetwork* vpn =
+ cros->FindVirtualNetworkByPath(net->service_path());
+ if (!vpn) {
+ LOG(WARNING) << "Cannot find network " << net->service_path();
+ } else {
+ PopulateVPNDetails(vpn, &dictionary);
+ }
}
web_ui_->CallJavascriptFunction(
@@ -724,6 +732,12 @@ void InternetOptionsHandler::PopulateCellularDetails(
SetActivationButtonVisibility(cellular, dictionary);
}
+void InternetOptionsHandler::PopulateVPNDetails(
+ const chromeos::VirtualNetwork* vpn,
+ DictionaryValue* dictionary) {
+ // TODO(altimofeev): implement this.
+}
+
void InternetOptionsHandler::SetActivationButtonVisibility(
const chromeos::CellularNetwork* cellular,
DictionaryValue* dictionary) {
@@ -801,8 +815,7 @@ void InternetOptionsHandler::LoginToOtherCallback(const ListValue* args) {
chromeos::NetworkLibrary* cros =
chromeos::CrosLibrary::Get()->GetNetworkLibrary();
- cros->ConnectToWifiNetwork(sec, ssid, password, std::string(), std::string(),
- true);
+ cros->ConnectToWifiNetwork(sec, ssid, password, std::string(), std::string());
}
void InternetOptionsHandler::CreateModalPopup(views::WindowDelegate* view) {
@@ -843,6 +856,8 @@ void InternetOptionsHandler::ButtonClickCallback(const ListValue* args) {
HandleWifiButtonClick(service_path, command);
} else if (type == chromeos::TYPE_CELLULAR) {
HandleCellularButtonClick(service_path, command);
+ } else if (type == chromeos::TYPE_VPN) {
+ HandleVPNButtonClick(service_path, command);
} else {
NOTREACHED();
}
@@ -862,7 +877,7 @@ void InternetOptionsHandler::HandleWifiButtonClick(
cros->ForgetWifiNetwork(service_path);
} else if (!use_settings_ui_ && service_path == kOtherNetworksFakePath) {
// Other wifi networks.
- CreateModalPopup(new chromeos::NetworkConfigView());
+ CreateModalPopup(new chromeos::NetworkConfigView(chromeos::TYPE_WIFI));
} else if ((wifi = cros->FindWifiNetworkByPath(service_path))) {
if (command == "connect") {
// Connect to wifi here. Open password page if appropriate.
@@ -883,7 +898,7 @@ void InternetOptionsHandler::HandleWifiButtonClick(
cros->ConnectToWifiNetwork(wifi);
}
} else if (command == "disconnect") {
- cros->DisconnectFromWirelessNetwork(wifi);
+ cros->DisconnectFromNetwork(wifi);
} else if (command == "options") {
PopulateDictionaryDetails(wifi, cros);
}
@@ -901,7 +916,7 @@ void InternetOptionsHandler::HandleCellularButtonClick(
if (command == "connect") {
cros->ConnectToCellularNetwork(cellular);
} else if (command == "disconnect") {
- cros->DisconnectFromWirelessNetwork(cellular);
+ cros->DisconnectFromNetwork(cellular);
} else if (command == "activate") {
Browser* browser = BrowserList::GetLastActive();
if (browser)
@@ -912,6 +927,35 @@ void InternetOptionsHandler::HandleCellularButtonClick(
}
}
+void InternetOptionsHandler::HandleVPNButtonClick(
+ const std::string& service_path,
+ const std::string& command) {
+ chromeos::NetworkLibrary* cros =
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary();
+ chromeos::VirtualNetwork* network = NULL;
+ // TODO(altimofeev): verify if service_path in condition is correct.
+ if (!use_settings_ui_ && service_path == kOtherNetworksFakePath) {
+ // Other VPN networks.
+ CreateModalPopup(new chromeos::NetworkConfigView(chromeos::TYPE_VPN));
+ } else if ((network = cros->FindVirtualNetworkByPath(service_path))) {
+ if (command == "connect") {
+ // Connect to VPN here. Open password page if appropriate.
+ if (network->NeedMoreInfoToConnect()) {
+ if (use_settings_ui_) {
+ // TODO(altimofeev): implement this.
+ } else {
+ CreateModalPopup(new chromeos::NetworkConfigView(network));
+ }
+ } else {
+ cros->ConnectToVirtualNetwork(network);
+ }
+ } else if (command == "disconnect") {
+ cros->DisconnectFromNetwork(network);
+ } else if (command == "options") {
+ PopulateDictionaryDetails(network, cros);
+ }
+ }
+}
void InternetOptionsHandler::RefreshCellularPlanCallback(
const ListValue* args) {
std::string service_path;
@@ -1000,13 +1044,16 @@ ListValue* InternetOptionsHandler::GetWiredList() {
const chromeos::EthernetNetwork* ethernet_network =
cros->ethernet_network();
const SkBitmap* icon = rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
- const SkBitmap* badge = !ethernet_network ||
+ const SkBitmap* bottom_right_badge = !ethernet_network ||
(!ethernet_network->connecting() && !ethernet_network->connected()) ?
rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED) : NULL;
+ const SkBitmap* bottom_left_badge =
+ chromeos::NetworkMenu::BadgeForPrivateNetworkStatus(ethernet_network);
if (ethernet_network) {
list->Append(GetNetwork(
ethernet_network->service_path(),
- chromeos::NetworkMenu::IconForDisplay(icon, badge),
+ chromeos::NetworkMenu::IconForDisplay(icon, bottom_right_badge, NULL,
+ bottom_left_badge),
l10n_util::GetStringUTF8(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET),
ethernet_network->connecting(),
ethernet_network->connected(),
@@ -1026,16 +1073,24 @@ ListValue* InternetOptionsHandler::GetWirelessList() {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
ListValue* list = new ListValue();
+ const chromeos::Network* active_network = cros->active_network();
+ bool has_vpn = active_network && cros->virtual_network();
+ bool vpn_on_wireless = has_vpn &&
+ active_network->type() == chromeos::TYPE_WIFI;
const chromeos::WifiNetworkVector& wifi_networks = cros->wifi_networks();
for (chromeos::WifiNetworkVector::const_iterator it =
wifi_networks.begin(); it != wifi_networks.end(); ++it) {
const SkBitmap* icon =
chromeos::NetworkMenu::IconForNetworkStrength(*it, true);
- const SkBitmap* badge = (*it)->encrypted() ?
+ const SkBitmap* bottom_right_badge = (*it)->encrypted() ?
rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : NULL;
+ const SkBitmap* bottom_left_badge =
+ vpn_on_wireless && active_network == (*it) ?
+ chromeos::NetworkMenu::BadgeForPrivateNetworkStatus(NULL) : NULL;
list->Append(GetNetwork(
(*it)->service_path(),
- chromeos::NetworkMenu::IconForDisplay(icon, badge),
+ chromeos::NetworkMenu::IconForDisplay(icon, bottom_right_badge, NULL,
+ bottom_left_badge),
(*it)->name(),
(*it)->connecting(),
(*it)->connected(),
@@ -1061,19 +1116,25 @@ ListValue* InternetOptionsHandler::GetWirelessList() {
false));
}
+ bool vpn_on_cellular = has_vpn &&
+ active_network->type() == chromeos::TYPE_CELLULAR;
const chromeos::CellularNetworkVector cellular_networks =
cros->cellular_networks();
for (chromeos::CellularNetworkVector::const_iterator it =
cellular_networks.begin(); it != cellular_networks.end(); ++it) {
const SkBitmap* icon =
chromeos::NetworkMenu::IconForNetworkStrength(*it, true);
- const SkBitmap* badge =
+ const SkBitmap* bottom_right_badge =
chromeos::NetworkMenu::BadgeForNetworkTechnology(*it);
const SkBitmap* roaming_badge =
chromeos::NetworkMenu::BadgeForRoamingStatus(*it);
+ const SkBitmap* bottom_left_badge =
+ vpn_on_cellular && active_network == (*it) ?
+ chromeos::NetworkMenu::BadgeForPrivateNetworkStatus(NULL) : NULL;
list->Append(GetNetwork(
(*it)->service_path(),
- chromeos::NetworkMenu::IconForDisplay(icon, badge, roaming_badge),
+ chromeos::NetworkMenu::IconForDisplay(icon, bottom_right_badge,
+ roaming_badge, bottom_left_badge),
(*it)->name(),
(*it)->connecting(),
(*it)->connected(),
@@ -1101,6 +1162,9 @@ ListValue* InternetOptionsHandler::GetRememberedList() {
cros->remembered_wifi_networks();
const chromeos::WifiNetworkVector& wifi_networks =
cros->wifi_networks();
+ const chromeos::Network* active_network = cros->active_network();
+ bool vpn_on_wireless = active_network && cros->virtual_network() &&
+ active_network->type() == chromeos::TYPE_WIFI;
// The remembered networks from libcros/flimflam don't include the signal
// strength, so fall back to the detected networks for this data. We
@@ -1130,11 +1194,15 @@ ListValue* InternetOptionsHandler::GetRememberedList() {
// Place the secure badge on the icon if the remembered network is
// encrypted (the matching detected network, if any, will have the same
// encrypted property by definition).
- const SkBitmap* badge = wifi->encrypted() ?
+ const SkBitmap* bottom_right_badge = wifi->encrypted() ?
rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : NULL;
+ const SkBitmap* bottom_left_badge =
+ vpn_on_wireless && active_network == wifi ?
+ chromeos::NetworkMenu::BadgeForPrivateNetworkStatus(NULL) : NULL;
list->Append(GetNetwork(
wifi->service_path(),
- chromeos::NetworkMenu::IconForDisplay(icon, badge),
+ chromeos::NetworkMenu::IconForDisplay(icon, bottom_right_badge, NULL,
+ bottom_left_badge),
wifi->name(),
wifi->connecting(),
wifi->connected(),
diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h
index dcaf218..a4bdb56 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h
@@ -63,6 +63,8 @@ class InternetOptionsHandler
const std::string& command);
void HandleCellularButtonClick(const std::string& service_path,
const std::string& command);
+ void HandleVPNButtonClick(const std::string& service_path,
+ const std::string& command);
// Initiates cellular plan data refresh. The results from libcros will be
// passed through CellularDataPlanChanged() callback method.
@@ -94,6 +96,8 @@ class InternetOptionsHandler
void PopulateCellularDetails(chromeos::NetworkLibrary* cros,
const chromeos::CellularNetwork* cellular,
DictionaryValue* dictionary);
+ void PopulateVPNDetails(const chromeos::VirtualNetwork* vpn,
+ DictionaryValue* dictionary);
// Converts CellularDataPlan structure into dictionary for JS. Formats plan
// settings into human readable texts.