OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/dom_ui/flags_ui.h" | 5 #include "chrome/browser/dom_ui/flags_ui.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/singleton.h" | 9 #include "base/singleton.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "chrome/browser/about_flags.h" | 11 #include "chrome/browser/about_flags.h" |
12 #include "chrome/browser/browser_list.h" | 12 #include "chrome/browser/browser_list.h" |
13 #include "chrome/browser/browser_process.h" | 13 #include "chrome/browser/browser_process.h" |
14 #include "chrome/browser/browser_thread.h" | 14 #include "chrome/browser/browser_thread.h" |
15 #include "chrome/browser/dom_ui/chrome_url_data_manager.h" | 15 #include "chrome/browser/dom_ui/chrome_url_data_manager.h" |
16 #include "chrome/browser/prefs/pref_service.h" | 16 #include "chrome/browser/prefs/pref_service.h" |
| 17 #include "chrome/browser/profiles/profile.h" |
17 #include "chrome/common/jstemplate_builder.h" | 18 #include "chrome/common/jstemplate_builder.h" |
18 #include "chrome/common/pref_names.h" | 19 #include "chrome/common/pref_names.h" |
19 #include "chrome/common/url_constants.h" | 20 #include "chrome/common/url_constants.h" |
20 #include "grit/browser_resources.h" | 21 #include "grit/browser_resources.h" |
21 #include "grit/chromium_strings.h" | 22 #include "grit/chromium_strings.h" |
22 #include "grit/generated_resources.h" | 23 #include "grit/generated_resources.h" |
23 #include "grit/theme_resources.h" | 24 #include "grit/theme_resources.h" |
24 #include "ui/base/l10n/l10n_util.h" | 25 #include "ui/base/l10n/l10n_util.h" |
25 #include "ui/base/resource/resource_bundle.h" | 26 #include "ui/base/resource/resource_bundle.h" |
26 | 27 |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 dom_ui_->RegisterMessageCallback("enableFlagsExperiment", | 129 dom_ui_->RegisterMessageCallback("enableFlagsExperiment", |
129 NewCallback(this, &FlagsDOMHandler::HandleEnableFlagsExperimentMessage)); | 130 NewCallback(this, &FlagsDOMHandler::HandleEnableFlagsExperimentMessage)); |
130 dom_ui_->RegisterMessageCallback("restartBrowser", | 131 dom_ui_->RegisterMessageCallback("restartBrowser", |
131 NewCallback(this, &FlagsDOMHandler::HandleRestartBrowser)); | 132 NewCallback(this, &FlagsDOMHandler::HandleRestartBrowser)); |
132 } | 133 } |
133 | 134 |
134 void FlagsDOMHandler::HandleRequestFlagsExperiments(const ListValue* args) { | 135 void FlagsDOMHandler::HandleRequestFlagsExperiments(const ListValue* args) { |
135 DictionaryValue results; | 136 DictionaryValue results; |
136 results.Set("flagsExperiments", | 137 results.Set("flagsExperiments", |
137 about_flags::GetFlagsExperimentsData( | 138 about_flags::GetFlagsExperimentsData( |
138 g_browser_process->local_state())); | 139 dom_ui_->GetProfile()->GetPrefs())); |
139 results.SetBoolean("needsRestart", | 140 results.SetBoolean("needsRestart", |
140 about_flags::IsRestartNeededToCommitChanges()); | 141 about_flags::IsRestartNeededToCommitChanges()); |
141 dom_ui_->CallJavascriptFunction(L"returnFlagsExperiments", results); | 142 dom_ui_->CallJavascriptFunction(L"returnFlagsExperiments", results); |
142 } | 143 } |
143 | 144 |
144 void FlagsDOMHandler::HandleEnableFlagsExperimentMessage( | 145 void FlagsDOMHandler::HandleEnableFlagsExperimentMessage( |
145 const ListValue* args) { | 146 const ListValue* args) { |
146 DCHECK_EQ(2u, args->GetSize()); | 147 DCHECK_EQ(2u, args->GetSize()); |
147 if (args->GetSize() != 2) | 148 if (args->GetSize() != 2) |
148 return; | 149 return; |
149 | 150 |
150 std::string experiment_internal_name; | 151 std::string experiment_internal_name; |
151 std::string enable_str; | 152 std::string enable_str; |
152 if (!args->GetString(0, &experiment_internal_name) || | 153 if (!args->GetString(0, &experiment_internal_name) || |
153 !args->GetString(1, &enable_str)) | 154 !args->GetString(1, &enable_str)) |
154 return; | 155 return; |
155 | 156 |
156 about_flags::SetExperimentEnabled( | 157 about_flags::SetExperimentEnabled( |
157 g_browser_process->local_state(), | 158 dom_ui_->GetProfile()->GetPrefs(), |
158 experiment_internal_name, | 159 experiment_internal_name, |
159 enable_str == "true"); | 160 enable_str == "true"); |
160 } | 161 } |
161 | 162 |
162 void FlagsDOMHandler::HandleRestartBrowser(const ListValue* args) { | 163 void FlagsDOMHandler::HandleRestartBrowser(const ListValue* args) { |
163 // Set the flag to restore state after the restart. | 164 // Set the flag to restore state after the restart. |
164 PrefService* pref_service = g_browser_process->local_state(); | 165 PrefService* pref_service = g_browser_process->local_state(); |
165 pref_service->SetBoolean(prefs::kRestartLastSessionOnShutdown, true); | 166 pref_service->SetBoolean(prefs::kRestartLastSessionOnShutdown, true); |
166 BrowserList::CloseAllBrowsersAndExit(); | 167 BrowserList::CloseAllBrowsersAndExit(); |
167 } | 168 } |
(...skipping 19 matching lines...) Expand all Loading... |
187 make_scoped_refptr(html_source))); | 188 make_scoped_refptr(html_source))); |
188 } | 189 } |
189 | 190 |
190 // static | 191 // static |
191 RefCountedMemory* FlagsUI::GetFaviconResourceBytes() { | 192 RefCountedMemory* FlagsUI::GetFaviconResourceBytes() { |
192 return ResourceBundle::GetSharedInstance(). | 193 return ResourceBundle::GetSharedInstance(). |
193 LoadDataResourceBytes(IDR_FLAGS); | 194 LoadDataResourceBytes(IDR_FLAGS); |
194 } | 195 } |
195 | 196 |
196 // static | 197 // static |
197 void FlagsUI::RegisterPrefs(PrefService* local_state) { | 198 void FlagsUI::RegisterUserPrefs(PrefService* prefs) { |
198 local_state->RegisterListPref(prefs::kEnabledLabsExperiments); | 199 prefs->RegisterListPref(prefs::kEnabledLabsExperiments); |
199 } | 200 } |
OLD | NEW |