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

Unified Diff: chrome/browser/chromeos/dom_ui/network_menu_ui.cc

Issue 3796008: Fixed some logic bugs in the Network Menu DOM UI (7343) (Closed)
Patch Set: Created 10 years, 2 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
« no previous file with comments | « chrome/browser/chromeos/dom_ui/network_menu_ui.h ('k') | chrome/browser/chromeos/status/network_menu.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/dom_ui/network_menu_ui.cc
diff --git a/chrome/browser/chromeos/dom_ui/network_menu_ui.cc b/chrome/browser/chromeos/dom_ui/network_menu_ui.cc
index 2658e9fcb2051114094583a9d9593fabd3d0b3ae..70002698fa4162371fb13e5725b1d1876a71dd63 100644
--- a/chrome/browser/chromeos/dom_ui/network_menu_ui.cc
+++ b/chrome/browser/chromeos/dom_ui/network_menu_ui.cc
@@ -10,7 +10,9 @@
#include "base/string_util.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/chromeos/status/network_menu.h"
+#include "chrome/browser/chromeos/views/domui_menu_widget.h"
#include "chrome/browser/chromeos/views/native_menu_domui.h"
+#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/url_constants.h"
#include "googleurl/src/gurl.h"
#include "grit/browser_resources.h"
@@ -50,8 +52,21 @@ void NetworkMenuHandler::RegisterMessages() {
void NetworkMenuHandler::HandleAction(const ListValue* values) {
menus::MenuModel* model = GetMenuModel();
- if (model)
- static_cast<chromeos::NetworkMenuUI*>(dom_ui_)->ModelAction(model, values);
+ if (model) {
+ chromeos::NetworkMenuUI* network_menu_ui =
+ static_cast<chromeos::NetworkMenuUI*>(dom_ui_);
+ bool close_menu = network_menu_ui->ModelAction(model, values);
+ if (close_menu) {
+ chromeos::DOMUIMenuWidget* widget
+ = chromeos::DOMUIMenuWidget::FindDOMUIMenuWidget(
+ dom_ui_->tab_contents()->GetNativeView());
+ if (widget) {
+ chromeos::NativeMenuDOMUI* domui_menu = widget->domui_menu();
+ if (domui_menu)
+ domui_menu->Hide();
+ }
+ }
+ }
}
NetworkMenuHandler::NetworkMenuHandler() {
@@ -100,15 +115,16 @@ void NetworkMenuUI::AddLocalizedStrings(
l10n_util::GetStringUTF16(IDS_NETWORK_PASSWORD_HINT));
}
-void NetworkMenuUI::ModelAction(const menus::MenuModel* model,
+bool NetworkMenuUI::ModelAction(const menus::MenuModel* model,
const ListValue* values) {
const NetworkMenu* network_menu = static_cast<const NetworkMenu*>(model);
std::string action;
bool success = values->GetString(0, &action);
+ bool close_menu = true;
if (!success) {
LOG(WARNING) << "ModelAction called with no arguments from: "
<< chrome::kChromeUINetworkMenu;
- return;
+ return close_menu;
}
int index;
std::string index_str;
@@ -117,18 +133,25 @@ void NetworkMenuUI::ModelAction(const menus::MenuModel* model,
if (!success) {
LOG(WARNING) << "ModelAction called with no index from: "
<< chrome::kChromeUINetworkMenu;
- return;
+ return close_menu;
}
std::string passphrase;
values->GetString(2, &passphrase); // Optional
- std::string identity;
- values->GetString(3, &identity); // Optional
+ std::string ssid;
+ values->GetString(3, &ssid); // Optional
+ int remember = -1; // -1 indicates not set
+ std::string remember_str;
+ if (values->GetString(4, &remember_str)) // Optional
+ base::StringToInt(remember_str, &remember);
+
if (action == "connect" || action == "reconnect") {
- network_menu->ConnectToNetworkAt(index, passphrase, identity);
+ close_menu = network_menu->ConnectToNetworkAt(index, passphrase, ssid,
+ remember);
} else {
LOG(WARNING) << "Unrecognized action: " << action
<< " from: " << chrome::kChromeUINetworkMenu;
}
+ return close_menu;
}
DictionaryValue* NetworkMenuUI::CreateMenuItem(const menus::MenuModel* model,
« no previous file with comments | « chrome/browser/chromeos/dom_ui/network_menu_ui.h ('k') | chrome/browser/chromeos/status/network_menu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698