| 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 <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 base::Unretained(this))); | 37 base::Unretained(this))); |
| 38 web_ui()->RegisterMessageCallback("onStartupPrefsPageLoad", | 38 web_ui()->RegisterMessageCallback("onStartupPrefsPageLoad", |
| 39 base::Bind(&StartupPagesHandler::HandleOnStartupPrefsPageLoad, | 39 base::Bind(&StartupPagesHandler::HandleOnStartupPrefsPageLoad, |
| 40 base::Unretained(this))); | 40 base::Unretained(this))); |
| 41 web_ui()->RegisterMessageCallback("removeStartupPage", | 41 web_ui()->RegisterMessageCallback("removeStartupPage", |
| 42 base::Bind(&StartupPagesHandler::HandleRemoveStartupPage, | 42 base::Bind(&StartupPagesHandler::HandleRemoveStartupPage, |
| 43 base::Unretained(this))); | 43 base::Unretained(this))); |
| 44 web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages", | 44 web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages", |
| 45 base::Bind(&StartupPagesHandler::HandleSetStartupPagesToCurrentPages, | 45 base::Bind(&StartupPagesHandler::HandleSetStartupPagesToCurrentPages, |
| 46 base::Unretained(this))); | 46 base::Unretained(this))); |
| 47 web_ui()->RegisterMessageCallback("validateStartupPage", | |
| 48 base::Bind(&StartupPagesHandler::HandleValidateStartupPage, | |
| 49 base::Unretained(this))); | |
| 50 } | 47 } |
| 51 | 48 |
| 52 void StartupPagesHandler::OnJavascriptAllowed() { | 49 void StartupPagesHandler::OnJavascriptAllowed() { |
| 53 startup_custom_pages_table_model_.SetObserver(this); | 50 startup_custom_pages_table_model_.SetObserver(this); |
| 54 | 51 |
| 55 PrefService* prefService = Profile::FromWebUI(web_ui())->GetPrefs(); | 52 PrefService* prefService = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 56 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefService); | 53 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefService); |
| 57 startup_custom_pages_table_model_.SetURLs(pref.urls); | 54 startup_custom_pages_table_model_.SetURLs(pref.urls); |
| 58 | 55 |
| 59 if (pref.urls.empty()) | 56 if (pref.urls.empty()) |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 startup_custom_pages_table_model_.Remove(selected_index); | 172 startup_custom_pages_table_model_.Remove(selected_index); |
| 176 SaveStartupPagesPref(); | 173 SaveStartupPagesPref(); |
| 177 } | 174 } |
| 178 | 175 |
| 179 void StartupPagesHandler::HandleSetStartupPagesToCurrentPages( | 176 void StartupPagesHandler::HandleSetStartupPagesToCurrentPages( |
| 180 const base::ListValue* args) { | 177 const base::ListValue* args) { |
| 181 startup_custom_pages_table_model_.SetToCurrentlyOpenPages(); | 178 startup_custom_pages_table_model_.SetToCurrentlyOpenPages(); |
| 182 SaveStartupPagesPref(); | 179 SaveStartupPagesPref(); |
| 183 } | 180 } |
| 184 | 181 |
| 185 void StartupPagesHandler::HandleValidateStartupPage( | |
| 186 const base::ListValue* args) { | |
| 187 CHECK_EQ(args->GetSize(), 2U); | |
| 188 | |
| 189 const base::Value* callback_id; | |
| 190 CHECK(args->Get(0, &callback_id)); | |
| 191 | |
| 192 std::string url_string; | |
| 193 CHECK(args->GetString(1, &url_string)); | |
| 194 | |
| 195 bool valid = settings_utils::FixupAndValidateStartupPage(url_string, nullptr); | |
| 196 ResolveJavascriptCallback(*callback_id, base::Value(valid)); | |
| 197 } | |
| 198 | |
| 199 void StartupPagesHandler::SaveStartupPagesPref() { | 182 void StartupPagesHandler::SaveStartupPagesPref() { |
| 200 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); | 183 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 201 | 184 |
| 202 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); | 185 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); |
| 203 pref.urls = startup_custom_pages_table_model_.GetURLs(); | 186 pref.urls = startup_custom_pages_table_model_.GetURLs(); |
| 204 | 187 |
| 205 if (pref.urls.empty()) | 188 if (pref.urls.empty()) |
| 206 pref.type = SessionStartupPref::DEFAULT; | 189 pref.type = SessionStartupPref::DEFAULT; |
| 207 | 190 |
| 208 SessionStartupPref::SetStartupPref(prefs, pref); | 191 SessionStartupPref::SetStartupPref(prefs, pref); |
| 209 } | 192 } |
| 210 | 193 |
| 211 void StartupPagesHandler::UpdateStartupPages() { | 194 void StartupPagesHandler::UpdateStartupPages() { |
| 212 const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref( | 195 const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref( |
| 213 Profile::FromWebUI(web_ui())->GetPrefs()); | 196 Profile::FromWebUI(web_ui())->GetPrefs()); |
| 214 startup_custom_pages_table_model_.SetURLs(startup_pref.urls); | 197 startup_custom_pages_table_model_.SetURLs(startup_pref.urls); |
| 215 // The change will go to the JS code in the | 198 // The change will go to the JS code in the |
| 216 // StartupPagesHandler::OnModelChanged() method. | 199 // StartupPagesHandler::OnModelChanged() method. |
| 217 } | 200 } |
| 218 | 201 |
| 219 } // namespace settings | 202 } // namespace settings |
| OLD | NEW |