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

Side by Side Diff: chrome/browser/ui/webui/ntp/new_tab_ui.cc

Issue 8036002: ntp: remove ntp3 resources (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 2 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/webui/ntp/new_tab_ui.h" 7 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
8 8
9 #include <set> 9 #include <set>
10 10
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 } // namespace 186 } // namespace
187 187
188 /////////////////////////////////////////////////////////////////////////////// 188 ///////////////////////////////////////////////////////////////////////////////
189 // NewTabUI 189 // NewTabUI
190 190
191 NewTabUI::NewTabUI(TabContents* contents) 191 NewTabUI::NewTabUI(TabContents* contents)
192 : ChromeWebUI(contents) { 192 : ChromeWebUI(contents) {
193 // Override some options on the Web UI. 193 // Override some options on the Web UI.
194 hide_favicon_ = true; 194 hide_favicon_ = true;
195 195
196 if (!NTP4Enabled() &&
197 GetProfile()->GetPrefs()->GetBoolean(prefs::kEnableBookmarkBar) &&
198 browser_defaults::bookmarks_enabled) {
199 set_force_bookmark_bar_visible(true);
200 }
201
202 focus_location_bar_by_default_ = true; 196 focus_location_bar_by_default_ = true;
203 should_hide_url_ = true; 197 should_hide_url_ = true;
204 overridden_title_ = l10n_util::GetStringUTF16(IDS_NEW_TAB_TITLE); 198 overridden_title_ = l10n_util::GetStringUTF16(IDS_NEW_TAB_TITLE);
205 199
206 // We count all link clicks as AUTO_BOOKMARK, so that site can be ranked more 200 // We count all link clicks as AUTO_BOOKMARK, so that site can be ranked more
207 // highly. Note this means we're including clicks on not only most visited 201 // highly. Note this means we're including clicks on not only most visited
208 // thumbnails, but also clicks on recently bookmarked. 202 // thumbnails, but also clicks on recently bookmarked.
209 link_transition_type_ = PageTransition::AUTO_BOOKMARK; 203 link_transition_type_ = PageTransition::AUTO_BOOKMARK;
210 204
211 if (!GetProfile()->IsOffTheRecord()) { 205 if (!GetProfile()->IsOffTheRecord()) {
212 PrefService* pref_service = GetProfile()->GetPrefs(); 206 PrefService* pref_service = GetProfile()->GetPrefs();
213 if (!NewTabSyncSetupHandler::ShouldShowSyncPromo()) 207 if (!NewTabSyncSetupHandler::ShouldShowSyncPromo())
214 AddMessageHandler((new NTPLoginHandler())->Attach(this)); 208 AddMessageHandler((new NTPLoginHandler())->Attach(this));
215 AddMessageHandler((new ShownSectionsHandler(pref_service))->Attach(this)); 209 AddMessageHandler((new ShownSectionsHandler(pref_service))->Attach(this));
216 AddMessageHandler((new browser_sync::ForeignSessionHandler())-> 210 AddMessageHandler((new browser_sync::ForeignSessionHandler())->
217 Attach(this)); 211 Attach(this));
218 AddMessageHandler((new MostVisitedHandler())->Attach(this)); 212 AddMessageHandler((new MostVisitedHandler())->Attach(this));
219 AddMessageHandler((new RecentlyClosedTabsHandler())->Attach(this)); 213 AddMessageHandler((new RecentlyClosedTabsHandler())->Attach(this));
220 AddMessageHandler((new MetricsHandler())->Attach(this)); 214 AddMessageHandler((new MetricsHandler())->Attach(this));
221 if (GetProfile()->IsSyncAccessible()) 215 if (GetProfile()->IsSyncAccessible())
222 AddMessageHandler((new NewTabPageSyncHandler())->Attach(this)); 216 AddMessageHandler((new NewTabPageSyncHandler())->Attach(this));
223 ExtensionService* service = GetProfile()->GetExtensionService(); 217 ExtensionService* service = GetProfile()->GetExtensionService();
224 // We might not have an ExtensionService (on ChromeOS when not logged in 218 // We might not have an ExtensionService (on ChromeOS when not logged in
225 // for example). 219 // for example).
226 if (service) 220 if (service)
227 AddMessageHandler((new AppLauncherHandler(service))->Attach(this)); 221 AddMessageHandler((new AppLauncherHandler(service))->Attach(this));
228 222
229 AddMessageHandler((new NewTabPageHandler())->Attach(this)); 223 AddMessageHandler((new NewTabPageHandler())->Attach(this));
230 if (NTP4Enabled()) { 224 AddMessageHandler((new BookmarksHandler())->Attach(this));
231 AddMessageHandler((new BookmarksHandler())->Attach(this)); 225 AddMessageHandler((new FaviconWebUIHandler())->Attach(this));
232 AddMessageHandler((new FaviconWebUIHandler())->Attach(this));
233 }
234 } 226 }
235 227
236 // Add the sync setup handler for the sync promo UI. 228 // Add the sync setup handler for the sync promo UI.
237 scoped_ptr<SyncSetupHandler> handler(new NewTabSyncSetupHandler()); 229 scoped_ptr<SyncSetupHandler> handler(new NewTabSyncSetupHandler());
238 AddMessageHandler(handler.release()->Attach(this)); 230 AddMessageHandler(handler.release()->Attach(this));
239 231
240 // Initializing the CSS and HTML can require some CPU, so do it after 232 // Initializing the CSS and HTML can require some CPU, so do it after
241 // we've hooked up the most visited handler. This allows the DB query 233 // we've hooked up the most visited handler. This allows the DB query
242 // for the new tab thumbs to happen earlier. 234 // for the new tab thumbs to happen earlier.
243 InitializeCSSCaches(); 235 InitializeCSSCaches();
244 NewTabHTMLSource* html_source = 236 NewTabHTMLSource* html_source =
245 new NewTabHTMLSource(GetProfile()->GetOriginalProfile()); 237 new NewTabHTMLSource(GetProfile()->GetOriginalProfile());
246 Profile* profile = Profile::FromBrowserContext(contents->browser_context()); 238 Profile* profile = Profile::FromBrowserContext(contents->browser_context());
247 profile->GetChromeURLDataManager()->AddDataSource(html_source); 239 profile->GetChromeURLDataManager()->AddDataSource(html_source);
248 240
249 // Listen for theme installation. 241 // Listen for theme installation.
250 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, 242 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
251 Source<ThemeService>( 243 Source<ThemeService>(
252 ThemeServiceFactory::GetForProfile(GetProfile()))); 244 ThemeServiceFactory::GetForProfile(GetProfile())));
253 // Listen for bookmark bar visibility changes.
254 registrar_.Add(this,
255 chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED,
256 NotificationService::AllSources());
257 } 245 }
258 246
259 NewTabUI::~NewTabUI() { 247 NewTabUI::~NewTabUI() {
260 } 248 }
261 249
262 // The timer callback. If enough time has elapsed since the last paint 250 // The timer callback. If enough time has elapsed since the last paint
263 // message, we say we're done painting; otherwise, we keep waiting. 251 // message, we say we're done painting; otherwise, we keep waiting.
264 void NewTabUI::PaintTimeout() { 252 void NewTabUI::PaintTimeout() {
265 // The amount of time there must be no painting for us to consider painting 253 // The amount of time there must be no painting for us to consider painting
266 // finished. Observed times are in the ~1200ms range on Windows. 254 // finished. Observed times are in the ~1200ms range on Windows.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: { 295 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: {
308 InitializeCSSCaches(); 296 InitializeCSSCaches();
309 ListValue args; 297 ListValue args;
310 args.Append(Value::CreateStringValue( 298 args.Append(Value::CreateStringValue(
311 ThemeServiceFactory::GetForProfile(GetProfile())->HasCustomImage( 299 ThemeServiceFactory::GetForProfile(GetProfile())->HasCustomImage(
312 IDR_THEME_NTP_ATTRIBUTION) ? 300 IDR_THEME_NTP_ATTRIBUTION) ?
313 "true" : "false")); 301 "true" : "false"));
314 CallJavascriptFunction("themeChanged", args); 302 CallJavascriptFunction("themeChanged", args);
315 break; 303 break;
316 } 304 }
317 case chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED: {
318 if (GetProfile()->GetPrefs()->IsManagedPreference(
319 prefs::kEnableBookmarkBar)) {
320 break;
321 }
322 if (!NTP4Enabled()) {
323 if (GetProfile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar))
324 CallJavascriptFunction("bookmarkBarAttached");
325 else
326 CallJavascriptFunction("bookmarkBarDetached");
327 }
328 break;
329 }
330 case content::NOTIFICATION_RENDER_WIDGET_HOST_DID_PAINT: { 305 case content::NOTIFICATION_RENDER_WIDGET_HOST_DID_PAINT: {
331 last_paint_ = base::TimeTicks::Now(); 306 last_paint_ = base::TimeTicks::Now();
332 break; 307 break;
333 } 308 }
334 default: 309 default:
335 CHECK(false) << "Unexpected notification: " << type; 310 CHECK(false) << "Unexpected notification: " << type;
336 } 311 }
337 } 312 }
338 313
339 void NewTabUI::InitializeCSSCaches() { 314 void NewTabUI::InitializeCSSCaches() {
340 Profile* profile = GetProfile(); 315 Profile* profile = GetProfile();
341 ThemeSource* theme = new ThemeSource(profile); 316 ThemeSource* theme = new ThemeSource(profile);
342 profile->GetChromeURLDataManager()->AddDataSource(theme); 317 profile->GetChromeURLDataManager()->AddDataSource(theme);
343 } 318 }
344 319
345 // static 320 // static
346 void NewTabUI::RegisterUserPrefs(PrefService* prefs) { 321 void NewTabUI::RegisterUserPrefs(PrefService* prefs) {
347 prefs->RegisterIntegerPref(prefs::kNTPPrefVersion, 322 prefs->RegisterIntegerPref(prefs::kNTPPrefVersion,
348 0, 323 0,
349 PrefService::UNSYNCABLE_PREF); 324 PrefService::UNSYNCABLE_PREF);
350 325
351 NewTabPageHandler::RegisterUserPrefs(prefs); 326 NewTabPageHandler::RegisterUserPrefs(prefs);
352 AppLauncherHandler::RegisterUserPrefs(prefs); 327 AppLauncherHandler::RegisterUserPrefs(prefs);
353 MostVisitedHandler::RegisterUserPrefs(prefs); 328 MostVisitedHandler::RegisterUserPrefs(prefs);
354 ShownSectionsHandler::RegisterUserPrefs(prefs); 329 ShownSectionsHandler::RegisterUserPrefs(prefs);
355 if (NTP4Enabled()) 330 BookmarksHandler::RegisterUserPrefs(prefs);
356 BookmarksHandler::RegisterUserPrefs(prefs);
357 331
358 UpdateUserPrefsVersion(prefs); 332 UpdateUserPrefsVersion(prefs);
359 } 333 }
360 334
361 // static 335 // static
362 bool NewTabUI::UpdateUserPrefsVersion(PrefService* prefs) { 336 bool NewTabUI::UpdateUserPrefsVersion(PrefService* prefs) {
363 const int old_pref_version = prefs->GetInteger(prefs::kNTPPrefVersion); 337 const int old_pref_version = prefs->GetInteger(prefs::kNTPPrefVersion);
364 if (old_pref_version != current_pref_version()) { 338 if (old_pref_version != current_pref_version()) {
365 MigrateUserPrefs(prefs, old_pref_version, current_pref_version()); 339 MigrateUserPrefs(prefs, old_pref_version, current_pref_version());
366 prefs->SetInteger(prefs::kNTPPrefVersion, current_pref_version()); 340 prefs->SetInteger(prefs::kNTPPrefVersion, current_pref_version());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 direction = kRTLHtmlTextDirection; 393 direction = kRTLHtmlTextDirection;
420 } else { 394 } else {
421 base::i18n::WrapStringWithLTRFormatting(&title_to_set); 395 base::i18n::WrapStringWithLTRFormatting(&title_to_set);
422 } 396 }
423 } 397 }
424 } 398 }
425 dictionary->SetString("title", title_to_set); 399 dictionary->SetString("title", title_to_set);
426 dictionary->SetString("direction", direction); 400 dictionary->SetString("direction", direction);
427 } 401 }
428 402
429 // static
430 bool NewTabUI::NTP4Enabled() {
431 #if defined(TOUCH_UI)
432 return CommandLine::ForCurrentProcess()->HasSwitch(switches::kNewTabPage);
433 #else
434 return !CommandLine::ForCurrentProcess()->HasSwitch(switches::kNewTabPage);
435 #endif
436 }
437
438 /////////////////////////////////////////////////////////////////////////////// 403 ///////////////////////////////////////////////////////////////////////////////
439 // NewTabHTMLSource 404 // NewTabHTMLSource
440 405
441 NewTabUI::NewTabHTMLSource::NewTabHTMLSource(Profile* profile) 406 NewTabUI::NewTabHTMLSource::NewTabHTMLSource(Profile* profile)
442 : DataSource(chrome::kChromeUINewTabHost, MessageLoop::current()), 407 : DataSource(chrome::kChromeUINewTabHost, MessageLoop::current()),
443 profile_(profile) { 408 profile_(profile) {
444 } 409 }
445 410
446 void NewTabUI::NewTabHTMLSource::StartDataRequest(const std::string& path, 411 void NewTabUI::NewTabHTMLSource::StartDataRequest(const std::string& path,
447 bool is_incognito, 412 bool is_incognito,
(...skipping 16 matching lines...) Expand all
464 SendResponse(request_id, html_bytes); 429 SendResponse(request_id, html_bytes);
465 } 430 }
466 431
467 std::string NewTabUI::NewTabHTMLSource::GetMimeType(const std::string&) const { 432 std::string NewTabUI::NewTabHTMLSource::GetMimeType(const std::string&) const {
468 return "text/html"; 433 return "text/html";
469 } 434 }
470 435
471 bool NewTabUI::NewTabHTMLSource::ShouldReplaceExistingSource() const { 436 bool NewTabUI::NewTabHTMLSource::ShouldReplaceExistingSource() const {
472 return false; 437 return false;
473 } 438 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698