diff options
5 files changed, 42 insertions, 358 deletions
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.html b/chrome/browser/resources/options/chromeos/internet_detail.html index 53e285b..79e499e 100644 --- a/chrome/browser/resources/options/chromeos/internet_detail.html +++ b/chrome/browser/resources/options/chromeos/internet_detail.html @@ -300,6 +300,8 @@ i18n-content="detailsInternetDismiss"></button> <button id="detailsInternetLogin" i18n-content="connect_button"></button> + <button id="detailsInternetDisconnect" + i18n-content="disconnect_button"></button> <button id="activateDetails" i18n-content="activate_button"></button> <button id="buyplanDetails" diff --git a/chrome/browser/resources/options/chromeos/internet_network_element.js b/chrome/browser/resources/options/chromeos/internet_network_element.js index c56ecc1..007793f 100644 --- a/chrome/browser/resources/options/chromeos/internet_network_element.js +++ b/chrome/browser/resources/options/chromeos/internet_network_element.js @@ -91,22 +91,12 @@ cr.define('options.internet', function() { if (data && (data.networkType == 1 || (data.networkType == 5 && data.activation_state != 1))) return; - for (var i = 0; i < this.childNodes.length; i++) { - if (this.childNodes[i] != item) - this.childNodes[i].hidePassword(); - } - InternetOptions.unlockUpdates(); // If clicked on other networks item. if (data && data.servicePath == '?') { - if (InternetOptions.useSettingsUI && - data.type != options.internet.Constants.TYPE_CELLULAR) { - item.showOtherLogin(); - } else { - chrome.send('buttonClickCallback', - [String(data.networkType), - data.servicePath, - 'connect']); - } + chrome.send('buttonClickCallback', + [String(data.networkType), + data.servicePath, + 'connect']); } } } @@ -272,191 +262,6 @@ cr.define('options.internet', function() { this.appendChild(buttonsDiv); }, - showPassword: function() { - if (this.connecting) - return; - - InternetOptions.lockUpdates(); - - var passwordDiv = this.ownerDocument.createElement('div'); - passwordDiv.className = 'network-password'; - var passInput = this.ownerDocument.createElement('input'); - passwordDiv.appendChild(passInput); - passInput.placeholder = localStrings.getString('inetPassPrompt'); - passInput.type = 'password'; - var buttonEl = this.ownerDocument.createElement('button'); - buttonEl.textContent = localStrings.getString('inetLogin'); - buttonEl.addEventListener('click', this.handleLogin_); - buttonEl.servicePath = this.data.servicePath; - buttonEl.style.right = '0'; - buttonEl.style.position = 'absolute'; - buttonEl.style.visibility = 'visible'; - buttonEl.disabled = true; - - var togglePassLabel = this.ownerDocument.createElement('label'); - togglePassLabel.style.display = 'inline'; - var togglePassSpan = this.ownerDocument.createElement('span'); - var togglePassCheckbox = this.ownerDocument.createElement('input'); - togglePassCheckbox.type = 'checkbox'; - togglePassCheckbox.checked = false; - togglePassCheckbox.target = passInput; - togglePassCheckbox.addEventListener('change', this.handleShowPass_); - togglePassSpan.textContent = localStrings.getString('inetShowPass'); - togglePassLabel.appendChild(togglePassCheckbox); - togglePassLabel.appendChild(togglePassSpan); - passwordDiv.appendChild(togglePassLabel); - - // Disable login button if there is no password. - passInput.addEventListener('keyup', function(e) { - buttonEl.disabled = - passInput.value.length < Constants.MIN_WIRELESS_PASSWORD_LENGTH; - }); - - passwordDiv.appendChild(buttonEl); - this.connecting = true; - this.appendChild(passwordDiv); - }, - - handleShowPass_: function(e) { - var target = e.target; - if (target.checked) { - target.target.type = 'text'; - } else { - target.target.type = 'password'; - } - }, - - hidePassword: function() { - this.connecting = false; - var children = this.childNodes; - // Remove all password divs starting from the end. - for (var i = children.length-1; i >= 0; i--) { - if (children[i].className == 'network-password') { - this.removeChild(children[i]); - } - } - }, - - showOtherLogin: function() { - if (this.connecting) - return; - - InternetOptions.lockUpdates(); - - var ssidDiv = this.ownerDocument.createElement('div'); - ssidDiv.className = 'network-password'; - var ssidInput = this.ownerDocument.createElement('input'); - ssidInput.placeholder = localStrings.getString('inetSsidPrompt'); - ssidDiv.appendChild(ssidInput); - - var securityDiv = this.ownerDocument.createElement('div'); - securityDiv.className = 'network-password'; - var securityInput = this.ownerDocument.createElement('select'); - var securityNoneOption = this.ownerDocument.createElement('option'); - securityNoneOption.value = 'none'; - securityNoneOption.label = localStrings.getString('inetSecurityNone'); - securityInput.appendChild(securityNoneOption); - var securityWEPOption = this.ownerDocument.createElement('option'); - securityWEPOption.value = 'wep'; - securityWEPOption.label = localStrings.getString('inetSecurityWEP'); - securityInput.appendChild(securityWEPOption); - var securityWPAOption = this.ownerDocument.createElement('option'); - securityWPAOption.value = 'wpa'; - securityWPAOption.label = localStrings.getString('inetSecurityWPA'); - securityInput.appendChild(securityWPAOption); - var securityRSNOption = this.ownerDocument.createElement('option'); - securityRSNOption.value = 'rsn'; - securityRSNOption.label = localStrings.getString('inetSecurityRSN'); - securityInput.appendChild(securityRSNOption); - securityDiv.appendChild(securityInput); - - var passwordDiv = this.ownerDocument.createElement('div'); - passwordDiv.className = 'network-password'; - var passInput = this.ownerDocument.createElement('input'); - passInput.placeholder = localStrings.getString('inetPassPrompt'); - passInput.type = 'password'; - passInput.disabled = true; - passwordDiv.appendChild(passInput); - - var togglePassLabel = this.ownerDocument.createElement('label'); - togglePassLabel.style.display = 'inline'; - var togglePassSpan = this.ownerDocument.createElement('span'); - var togglePassCheckbox = this.ownerDocument.createElement('input'); - togglePassCheckbox.type = 'checkbox'; - togglePassCheckbox.checked = false; - togglePassCheckbox.target = passInput; - togglePassCheckbox.addEventListener('change', this.handleShowPass_); - togglePassSpan.textContent = localStrings.getString('inetShowPass'); - togglePassLabel.appendChild(togglePassCheckbox); - togglePassLabel.appendChild(togglePassSpan); - passwordDiv.appendChild(togglePassLabel); - - var buttonEl = - this.createButton_('inetLogin', true, this.handleOtherLogin_); - buttonEl.style.right = '0'; - buttonEl.style.position = 'absolute'; - buttonEl.style.visibility = 'visible'; - buttonEl.disabled = true; - passwordDiv.appendChild(buttonEl); - - this.appendChild(ssidDiv); - this.appendChild(securityDiv); - this.appendChild(passwordDiv); - - securityInput.addEventListener('change', function(e) { - // If changed to None, then disable passInput and clear it out. - // Otherwise enable it. - if (securityInput.value == 'none') { - passInput.disabled = true; - passInput.value = ''; - } else { - passInput.disabled = false; - } - }); - - var keyup_listener = function(e) { - // Disable login button if ssid is not long enough or - // password is not long enough (unless no security) - var ssid_good = - ssidInput.value.length >= Constants.MIN_WIRELESS_SSID_LENGTH; - var pass_good = - securityInput.value == 'none' || - passInput.value.length >= Constants.MIN_WIRELESS_PASSWORD_LENGTH; - buttonEl.disabled = !ssid_good || !pass_good; - }; - ssidInput.addEventListener('keyup', keyup_listener); - securityInput.addEventListener('change', keyup_listener); - passInput.addEventListener('keyup', keyup_listener); - this.connecting = true; - }, - - handleLogin_: function(e) { - // The user has clicked on the Login button. It's now safe to - // unclock UI updates. - InternetOptions.unlockUpdates(); - var el = e.target; - var parent = el.parentNode; - el.disabled = true; - var input = parent.firstChild; - input.disabled = true; - chrome.send('loginToNetwork', [el.servicePath, input.value]); - }, - - handleOtherLogin_: function(e) { - // See comments in handleLogin_(). - InternetOptions.unlockUpdates(); - var el = e.target; - var parent = el.parentNode.parentNode; - el.disabled = true; - var ssid = parent.childNodes[1].firstChild; - var sec = parent.childNodes[2].firstChild; - var pass = parent.childNodes[3].firstChild; - sec.disabled = true; - ssid.disabled = true; - pass.disabled = true; - chrome.send('loginToOtherNetwork', [sec.value, ssid.value, pass.value]); - }, - /** * Creates a button for interacting with a network. * @param {Object} name The name of the localStrings to use for the text. diff --git a/chrome/browser/resources/options/chromeos/internet_options.js b/chrome/browser/resources/options/chromeos/internet_options.js index c3e1b2f..e4e590ab 100644 --- a/chrome/browser/resources/options/chromeos/internet_options.js +++ b/chrome/browser/resources/options/chromeos/internet_options.js @@ -59,6 +59,10 @@ cr.define('options', function() { InternetOptions.setDetails(); InternetOptions.loginFromDetails(); }); + $('detailsInternetDisconnect').addEventListener('click', function(event) { + InternetOptions.setDetails(); + InternetOptions.disconnectNetwork(); + }); $('activateDetails').addEventListener('click', function(event) { InternetOptions.activateFromDetails(); }); @@ -153,34 +157,21 @@ cr.define('options', function() { cr.defineProperty(InternetOptions, 'accesslocked', cr.PropertyKind.JS, InternetOptions.prototype.updateControls_); - // A boolean flag from InternerOptionsHandler to indicate whether to use - // inline WebUI for ethernet/wifi login/options. - InternetOptions.useSettingsUI = false; - - // Network status update will be blocked while typing in WEP password etc. - InternetOptions.updateLocked = false; - InternetOptions.updatePending = false; - InternetOptions.updataData = null; - InternetOptions.loginFromDetails = function () { var data = $('connectionState').data; var servicePath = data.servicePath; - if (data.type == options.internet.Constants.TYPE_WIFI) { - if (data.certInPkcs) { - chrome.send('loginToCertNetwork',[String(servicePath), - String(data.certPath), - String(data.ident)]); - } else { - chrome.send('loginToCertNetwork',[String(servicePath), - String($('inetCert').value), - String($('inetIdent').value), - String($('inetCertPass').value)]); - } - } else if (data.type == options.internet.Constants.TYPE_CELLULAR) { - chrome.send('buttonClickCallback', [String(data.type), - servicePath, - 'connect']); - } + chrome.send('buttonClickCallback', [String(data.type), + servicePath, + 'connect']); + OptionsPage.closeOverlay(); + }; + + InternetOptions.disconnectNetwork = function () { + var data = $('connectionState').data; + var servicePath = data.servicePath; + chrome.send('buttonClickCallback', [String(data.type), + servicePath, + 'disconnect']); OptionsPage.closeOverlay(); }; @@ -248,20 +239,6 @@ cr.define('options', function() { $('disable-cellular').hidden = true; $('data-roaming').hidden = true; } - - InternetOptions.useSettingsUI = data.networkUseSettingsUI; - }; - - // Prevent clobbering of password input field. - InternetOptions.lockUpdates = function () { - InternetOptions.updateLocked = true; - }; - - InternetOptions.unlockUpdates = function () { - InternetOptions.updateLocked = false; - if (InternetOptions.updatePending) { - InternetOptions.refreshNetworkData(InternetOptions.updateData); - } }; // @@ -274,23 +251,16 @@ cr.define('options', function() { return; } self.accesslocked = false; - if (InternetOptions.updateLocked) { - InternetOptions.updateData = data; - InternetOptions.updatePending = true; - } else { - $('wired-list').load(data.wiredList); - $('wireless-list').load(data.wirelessList); - $('vpn-list').load(data.vpnList); - $('remembered-list').load(data.rememberedList); - - $('wired-section').hidden = (data.wiredList.length == 0); - $('wireless-section').hidden = (data.wirelessList.length == 0); - $('vpn-section').hidden = (data.vpnList.length == 0); - InternetOptions.setupAttributes(data); - $('remembered-section').hidden = (data.rememberedList.length == 0); - InternetOptions.updateData = null; - InternetOptions.updatePending = false; - } + $('wired-list').load(data.wiredList); + $('wireless-list').load(data.wirelessList); + $('vpn-list').load(data.vpnList); + $('remembered-list').load(data.rememberedList); + + $('wired-section').hidden = (data.wiredList.length == 0); + $('wireless-section').hidden = (data.wirelessList.length == 0); + $('vpn-section').hidden = (data.vpnList.length == 0); + InternetOptions.setupAttributes(data); + $('remembered-section').hidden = (data.rememberedList.length == 0); }; // TODO(xiyuan): This function seems belonging to DetailsInternetPage. @@ -320,11 +290,6 @@ cr.define('options', function() { $('sim-card-lock-enabled').checked = data.requirePin; }; - InternetOptions.showPasswordEntry = function (data) { - var element = $(data.servicePath); - element.showPassword(); - }; - InternetOptions.showDetailedInfo = function (data) { var detailsPage = DetailsInternetPage.getInstance(); // TODO(chocobo): Is this hack to cache the data here reasonable? @@ -332,6 +297,10 @@ cr.define('options', function() { $('buyplanDetails').hidden = true; $('activateDetails').hidden = true; $('detailsInternetLogin').hidden = data.connected; + if (data.type == options.internet.Constants.TYPE_ETHERNET) + $('detailsInternetDisconnect').hidden = true; + else + $('detailsInternetDisconnect').hidden = !data.connected; detailsPage.deviceConnected = data.deviceConnected; detailsPage.connecting = data.connecting; 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 a2a5ebc..fcc3a8b 100644 --- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc @@ -50,8 +50,7 @@ static const char kOtherNetworksFakePath[] = "?"; InternetOptionsHandler::InternetOptionsHandler() : chromeos::CrosOptionsPageUIHandler( - new chromeos::UserCrosSettingsProvider), - use_settings_ui_(false) { + new chromeos::UserCrosSettingsProvider) { registrar_.Add(this, NotificationType::REQUIRE_PIN_SETTING_CHANGE_ENDED, NotificationService::AllSources()); registrar_.Add(this, NotificationType::ENTER_PIN_ENDED, @@ -350,9 +349,7 @@ void InternetOptionsHandler::GetLocalizedValues( chromeos::UserCrosSettingsProvider::cached_owner())); FillNetworkInfo(localized_strings); - - localized_strings->SetBoolean("networkUseSettingsUI", use_settings_ui_); -} + } void InternetOptionsHandler::Initialize() { cros_->RequestNetworkScan(); @@ -365,12 +362,6 @@ void InternetOptionsHandler::RegisterMessages() { NewCallback(this, &InternetOptionsHandler::ButtonClickCallback)); web_ui_->RegisterMessageCallback("refreshCellularPlan", NewCallback(this, &InternetOptionsHandler::RefreshCellularPlanCallback)); - web_ui_->RegisterMessageCallback("loginToNetwork", - NewCallback(this, &InternetOptionsHandler::LoginCallback)); - web_ui_->RegisterMessageCallback("loginToCertNetwork", - NewCallback(this, &InternetOptionsHandler::LoginCertCallback)); - web_ui_->RegisterMessageCallback("loginToOtherNetwork", - NewCallback(this, &InternetOptionsHandler::LoginToOtherCallback)); web_ui_->RegisterMessageCallback("setAutoConnect", NewCallback(this, &InternetOptionsHandler::SetAutoConnectCallback)); web_ui_->RegisterMessageCallback("setShared", @@ -838,68 +829,7 @@ void InternetOptionsHandler::SetActivationButtonVisibility( } } -void InternetOptionsHandler::LoginCallback(const ListValue* args) { - std::string service_path; - std::string password; - - if (args->GetSize() != 2 || - !args->GetString(0, &service_path) || - !args->GetString(1, &password)) { - NOTREACHED(); - return; - } - - cros_->ConnectToWifiNetwork(service_path); -} - -void InternetOptionsHandler::LoginCertCallback(const ListValue* args) { - std::string service_path; - std::string identity; - std::string certpath; - if (args->GetSize() < 3 || - !args->GetString(0, &service_path) || - !args->GetString(1, &certpath) || - !args->GetString(2, &identity)) { - return; - } - chromeos::WifiNetwork* network = cros_->FindWifiNetworkByPath(service_path); - if (network) { - std::string passphrase; - if (args->GetSize() == 4 && args->GetString(3, &passphrase)) - network->SetPassphrase(passphrase); - cros_->ConnectToWifiNetwork(network); - } -} - -void InternetOptionsHandler::LoginToOtherCallback(const ListValue* args) { - std::string security; - std::string ssid; - std::string password; - - if (args->GetSize() != 3 || - !args->GetString(0, &security) || - !args->GetString(1, &ssid) || - !args->GetString(2, &password)) { - NOTREACHED(); - return; - } - - chromeos::ConnectionSecurity sec = chromeos::SECURITY_UNKNOWN; - if (security == "none") { - sec = chromeos::SECURITY_NONE; - } else if (security == "wep") { - sec = chromeos::SECURITY_WEP; - } else if (security == "wpa") { - sec = chromeos::SECURITY_WPA; - } else if (security == "rsn") { - sec = chromeos::SECURITY_RSN; - } - - cros_->ConnectToWifiNetwork(ssid, sec, password); -} - void InternetOptionsHandler::CreateModalPopup(views::WindowDelegate* view) { - DCHECK(!use_settings_ui_); views::Window* window = browser::CreateViewsWindow(GetNativeWindow(), gfx::Rect(), view); @@ -947,25 +877,14 @@ void InternetOptionsHandler::HandleWifiButtonClick( chromeos::WifiNetwork* wifi = NULL; if (command == "forget") { cros_->ForgetWifiNetwork(service_path); - } else if (!use_settings_ui_ && service_path == kOtherNetworksFakePath) { + } else if (service_path == kOtherNetworksFakePath) { // Other wifi networks. 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. if (wifi->IsPassphraseRequired()) { - if (use_settings_ui_) { - if (wifi->encryption() == chromeos::SECURITY_8021X) { - PopulateDictionaryDetails(wifi); - } else { - DictionaryValue dictionary; - dictionary.SetString("servicePath", wifi->service_path()); - web_ui_->CallJavascriptFunction( - "options.InternetOptions.showPasswordEntry", dictionary); - } - } else { - CreateModalPopup(new chromeos::NetworkConfigView(wifi)); - } + CreateModalPopup(new chromeos::NetworkConfigView(wifi)); } else { cros_->ConnectToWifiNetwork(wifi); } @@ -1003,18 +922,14 @@ void InternetOptionsHandler::HandleVPNButtonClick( const std::string& command) { chromeos::VirtualNetwork* network = NULL; // TODO(altimofeev): verify if service_path in condition is correct. - if (!use_settings_ui_ && service_path == kOtherNetworksFakePath) { + if (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)); - } + CreateModalPopup(new chromeos::NetworkConfigView(network)); } else { cros_->ConnectToVirtualNetwork(network); } 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 48b93d2..f8a0d7a 100644 --- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h +++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h @@ -74,9 +74,6 @@ class InternetOptionsHandler const chromeos::CellularNetwork* cellular, DictionaryValue* dictionary); - void LoginCallback(const ListValue* args); - void LoginCertCallback(const ListValue* args); - void LoginToOtherCallback(const ListValue* args); void SetAutoConnectCallback(const ListValue* args); void SetSharedCallback(const ListValue* args); void SetIPConfigCallback(const ListValue* args); @@ -137,10 +134,6 @@ class InternetOptionsHandler // Convenience pointer to netwrok library (will not change). chromeos::NetworkLibrary* cros_; - // A boolean flag of whether to use WebUI for connect UI. True to use WebUI - // and false to use Views dialogs. - bool use_settings_ui_; - NotificationRegistrar registrar_; DISALLOW_COPY_AND_ASSIGN(InternetOptionsHandler); |