OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/settings/settings_startup_pages_handler.h" | 5 #include "chrome/browser/ui/webui/settings/settings_startup_pages_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "chrome/browser/prefs/session_startup_pref.h" | 10 #include "chrome/browser/prefs/session_startup_pref.h" |
(...skipping 12 matching lines...) Expand all Loading... | |
23 StartupPagesHandler::~StartupPagesHandler() { | 23 StartupPagesHandler::~StartupPagesHandler() { |
24 } | 24 } |
25 | 25 |
26 void StartupPagesHandler::RegisterMessages() { | 26 void StartupPagesHandler::RegisterMessages() { |
27 if (Profile::FromWebUI(web_ui())->IsOffTheRecord()) | 27 if (Profile::FromWebUI(web_ui())->IsOffTheRecord()) |
28 return; | 28 return; |
29 | 29 |
30 web_ui()->RegisterMessageCallback("addStartupPage", | 30 web_ui()->RegisterMessageCallback("addStartupPage", |
31 base::Bind(&StartupPagesHandler::HandleAddStartupPage, | 31 base::Bind(&StartupPagesHandler::HandleAddStartupPage, |
32 base::Unretained(this))); | 32 base::Unretained(this))); |
33 web_ui()->RegisterMessageCallback("editStartupPage", | |
34 base::Bind(&StartupPagesHandler::HandleEditStartupPage, | |
35 base::Unretained(this))); | |
33 web_ui()->RegisterMessageCallback("onStartupPrefsPageLoad", | 36 web_ui()->RegisterMessageCallback("onStartupPrefsPageLoad", |
34 base::Bind(&StartupPagesHandler::HandleOnStartupPrefsPageLoad, | 37 base::Bind(&StartupPagesHandler::HandleOnStartupPrefsPageLoad, |
35 base::Unretained(this))); | 38 base::Unretained(this))); |
36 web_ui()->RegisterMessageCallback("removeStartupPage", | 39 web_ui()->RegisterMessageCallback("removeStartupPage", |
37 base::Bind(&StartupPagesHandler::HandleRemoveStartupPage, | 40 base::Bind(&StartupPagesHandler::HandleRemoveStartupPage, |
38 base::Unretained(this))); | 41 base::Unretained(this))); |
39 web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages", | 42 web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages", |
40 base::Bind(&StartupPagesHandler::HandleSetStartupPagesToCurrentPages, | 43 base::Bind(&StartupPagesHandler::HandleSetStartupPagesToCurrentPages, |
41 base::Unretained(this))); | 44 base::Unretained(this))); |
42 web_ui()->RegisterMessageCallback("validateStartupPage", | 45 web_ui()->RegisterMessageCallback("validateStartupPage", |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
98 int row_count = startup_custom_pages_table_model_.RowCount(); | 101 int row_count = startup_custom_pages_table_model_.RowCount(); |
99 int index; | 102 int index; |
100 if (!args->GetInteger(1, &index) || index > row_count) | 103 if (!args->GetInteger(1, &index) || index > row_count) |
101 index = row_count; | 104 index = row_count; |
102 | 105 |
103 startup_custom_pages_table_model_.Add(index, url); | 106 startup_custom_pages_table_model_.Add(index, url); |
104 SaveStartupPagesPref(); | 107 SaveStartupPagesPref(); |
105 ResolveJavascriptCallback(*callback_id, base::FundamentalValue(true)); | 108 ResolveJavascriptCallback(*callback_id, base::FundamentalValue(true)); |
106 } | 109 } |
107 | 110 |
111 void StartupPagesHandler::HandleEditStartupPage(const base::ListValue* args) { | |
112 CHECK_EQ(args->GetSize(), 3U); | |
113 const base::Value* callback_id; | |
114 CHECK(args->Get(0, &callback_id)); | |
115 int index; | |
Dan Beam
2016/04/12 04:37:47
all numbers in javascript are doubles
i honestly
dpapad
2016/04/12 17:52:54
This logic is mostly copied from the equivalent co
Dan Beam
2016/04/12 18:08:53
Acknowledged.
| |
116 CHECK(args->GetInteger(1, &index)); | |
117 | |
118 if (index < 0 || index > startup_custom_pages_table_model_.RowCount()) { | |
119 RejectJavascriptCallback(*callback_id, *base::Value::CreateNullValue()); | |
120 NOTREACHED(); | |
121 return; | |
122 } | |
123 | |
124 std::string url_string; | |
125 CHECK(args->GetString(2, &url_string)); | |
126 | |
127 GURL fixed_url; | |
128 if (settings_utils::FixupAndValidateStartupPage(url_string, &fixed_url)) { | |
129 std::vector<GURL> urls = startup_custom_pages_table_model_.GetURLs(); | |
130 urls[index] = fixed_url; | |
131 startup_custom_pages_table_model_.SetURLs(urls); | |
132 ResolveJavascriptCallback(*callback_id, base::FundamentalValue(true)); | |
133 } else { | |
134 ResolveJavascriptCallback(*callback_id, base::FundamentalValue(false)); | |
135 } | |
136 } | |
Dan Beam
2016/04/12 04:39:13
it might be worthwhile to test any of these callba
dpapad
2016/04/12 17:52:54
Agreed. C++ test coverage would be nice for this (
Dan Beam
2016/04/12 18:08:53
Acknowledged.
| |
137 | |
108 void StartupPagesHandler::HandleOnStartupPrefsPageLoad( | 138 void StartupPagesHandler::HandleOnStartupPrefsPageLoad( |
109 const base::ListValue* args) { | 139 const base::ListValue* args) { |
110 startup_custom_pages_table_model_.SetObserver(this); | 140 startup_custom_pages_table_model_.SetObserver(this); |
111 | 141 |
112 PrefService* prefService = Profile::FromWebUI(web_ui())->GetPrefs(); | 142 PrefService* prefService = Profile::FromWebUI(web_ui())->GetPrefs(); |
113 SessionStartupPref pref = SessionStartupPref::GetStartupPref( | 143 SessionStartupPref pref = SessionStartupPref::GetStartupPref( |
114 prefService); | 144 prefService); |
115 startup_custom_pages_table_model_.SetURLs(pref.urls); | 145 startup_custom_pages_table_model_.SetURLs(pref.urls); |
116 | 146 |
117 if (pref.urls.empty()) | 147 if (pref.urls.empty()) |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
179 | 209 |
180 void StartupPagesHandler::UpdateStartupPages() { | 210 void StartupPagesHandler::UpdateStartupPages() { |
181 const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref( | 211 const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref( |
182 Profile::FromWebUI(web_ui())->GetPrefs()); | 212 Profile::FromWebUI(web_ui())->GetPrefs()); |
183 startup_custom_pages_table_model_.SetURLs(startup_pref.urls); | 213 startup_custom_pages_table_model_.SetURLs(startup_pref.urls); |
184 // The change will go to the JS code in the | 214 // The change will go to the JS code in the |
185 // StartupPagesHandler::OnModelChanged() method. | 215 // StartupPagesHandler::OnModelChanged() method. |
186 } | 216 } |
187 | 217 |
188 } // namespace settings | 218 } // namespace settings |
OLD | NEW |