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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.cc

Issue 14208014: Simplify adding callbacks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698