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 |