| 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 |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 html_source->AddResource("suggestions_page.js", "application/javascript", | 152 html_source->AddResource("suggestions_page.js", "application/javascript", |
| 153 IDR_SUGGESTIONS_PAGE_JS); | 153 IDR_SUGGESTIONS_PAGE_JS); |
| 154 } | 154 } |
| 155 // ChromeURLDataManager assumes the ownership of the html_source and in some | 155 // ChromeURLDataManager assumes the ownership of the html_source and in some |
| 156 // tests immediately deletes it, so html_source should not be accessed after | 156 // tests immediately deletes it, so html_source should not be accessed after |
| 157 // this call. | 157 // this call. |
| 158 GetProfile()->GetChromeURLDataManager()->AddDataSource(html_source); | 158 GetProfile()->GetChromeURLDataManager()->AddDataSource(html_source); |
| 159 | 159 |
| 160 pref_change_registrar_.Init(GetProfile()->GetPrefs()); | 160 pref_change_registrar_.Init(GetProfile()->GetPrefs()); |
| 161 pref_change_registrar_.Add(prefs::kShowBookmarkBar, this); | 161 pref_change_registrar_.Add(prefs::kShowBookmarkBar, this); |
| 162 |
| 163 #if !defined(OS_ANDROID) |
| 164 // TODO(tedchoc): Remove when Android uses a natively rendered Android UI |
| 165 // for the NTP. |
| 162 // Listen for theme installation. | 166 // Listen for theme installation. |
| 163 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, | 167 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
| 164 content::Source<ThemeService>( | 168 content::Source<ThemeService>( |
| 165 ThemeServiceFactory::GetForProfile(GetProfile()))); | 169 ThemeServiceFactory::GetForProfile(GetProfile()))); |
| 170 #endif |
| 166 } | 171 } |
| 167 | 172 |
| 168 NewTabUI::~NewTabUI() { | 173 NewTabUI::~NewTabUI() { |
| 169 g_live_new_tabs.Pointer()->erase(this); | 174 g_live_new_tabs.Pointer()->erase(this); |
| 170 } | 175 } |
| 171 | 176 |
| 172 // The timer callback. If enough time has elapsed since the last paint | 177 // The timer callback. If enough time has elapsed since the last paint |
| 173 // message, we say we're done painting; otherwise, we keep waiting. | 178 // message, we say we're done painting; otherwise, we keep waiting. |
| 174 void NewTabUI::PaintTimeout() { | 179 void NewTabUI::PaintTimeout() { |
| 175 // The amount of time there must be no painting for us to consider painting | 180 // The amount of time there must be no painting for us to consider painting |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 const content::NotificationSource& source, | 228 const content::NotificationSource& source, |
| 224 const content::NotificationDetails& details) { | 229 const content::NotificationDetails& details) { |
| 225 switch (type) { | 230 switch (type) { |
| 226 case chrome::NOTIFICATION_PREF_CHANGED: { // kShowBookmarkBar | 231 case chrome::NOTIFICATION_PREF_CHANGED: { // kShowBookmarkBar |
| 227 StringValue attached( | 232 StringValue attached( |
| 228 GetProfile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar) ? | 233 GetProfile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar) ? |
| 229 "true" : "false"); | 234 "true" : "false"); |
| 230 web_ui()->CallJavascriptFunction("ntp.setBookmarkBarAttached", attached); | 235 web_ui()->CallJavascriptFunction("ntp.setBookmarkBarAttached", attached); |
| 231 break; | 236 break; |
| 232 } | 237 } |
| 238 #if !defined(OS_ANDROID) |
| 239 // TODO(tedchoc): Remove when Android uses a natively rendered Android UI |
| 240 // for the NTP. |
| 233 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: { | 241 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: { |
| 234 InitializeCSSCaches(); | 242 InitializeCSSCaches(); |
| 235 StringValue attribution( | 243 StringValue attribution( |
| 236 ThemeServiceFactory::GetForProfile(GetProfile())->HasCustomImage( | 244 ThemeServiceFactory::GetForProfile(GetProfile())->HasCustomImage( |
| 237 IDR_THEME_NTP_ATTRIBUTION) ? "true" : "false"); | 245 IDR_THEME_NTP_ATTRIBUTION) ? "true" : "false"); |
| 238 web_ui()->CallJavascriptFunction("ntp.themeChanged", attribution); | 246 web_ui()->CallJavascriptFunction("ntp.themeChanged", attribution); |
| 239 break; | 247 break; |
| 240 } | 248 } |
| 249 #endif |
| 241 case content::NOTIFICATION_RENDER_WIDGET_HOST_DID_PAINT: { | 250 case content::NOTIFICATION_RENDER_WIDGET_HOST_DID_PAINT: { |
| 242 last_paint_ = base::TimeTicks::Now(); | 251 last_paint_ = base::TimeTicks::Now(); |
| 243 break; | 252 break; |
| 244 } | 253 } |
| 245 default: | 254 default: |
| 246 CHECK(false) << "Unexpected notification: " << type; | 255 CHECK(false) << "Unexpected notification: " << type; |
| 247 } | 256 } |
| 248 } | 257 } |
| 249 | 258 |
| 250 void NewTabUI::InitializeCSSCaches() { | 259 void NewTabUI::InitializeCSSCaches() { |
| 260 #if !defined(OS_ANDROID) |
| 261 // TODO(tedchoc): Remove when Android uses a natively rendered Android UI |
| 262 // for the NTP. |
| 251 Profile* profile = GetProfile(); | 263 Profile* profile = GetProfile(); |
| 252 ThemeSource* theme = new ThemeSource(profile); | 264 ThemeSource* theme = new ThemeSource(profile); |
| 253 profile->GetChromeURLDataManager()->AddDataSource(theme); | 265 profile->GetChromeURLDataManager()->AddDataSource(theme); |
| 266 #endif |
| 254 } | 267 } |
| 255 | 268 |
| 256 // static | 269 // static |
| 257 void NewTabUI::RegisterUserPrefs(PrefService* prefs) { | 270 void NewTabUI::RegisterUserPrefs(PrefService* prefs) { |
| 258 NewTabPageHandler::RegisterUserPrefs(prefs); | 271 NewTabPageHandler::RegisterUserPrefs(prefs); |
| 259 AppLauncherHandler::RegisterUserPrefs(prefs); | 272 AppLauncherHandler::RegisterUserPrefs(prefs); |
| 260 MostVisitedHandler::RegisterUserPrefs(prefs); | 273 MostVisitedHandler::RegisterUserPrefs(prefs); |
| 261 if (NewTabUI::IsSuggestionsPageEnabled()) | 274 if (NewTabUI::IsSuggestionsPageEnabled()) |
| 262 SuggestionsHandler::RegisterUserPrefs(prefs); | 275 SuggestionsHandler::RegisterUserPrefs(prefs); |
| 263 } | 276 } |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 } | 420 } |
| 408 | 421 |
| 409 void NewTabUI::NewTabHTMLSource::AddResource(const char* resource, | 422 void NewTabUI::NewTabHTMLSource::AddResource(const char* resource, |
| 410 const char* mime_type, | 423 const char* mime_type, |
| 411 int resource_id) { | 424 int resource_id) { |
| 412 DCHECK(resource); | 425 DCHECK(resource); |
| 413 DCHECK(mime_type); | 426 DCHECK(mime_type); |
| 414 resource_map_[std::string(resource)] = | 427 resource_map_[std::string(resource)] = |
| 415 std::make_pair(std::string(mime_type), resource_id); | 428 std::make_pair(std::string(mime_type), resource_id); |
| 416 } | 429 } |
| OLD | NEW |