| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h" |
| 6 | 6 |
| 7 #include "base/values.h" | 7 #include "base/values.h" |
| 8 #include "chrome/browser/chromeos/login/webui_login_display.h" | 8 #include "chrome/browser/chromeos/login/webui_login_display.h" |
| 9 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown.h" | 9 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown.h" |
| 10 #include "grit/generated_resources.h" | 10 #include "grit/generated_resources.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 AddCallback(kJsApiNetworkItemChosen, | 40 AddCallback(kJsApiNetworkItemChosen, |
| 41 &NetworkDropdownHandler::HandleNetworkItemChosen); | 41 &NetworkDropdownHandler::HandleNetworkItemChosen); |
| 42 AddCallback(kJsApiNetworkDropdownShow, | 42 AddCallback(kJsApiNetworkDropdownShow, |
| 43 &NetworkDropdownHandler::HandleNetworkDropdownShow); | 43 &NetworkDropdownHandler::HandleNetworkDropdownShow); |
| 44 AddCallback(kJsApiNetworkDropdownHide, | 44 AddCallback(kJsApiNetworkDropdownHide, |
| 45 &NetworkDropdownHandler::HandleNetworkDropdownHide); | 45 &NetworkDropdownHandler::HandleNetworkDropdownHide); |
| 46 AddCallback(kJsApiNetworkDropdownRefresh, | 46 AddCallback(kJsApiNetworkDropdownRefresh, |
| 47 &NetworkDropdownHandler::HandleNetworkDropdownRefresh); | 47 &NetworkDropdownHandler::HandleNetworkDropdownRefresh); |
| 48 } | 48 } |
| 49 | 49 |
| 50 void NetworkDropdownHandler::HandleNetworkItemChosen( | 50 void NetworkDropdownHandler::HandleNetworkItemChosen(double id) { |
| 51 const base::ListValue* args) { | |
| 52 DCHECK(args->GetSize() == 1); | |
| 53 | |
| 54 double id; | |
| 55 if (!args->GetDouble(0, &id)) { | |
| 56 NOTREACHED(); | |
| 57 return; | |
| 58 } | |
| 59 | |
| 60 if (dropdown_.get()) { | 51 if (dropdown_.get()) { |
| 61 dropdown_->OnItemChosen(static_cast<int>(id)); | 52 dropdown_->OnItemChosen(static_cast<int>(id)); |
| 62 } else { | 53 } else { |
| 63 // It could happen with very low probability but still keep NOTREACHED to | 54 // It could happen with very low probability but still keep NOTREACHED to |
| 64 // detect if it starts happening all the time. | 55 // detect if it starts happening all the time. |
| 65 NOTREACHED(); | 56 NOTREACHED(); |
| 66 } | 57 } |
| 67 } | 58 } |
| 68 | 59 |
| 69 void NetworkDropdownHandler::HandleNetworkDropdownShow( | 60 void NetworkDropdownHandler::HandleNetworkDropdownShow( |
| 70 const base::ListValue* args) { | 61 const std::string& element_id, bool oobe, double last_network_type) { |
| 71 DCHECK(args->GetSize() == 3); | |
| 72 std::string element_id; | |
| 73 if (!args->GetString(0, &element_id)) { | |
| 74 NOTREACHED(); | |
| 75 return; | |
| 76 } | |
| 77 | |
| 78 bool oobe; | |
| 79 if (!args->GetBoolean(1, &oobe)) { | |
| 80 NOTREACHED(); | |
| 81 return; | |
| 82 } | |
| 83 | |
| 84 double last_network_type = -1; // Javascript passes integer as double. | |
| 85 if (!args->GetDouble(2, &last_network_type)) { | |
| 86 NOTREACHED(); | |
| 87 return; | |
| 88 } | |
| 89 | |
| 90 dropdown_.reset(new NetworkDropdown(web_ui(), oobe)); | 62 dropdown_.reset(new NetworkDropdown(web_ui(), oobe)); |
| 91 | |
| 92 if (last_network_type >= 0) { | 63 if (last_network_type >= 0) { |
| 93 dropdown_->SetLastNetworkType( | 64 dropdown_->SetLastNetworkType( |
| 94 static_cast<ConnectionType>(last_network_type)); | 65 static_cast<ConnectionType>(last_network_type)); |
| 95 } | 66 } |
| 96 } | 67 } |
| 97 | 68 |
| 98 void NetworkDropdownHandler::HandleNetworkDropdownHide( | 69 void NetworkDropdownHandler::HandleNetworkDropdownHide() { |
| 99 const base::ListValue* args) { | |
| 100 DCHECK(args->GetSize() == 0); | |
| 101 dropdown_.reset(); | 70 dropdown_.reset(); |
| 102 } | 71 } |
| 103 | 72 |
| 104 void NetworkDropdownHandler::HandleNetworkDropdownRefresh( | 73 void NetworkDropdownHandler::HandleNetworkDropdownRefresh() { |
| 105 const base::ListValue* args) { | |
| 106 DCHECK(args->GetSize() == 0); | |
| 107 // Since language change is async, | 74 // Since language change is async, |
| 108 // we may in theory be on another screen during this call. | 75 // we may in theory be on another screen during this call. |
| 109 if (dropdown_.get()) | 76 if (dropdown_.get()) |
| 110 dropdown_->Refresh(); | 77 dropdown_->Refresh(); |
| 111 } | 78 } |
| 112 | 79 |
| 113 } // namespace chromeos | 80 } // namespace chromeos |
| OLD | NEW |