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

Side by Side Diff: chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc

Issue 1877633002: MD Settings: Adding C++ support for editing startup URLs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@on_startup_urls
Patch Set: Add missing call to save prefs. Created 4 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
« no previous file with comments | « chrome/browser/ui/webui/settings/settings_startup_pages_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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;
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 SaveStartupPagesPref();
133 ResolveJavascriptCallback(*callback_id, base::FundamentalValue(true));
134 } else {
135 ResolveJavascriptCallback(*callback_id, base::FundamentalValue(false));
136 }
137 }
138
108 void StartupPagesHandler::HandleOnStartupPrefsPageLoad( 139 void StartupPagesHandler::HandleOnStartupPrefsPageLoad(
109 const base::ListValue* args) { 140 const base::ListValue* args) {
110 startup_custom_pages_table_model_.SetObserver(this); 141 startup_custom_pages_table_model_.SetObserver(this);
111 142
112 PrefService* prefService = Profile::FromWebUI(web_ui())->GetPrefs(); 143 PrefService* prefService = Profile::FromWebUI(web_ui())->GetPrefs();
113 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 144 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
114 prefService); 145 prefService);
115 startup_custom_pages_table_model_.SetURLs(pref.urls); 146 startup_custom_pages_table_model_.SetURLs(pref.urls);
116 147
117 if (pref.urls.empty()) 148 if (pref.urls.empty())
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 210
180 void StartupPagesHandler::UpdateStartupPages() { 211 void StartupPagesHandler::UpdateStartupPages() {
181 const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref( 212 const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref(
182 Profile::FromWebUI(web_ui())->GetPrefs()); 213 Profile::FromWebUI(web_ui())->GetPrefs());
183 startup_custom_pages_table_model_.SetURLs(startup_pref.urls); 214 startup_custom_pages_table_model_.SetURLs(startup_pref.urls);
184 // The change will go to the JS code in the 215 // The change will go to the JS code in the
185 // StartupPagesHandler::OnModelChanged() method. 216 // StartupPagesHandler::OnModelChanged() method.
186 } 217 }
187 218
188 } // namespace settings 219 } // namespace settings
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/settings_startup_pages_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698