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

Side by Side Diff: chrome/browser/dom_ui/new_tab_ui.cc

Issue 115910: Allow themes to change the background of the new tab page.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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
« no previous file with comments | « chrome/browser/dom_ui/dom_ui_theme_source.cc ('k') | chrome/browser/profile.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include "chrome/browser/dom_ui/new_tab_ui.h" 7 #include "chrome/browser/dom_ui/new_tab_ui.h"
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 ScopedRunnableMethodFactory<PaintTimer> method_factory_; 178 ScopedRunnableMethodFactory<PaintTimer> method_factory_;
179 179
180 DISALLOW_COPY_AND_ASSIGN(PaintTimer); 180 DISALLOW_COPY_AND_ASSIGN(PaintTimer);
181 }; 181 };
182 182
183 /////////////////////////////////////////////////////////////////////////////// 183 ///////////////////////////////////////////////////////////////////////////////
184 // NewTabHTMLSource 184 // NewTabHTMLSource
185 185
186 class NewTabHTMLSource : public ChromeURLDataManager::DataSource { 186 class NewTabHTMLSource : public ChromeURLDataManager::DataSource {
187 public: 187 public:
188 NewTabHTMLSource(); 188 explicit NewTabHTMLSource(Profile* profile);
189 189
190 // Called when the network layer has requested a resource underneath 190 // Called when the network layer has requested a resource underneath
191 // the path we registered. 191 // the path we registered.
192 virtual void StartDataRequest(const std::string& path, int request_id); 192 virtual void StartDataRequest(const std::string& path, int request_id);
193 193
194 virtual std::string GetMimeType(const std::string&) const { 194 virtual std::string GetMimeType(const std::string&) const {
195 return "text/html"; 195 return "text/html";
196 } 196 }
197 197
198 // Setters and getters for first_view. 198 // Setters and getters for first_view.
199 static void set_first_view(bool first_view) { first_view_ = first_view; } 199 static void set_first_view(bool first_view) { first_view_ = first_view; }
200 static bool first_view() { return first_view_; } 200 static bool first_view() { return first_view_; }
201 201
202 private: 202 private:
203 // In case a file path to the new new tab page was provided this tries to load 203 // In case a file path to the new new tab page was provided this tries to load
204 // the file and returns the file content if successful. This returns an empty 204 // the file and returns the file content if successful. This returns an empty
205 // string in case of failure. 205 // string in case of failure.
206 static std::string GetNewNewTabFromCommandLine(); 206 static std::string GetNewNewTabFromCommandLine();
207 207
208 // Whether this is the is the first viewing of the new tab page and 208 // Whether this is the is the first viewing of the new tab page and
209 // we think it is the user's startup page. 209 // we think it is the user's startup page.
210 static bool first_view_; 210 static bool first_view_;
211 211
212 // The user's profile.
213 Profile* profile_;
214
212 DISALLOW_COPY_AND_ASSIGN(NewTabHTMLSource); 215 DISALLOW_COPY_AND_ASSIGN(NewTabHTMLSource);
213 }; 216 };
214 217
215 bool NewTabHTMLSource::first_view_ = true; 218 bool NewTabHTMLSource::first_view_ = true;
216 219
217 NewTabHTMLSource::NewTabHTMLSource() 220 NewTabHTMLSource::NewTabHTMLSource(Profile* profile)
218 : DataSource(chrome::kChromeUINewTabHost, MessageLoop::current()) { 221 : DataSource(chrome::kChromeUINewTabHost, MessageLoop::current()),
222 profile_(profile) {
219 } 223 }
220 224
221 void NewTabHTMLSource::StartDataRequest(const std::string& path, 225 void NewTabHTMLSource::StartDataRequest(const std::string& path,
222 int request_id) { 226 int request_id) {
223 if (!path.empty()) { 227 if (!path.empty()) {
224 // A path under new-tab was requested; it's likely a bad relative 228 // A path under new-tab was requested; it's likely a bad relative
225 // URL from the new tab page, but in any case it's an error. 229 // URL from the new tab page, but in any case it's an error.
226 NOTREACHED(); 230 NOTREACHED();
227 return; 231 return;
228 } 232 }
229 233
230 // Show the profile name in the title and most visited labels if the current 234 // Show the profile name in the title and most visited labels if the current
231 // profile is not the default. 235 // profile is not the default.
232 std::wstring title; 236 std::wstring title;
233 std::wstring most_visited; 237 std::wstring most_visited;
234 if (UserDataManager::Get()->is_current_profile_default()) { 238 if (UserDataManager::Get()->is_current_profile_default()) {
235 title = l10n_util::GetString(IDS_NEW_TAB_TITLE); 239 title = l10n_util::GetString(IDS_NEW_TAB_TITLE);
236 most_visited = l10n_util::GetString(IDS_NEW_TAB_MOST_VISITED); 240 most_visited = l10n_util::GetString(IDS_NEW_TAB_MOST_VISITED);
237 } else { 241 } else {
238 // Get the current profile name. 242 // Get the current profile name.
239 std::wstring profile_name = 243 std::wstring profile_name =
240 UserDataManager::Get()->current_profile_name(); 244 UserDataManager::Get()->current_profile_name();
241 title = l10n_util::GetStringF(IDS_NEW_TAB_TITLE_WITH_PROFILE_NAME, 245 title = l10n_util::GetStringF(IDS_NEW_TAB_TITLE_WITH_PROFILE_NAME,
242 profile_name); 246 profile_name);
243 most_visited = l10n_util::GetStringF( 247 most_visited = l10n_util::GetStringF(
244 IDS_NEW_TAB_MOST_VISITED_WITH_PROFILE_NAME, 248 IDS_NEW_TAB_MOST_VISITED_WITH_PROFILE_NAME,
245 profile_name); 249 profile_name);
246 } 250 }
247 DictionaryValue localized_strings; 251 DictionaryValue localized_strings;
252 localized_strings.SetString(L"bookmarkbarattached",
253 profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar) ?
254 "true" : "false");
248 localized_strings.SetString(L"title", title); 255 localized_strings.SetString(L"title", title);
249 localized_strings.SetString(L"mostvisited", most_visited); 256 localized_strings.SetString(L"mostvisited", most_visited);
250 localized_strings.SetString(L"searches", 257 localized_strings.SetString(L"searches",
251 l10n_util::GetString(IDS_NEW_TAB_SEARCHES)); 258 l10n_util::GetString(IDS_NEW_TAB_SEARCHES));
252 localized_strings.SetString(L"bookmarks", 259 localized_strings.SetString(L"bookmarks",
253 l10n_util::GetString(IDS_NEW_TAB_BOOKMARKS)); 260 l10n_util::GetString(IDS_NEW_TAB_BOOKMARKS));
254 localized_strings.SetString(L"recent", 261 localized_strings.SetString(L"recent",
255 l10n_util::GetString(IDS_NEW_TAB_RECENT)); 262 l10n_util::GetString(IDS_NEW_TAB_RECENT));
256 localized_strings.SetString(L"showhistory", 263 localized_strings.SetString(L"showhistory",
257 l10n_util::GetString(IDS_NEW_TAB_HISTORY_SHOW)); 264 l10n_util::GetString(IDS_NEW_TAB_HISTORY_SHOW));
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 } 1226 }
1220 #endif 1227 #endif
1221 1228
1222 // In testing mode there may not be an I/O thread. 1229 // In testing mode there may not be an I/O thread.
1223 if (g_browser_process->io_thread()) { 1230 if (g_browser_process->io_thread()) {
1224 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, 1231 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE,
1225 NewRunnableMethod(&chrome_url_data_manager, 1232 NewRunnableMethod(&chrome_url_data_manager,
1226 &ChromeURLDataManager::AddDataSource, 1233 &ChromeURLDataManager::AddDataSource,
1227 new DOMUIThemeSource(GetProfile()))); 1234 new DOMUIThemeSource(GetProfile())));
1228 1235
1229 NewTabHTMLSource* html_source = new NewTabHTMLSource(); 1236 NewTabHTMLSource* html_source = new NewTabHTMLSource(GetProfile());
1230 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, 1237 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE,
1231 NewRunnableMethod(&chrome_url_data_manager, 1238 NewRunnableMethod(&chrome_url_data_manager,
1232 &ChromeURLDataManager::AddDataSource, 1239 &ChromeURLDataManager::AddDataSource,
1233 html_source)); 1240 html_source));
1234 } 1241 }
1235 } 1242 }
1236 1243
1237 // Listen for theme installation. 1244 // Listen for theme installation.
1238 registrar_.Add(this, NotificationType::THEME_INSTALLED, 1245 registrar_.Add(this, NotificationType::THEME_INSTALLED,
1239 NotificationService::AllSources()); 1246 NotificationService::AllSources());
1247 // Listen for bookmark bar visibility changes.
1248 registrar_.Add(this, NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED,
1249 NotificationService::AllSources());
1240 } 1250 }
1241 1251
1242 NewTabUI::~NewTabUI() { 1252 NewTabUI::~NewTabUI() {
1243 } 1253 }
1244 1254
1245 void NewTabUI::Observe(NotificationType type, 1255 void NewTabUI::Observe(NotificationType type,
1246 const NotificationSource& source, 1256 const NotificationSource& source,
1247 const NotificationDetails& details) { 1257 const NotificationDetails& details) {
1248 if (NotificationType::THEME_INSTALLED == type) { 1258 if (NotificationType::THEME_INSTALLED == type) {
1249 CallJavascriptFunction(L"themeChanged"); 1259 CallJavascriptFunction(L"themeChanged");
1260 } else if (NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED) {
1261 if (GetProfile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar))
1262 CallJavascriptFunction(L"bookmarkBarAttached");
1263 else
1264 CallJavascriptFunction(L"bookmarkBarDetached");
1250 } 1265 }
1251 } 1266 }
1252 1267
1253 1268
1254 // static 1269 // static
1255 void NewTabUI::RegisterUserPrefs(PrefService* prefs) { 1270 void NewTabUI::RegisterUserPrefs(PrefService* prefs) {
1256 MostVisitedHandler::RegisterUserPrefs(prefs); 1271 MostVisitedHandler::RegisterUserPrefs(prefs);
1257 } 1272 }
1258 1273
1259 // static 1274 // static
1260 bool NewTabUI::EnableNewNewTabPage() { 1275 bool NewTabUI::EnableNewNewTabPage() {
1261 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 1276 const CommandLine* command_line = CommandLine::ForCurrentProcess();
1262 return command_line->HasSwitch(switches::kNewNewTabPage); 1277 return command_line->HasSwitch(switches::kNewNewTabPage);
1263 } 1278 }
OLDNEW
« no previous file with comments | « chrome/browser/dom_ui/dom_ui_theme_source.cc ('k') | chrome/browser/profile.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698