| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/ntp_resource_cache.h" | 5 #include "chrome/browser/dom_ui/ntp_resource_cache.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "app/animation.h" | 10 #include "app/animation.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 "http://www.google.com/support/chrome/bin/answer.py?answer=165139"; | 57 "http://www.google.com/support/chrome/bin/answer.py?answer=165139"; |
| 58 | 58 |
| 59 // The URL to be loaded to display Help. | 59 // The URL to be loaded to display Help. |
| 60 const char* const kHelpContentUrl = | 60 const char* const kHelpContentUrl = |
| 61 "http://www.google.com/support/chrome/"; | 61 "http://www.google.com/support/chrome/"; |
| 62 | 62 |
| 63 std::wstring GetUrlWithLang(const char* const url) { | 63 std::wstring GetUrlWithLang(const char* const url) { |
| 64 return ASCIIToWide(google_util::AppendGoogleLocaleParam(GURL(url)).spec()); | 64 return ASCIIToWide(google_util::AppendGoogleLocaleParam(GURL(url)).spec()); |
| 65 } | 65 } |
| 66 | 66 |
| 67 // In case a file path to the new tab page was provided this tries to load | |
| 68 // the file and returns the file content if successful. This returns an | |
| 69 // empty string in case of failure. | |
| 70 std::string GetCustomNewTabPageFromCommandLine() { | |
| 71 const CommandLine* command_line = CommandLine::ForCurrentProcess(); | |
| 72 const FilePath file_path = command_line->GetSwitchValuePath( | |
| 73 switches::kNewTabPage); | |
| 74 | |
| 75 if (!file_path.empty()) { | |
| 76 // Read the file contents in, blocking the UI thread of the browser. | |
| 77 // This is for testing purposes only! It is used to test new versions of | |
| 78 // the new tab page using a special command line option. Never use this | |
| 79 // in a way that will be used by default in product. | |
| 80 std::string file_contents; | |
| 81 if (file_util::ReadFileToString(FilePath(file_path), &file_contents)) | |
| 82 return file_contents; | |
| 83 } | |
| 84 | |
| 85 return std::string(); | |
| 86 } | |
| 87 | |
| 88 std::string SkColorToRGBAString(SkColor color) { | 67 std::string SkColorToRGBAString(SkColor color) { |
| 89 // We convert the alpha using DoubleToString because StringPrintf will use | 68 // We convert the alpha using DoubleToString because StringPrintf will use |
| 90 // locale specific formatters (e.g., use , instead of . in German). | 69 // locale specific formatters (e.g., use , instead of . in German). |
| 91 return StringPrintf("rgba(%d,%d,%d,%s)", SkColorGetR(color), | 70 return StringPrintf("rgba(%d,%d,%d,%s)", SkColorGetR(color), |
| 92 SkColorGetG(color), SkColorGetB(color), | 71 SkColorGetG(color), SkColorGetB(color), |
| 93 DoubleToString(SkColorGetA(color) / 255.0).c_str()); | 72 DoubleToString(SkColorGetA(color) / 255.0).c_str()); |
| 94 } | 73 } |
| 95 | 74 |
| 96 // Get the CSS string for the background position on the new tab page for the | 75 // Get the CSS string for the background position on the new tab page for the |
| 97 // states when the bar is attached or detached. | 76 // states when the bar is attached or detached. |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 bool has_3d = | 299 bool has_3d = |
| 321 command_line->HasSwitch(switches::kEnableAcceleratedCompositing); | 300 command_line->HasSwitch(switches::kEnableAcceleratedCompositing); |
| 322 localized_strings.SetString(L"has_3d", has_3d ? "true" : "false"); | 301 localized_strings.SetString(L"has_3d", has_3d ? "true" : "false"); |
| 323 | 302 |
| 324 // Pass the shown_sections pref early so that we can prevent flicker. | 303 // Pass the shown_sections pref early so that we can prevent flicker. |
| 325 ShownSectionsHandler::SetFirstAppLauncherRunPref(profile_->GetPrefs()); | 304 ShownSectionsHandler::SetFirstAppLauncherRunPref(profile_->GetPrefs()); |
| 326 const int shown_sections = profile_->GetPrefs()->GetInteger( | 305 const int shown_sections = profile_->GetPrefs()->GetInteger( |
| 327 prefs::kNTPShownSections); | 306 prefs::kNTPShownSections); |
| 328 localized_strings.SetInteger(L"shown_sections", shown_sections); | 307 localized_strings.SetInteger(L"shown_sections", shown_sections); |
| 329 | 308 |
| 330 // In case we have the new new tab page enabled we first try to read the file | 309 base::StringPiece new_tab_html(ResourceBundle::GetSharedInstance(). |
| 331 // provided on the command line. If that fails we just get the resource from | 310 GetRawDataResource(IDR_NEW_NEW_TAB_HTML)); |
| 332 // the resource bundle. | |
| 333 base::StringPiece new_tab_html; | |
| 334 std::string new_tab_html_str; | |
| 335 new_tab_html_str = GetCustomNewTabPageFromCommandLine(); | |
| 336 | |
| 337 if (!new_tab_html_str.empty()) { | |
| 338 new_tab_html = base::StringPiece(new_tab_html_str); | |
| 339 } | |
| 340 | |
| 341 if (new_tab_html.empty()) { | |
| 342 new_tab_html = ResourceBundle::GetSharedInstance().GetRawDataResource( | |
| 343 IDR_NEW_NEW_TAB_HTML); | |
| 344 } | |
| 345 | 311 |
| 346 // Inject the template data into the HTML so that it is available before any | 312 // Inject the template data into the HTML so that it is available before any |
| 347 // layout is needed. | 313 // layout is needed. |
| 348 std::string json_html; | 314 std::string json_html; |
| 349 jstemplate_builder::AppendJsonHtml(&localized_strings, &json_html); | 315 jstemplate_builder::AppendJsonHtml(&localized_strings, &json_html); |
| 350 | 316 |
| 351 static const base::StringPiece template_data_placeholder( | 317 static const base::StringPiece template_data_placeholder( |
| 352 "<!-- template data placeholder -->"); | 318 "<!-- template data placeholder -->"); |
| 353 size_t pos = new_tab_html.find(template_data_placeholder); | 319 size_t pos = new_tab_html.find(template_data_placeholder); |
| 354 | 320 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 // Create the string from our template and the replacements. | 447 // Create the string from our template and the replacements. |
| 482 const std::string css_string = ReplaceStringPlaceholders( | 448 const std::string css_string = ReplaceStringPlaceholders( |
| 483 new_tab_theme_css, subst, NULL); | 449 new_tab_theme_css, subst, NULL); |
| 484 std::string full_css = ReplaceStringPlaceholders(css_string, subst2, NULL); | 450 std::string full_css = ReplaceStringPlaceholders(css_string, subst2, NULL); |
| 485 | 451 |
| 486 new_tab_css_ = new RefCountedBytes; | 452 new_tab_css_ = new RefCountedBytes; |
| 487 new_tab_css_->data.resize(full_css.size()); | 453 new_tab_css_->data.resize(full_css.size()); |
| 488 std::copy(full_css.begin(), full_css.end(), | 454 std::copy(full_css.begin(), full_css.end(), |
| 489 new_tab_css_->data.begin()); | 455 new_tab_css_->data.begin()); |
| 490 } | 456 } |
| OLD | NEW |