OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/bind_helpers.h" | 12 #include "base/bind_helpers.h" |
13 #include "base/command_line.h" | 13 #include "base/command_line.h" |
14 #include "base/i18n/rtl.h" | 14 #include "base/i18n/rtl.h" |
15 #include "base/lazy_instance.h" | 15 #include "base/lazy_instance.h" |
16 #include "base/memory/singleton.h" | 16 #include "base/memory/singleton.h" |
17 #include "base/metrics/histogram.h" | 17 #include "base/metrics/histogram.h" |
18 #include "base/string_number_conversions.h" | 18 #include "base/string_number_conversions.h" |
19 #include "base/threading/thread.h" | 19 #include "base/threading/thread.h" |
20 #include "base/utf_string_conversions.h" | 20 #include "base/utf_string_conversions.h" |
21 #include "chrome/browser/defaults.h" | 21 #include "chrome/browser/defaults.h" |
22 #include "chrome/browser/extensions/app_launcher.h" | |
22 #include "chrome/browser/prefs/pref_service.h" | 23 #include "chrome/browser/prefs/pref_service.h" |
23 #include "chrome/browser/profiles/profile.h" | 24 #include "chrome/browser/profiles/profile.h" |
24 #include "chrome/browser/sessions/session_types.h" | 25 #include "chrome/browser/sessions/session_types.h" |
25 #include "chrome/browser/sync/profile_sync_service.h" | 26 #include "chrome/browser/sync/profile_sync_service.h" |
26 #include "chrome/browser/themes/theme_service.h" | 27 #include "chrome/browser/themes/theme_service.h" |
27 #include "chrome/browser/themes/theme_service_factory.h" | 28 #include "chrome/browser/themes/theme_service_factory.h" |
28 #include "chrome/browser/ui/browser.h" | 29 #include "chrome/browser/ui/browser.h" |
29 #include "chrome/browser/ui/webui/metrics_handler.h" | 30 #include "chrome/browser/ui/webui/metrics_handler.h" |
30 #include "chrome/browser/ui/webui/ntp/favicon_webui_handler.h" | 31 #include "chrome/browser/ui/webui/ntp/favicon_webui_handler.h" |
31 #include "chrome/browser/ui/webui/ntp/foreign_session_handler.h" | 32 #include "chrome/browser/ui/webui/ntp/foreign_session_handler.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
111 web_ui->AddMessageHandler(new MetricsHandler()); | 112 web_ui->AddMessageHandler(new MetricsHandler()); |
112 #if !defined(OS_ANDROID) | 113 #if !defined(OS_ANDROID) |
113 web_ui->AddMessageHandler(new NewTabPageHandler()); | 114 web_ui->AddMessageHandler(new NewTabPageHandler()); |
114 if (NewTabUI::IsDiscoveryInNTPEnabled()) | 115 if (NewTabUI::IsDiscoveryInNTPEnabled()) |
115 web_ui->AddMessageHandler(new SuggestionsHandler()); | 116 web_ui->AddMessageHandler(new SuggestionsHandler()); |
116 // Android doesn't have a sync promo/username on NTP. | 117 // Android doesn't have a sync promo/username on NTP. |
117 if (GetProfile()->IsSyncAccessible()) | 118 if (GetProfile()->IsSyncAccessible()) |
118 web_ui->AddMessageHandler(new NewTabPageSyncHandler()); | 119 web_ui->AddMessageHandler(new NewTabPageSyncHandler()); |
119 | 120 |
120 // Or apps. | 121 // Or apps. |
121 if (ShouldShowApps()) { | 122 ExtensionService* service = GetProfile()->GetExtensionService(); |
Evan Stade
2013/01/25 00:11:02
revert this
jeremya
2013/01/25 00:20:42
Done.
| |
122 ExtensionService* service = GetProfile()->GetExtensionService(); | 123 // We might not have an ExtensionService (on ChromeOS when not logged in |
123 // We might not have an ExtensionService (on ChromeOS when not logged in | 124 // for example). |
124 // for example). | 125 if (service) |
125 if (service) | 126 web_ui->AddMessageHandler(new AppLauncherHandler(service)); |
126 web_ui->AddMessageHandler(new AppLauncherHandler(service)); | |
127 } | |
128 #endif | 127 #endif |
129 | 128 |
130 web_ui->AddMessageHandler(new FaviconWebUIHandler()); | 129 web_ui->AddMessageHandler(new FaviconWebUIHandler()); |
131 } | 130 } |
132 | 131 |
133 #if defined(OS_ANDROID) | 132 #if defined(OS_ANDROID) |
134 // These handlers are specific to the Android NTP page. | 133 // These handlers are specific to the Android NTP page. |
135 web_ui->AddMessageHandler(new BookmarksHandler()); | 134 web_ui->AddMessageHandler(new BookmarksHandler()); |
136 web_ui->AddMessageHandler(new ContextMenuHandler()); | 135 web_ui->AddMessageHandler(new ContextMenuHandler()); |
137 web_ui->AddMessageHandler(new NewTabPageReadyHandler()); | 136 web_ui->AddMessageHandler(new NewTabPageReadyHandler()); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
286 NewTabPageHandler::RegisterUserPrefs(prefs); | 285 NewTabPageHandler::RegisterUserPrefs(prefs); |
287 if (NewTabUI::IsDiscoveryInNTPEnabled()) | 286 if (NewTabUI::IsDiscoveryInNTPEnabled()) |
288 SuggestionsHandler::RegisterUserPrefs(prefs); | 287 SuggestionsHandler::RegisterUserPrefs(prefs); |
289 #endif | 288 #endif |
290 MostVisitedHandler::RegisterUserPrefs(prefs); | 289 MostVisitedHandler::RegisterUserPrefs(prefs); |
291 browser_sync::ForeignSessionHandler::RegisterUserPrefs(prefs); | 290 browser_sync::ForeignSessionHandler::RegisterUserPrefs(prefs); |
292 } | 291 } |
293 | 292 |
294 // static | 293 // static |
295 bool NewTabUI::ShouldShowApps() { | 294 bool NewTabUI::ShouldShowApps() { |
296 #if defined(USE_ASH) || defined(OS_ANDROID) | 295 #if defined(OS_ANDROID) |
297 // Ash shows apps in app list thus should not show apps page in NTP4. | 296 // Ash shows apps in app list thus should not show apps page in NTP4. |
298 // Android does not have apps. | 297 // Android does not have apps. |
299 return false; | 298 return false; |
300 #else | 299 #else |
301 return !CommandLine::ForCurrentProcess()->HasSwitch( | 300 return !extensions::IsAppLauncherEnabled(); |
302 switches::kShowAppListShortcut); | |
303 #endif | 301 #endif |
304 } | 302 } |
305 | 303 |
306 // static | 304 // static |
307 bool NewTabUI::IsDiscoveryInNTPEnabled() { | 305 bool NewTabUI::IsDiscoveryInNTPEnabled() { |
308 // TODO(beaudoin): The flag was removed during a clean-up pass. We leave that | 306 // TODO(beaudoin): The flag was removed during a clean-up pass. We leave that |
309 // here to easily enable it back when we will explore this option again. | 307 // here to easily enable it back when we will explore this option again. |
310 return false; | 308 return false; |
311 } | 309 } |
312 | 310 |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
423 void NewTabUI::NewTabHTMLSource::AddResource(const char* resource, | 421 void NewTabUI::NewTabHTMLSource::AddResource(const char* resource, |
424 const char* mime_type, | 422 const char* mime_type, |
425 int resource_id) { | 423 int resource_id) { |
426 DCHECK(resource); | 424 DCHECK(resource); |
427 DCHECK(mime_type); | 425 DCHECK(mime_type); |
428 resource_map_[std::string(resource)] = | 426 resource_map_[std::string(resource)] = |
429 std::make_pair(std::string(mime_type), resource_id); | 427 std::make_pair(std::string(mime_type), resource_id); |
430 } | 428 } |
431 | 429 |
432 NewTabUI::NewTabHTMLSource::~NewTabHTMLSource() {} | 430 NewTabUI::NewTabHTMLSource::~NewTabHTMLSource() {} |
OLD | NEW |