| 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/dom_ui_theme_source.h" | 5 #include "chrome/browser/dom_ui/dom_ui_theme_source.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
| 9 #include "app/theme_provider.h" | 9 #include "app/theme_provider.h" |
| 10 #include "base/gfx/png_encoder.h" | 10 #include "base/gfx/png_encoder.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 SkColor color_link = tp->GetColor(BrowserThemeProvider::COLOR_NTP_LINK); | 95 SkColor color_link = tp->GetColor(BrowserThemeProvider::COLOR_NTP_LINK); |
| 96 SkColor color_section = | 96 SkColor color_section = |
| 97 tp->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION); | 97 tp->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION); |
| 98 SkColor color_section_text = | 98 SkColor color_section_text = |
| 99 tp->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION_TEXT); | 99 tp->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION_TEXT); |
| 100 SkColor color_section_link = | 100 SkColor color_section_link = |
| 101 tp->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION_LINK); | 101 tp->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION_LINK); |
| 102 | 102 |
| 103 // Generate the replacements. | 103 // Generate the replacements. |
| 104 std::vector<string16> subst; | 104 std::vector<string16> subst; |
| 105 // A second list of replacements, each of which must be in $$x format, |
| 106 // where x is a digit from 1-9. |
| 107 std::vector<string16> subst2; |
| 105 | 108 |
| 106 // Cache-buster for background. | 109 // Cache-buster for background. |
| 107 subst.push_back(UTF8ToUTF16(IntToString(static_cast<int>( | 110 subst.push_back(UTF8ToUTF16(IntToString(static_cast<int>( |
| 108 base::Time::Now().ToDoubleT())))); | 111 base::Time::Now().ToDoubleT())))); |
| 109 | 112 |
| 110 // Colors. | 113 // Colors. |
| 111 subst.push_back(SkColorToRGBAString(color_background)); | 114 subst.push_back(SkColorToRGBAString(color_background)); |
| 112 subst.push_back(UTF8ToUTF16(GetNewTabBackgroundCSS(false))); | 115 subst.push_back(UTF8ToUTF16(GetNewTabBackgroundCSS(false))); |
| 113 subst.push_back(UTF8ToUTF16(GetNewTabBackgroundCSS(true))); | 116 subst.push_back(UTF8ToUTF16(GetNewTabBackgroundCSS(true))); |
| 114 subst.push_back(SkColorToRGBAString(color_text)); | 117 subst.push_back(SkColorToRGBAString(color_text)); |
| 115 subst.push_back(SkColorToRGBAString(color_link)); | 118 subst.push_back(SkColorToRGBAString(color_link)); |
| 116 subst.push_back(SkColorToRGBAString(color_section)); | 119 subst.push_back(SkColorToRGBAString(color_section)); |
| 117 subst.push_back(SkColorToRGBAString(color_section_text)); | 120 subst.push_back(SkColorToRGBAString(color_section_text)); |
| 118 subst.push_back(SkColorToRGBAString(color_section_link)); | 121 subst.push_back(SkColorToRGBAString(color_section_link)); |
| 119 | 122 |
| 123 subst2.push_back(UTF8ToUTF16(GetNewTabBackgroundTilingCSS())); |
| 124 |
| 120 // Get our template. | 125 // Get our template. |
| 121 static const StringPiece new_tab_theme_css( | 126 static const StringPiece new_tab_theme_css( |
| 122 ResourceBundle::GetSharedInstance().GetRawDataResource( | 127 ResourceBundle::GetSharedInstance().GetRawDataResource( |
| 123 IDR_NEW_TAB_THEME_CSS)); | 128 IDR_NEW_TAB_THEME_CSS)); |
| 124 | 129 |
| 125 // Create the string from our template and the replacements. | 130 // Create the string from our template and the replacements. |
| 126 string16 format_string = ASCIIToUTF16(new_tab_theme_css.as_string()); | 131 string16 format_string = ASCIIToUTF16(new_tab_theme_css.as_string()); |
| 127 const std::string css_string = UTF16ToASCII(ReplaceStringPlaceholders( | 132 const std::string css_string = UTF16ToASCII(ReplaceStringPlaceholders( |
| 128 format_string, subst, NULL)); | 133 format_string, subst, NULL)); |
| 134 const std::string css_string2 = UTF16ToASCII(ReplaceStringPlaceholders( |
| 135 ASCIIToUTF16(css_string), subst2, NULL)); |
| 129 | 136 |
| 130 // Convert to a format appropriate for sending. | 137 // Convert to a format appropriate for sending. |
| 131 scoped_refptr<RefCountedBytes> css_bytes(new RefCountedBytes); | 138 scoped_refptr<RefCountedBytes> css_bytes(new RefCountedBytes); |
| 132 css_bytes->data.resize(css_string.size()); | 139 css_bytes->data.resize(css_string2.size()); |
| 133 std::copy(css_string.begin(), css_string.end(), css_bytes->data.begin()); | 140 std::copy(css_string2.begin(), css_string2.end(), css_bytes->data.begin()); |
| 134 | 141 |
| 135 // Send. | 142 // Send. |
| 136 SendResponse(request_id, css_bytes); | 143 SendResponse(request_id, css_bytes); |
| 137 } | 144 } |
| 138 | 145 |
| 139 void DOMUIThemeSource::SendThemeBitmap(int request_id, int resource_id) { | 146 void DOMUIThemeSource::SendThemeBitmap(int request_id, int resource_id) { |
| 140 ThemeProvider* tp = profile_->GetThemeProvider(); | 147 ThemeProvider* tp = profile_->GetThemeProvider(); |
| 141 DCHECK(tp); | 148 DCHECK(tp); |
| 142 | 149 |
| 143 SkBitmap* image = tp->GetBitmapNamed(resource_id); | 150 SkBitmap* image = tp->GetBitmapNamed(resource_id); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 164 int offset = BookmarkBarView::kNewtabBarHeight; | 171 int offset = BookmarkBarView::kNewtabBarHeight; |
| 165 #else | 172 #else |
| 166 int offset = 0; | 173 int offset = 0; |
| 167 #endif | 174 #endif |
| 168 | 175 |
| 169 if (alignment & BrowserThemeProvider::ALIGN_TOP) { | 176 if (alignment & BrowserThemeProvider::ALIGN_TOP) { |
| 170 if (alignment & BrowserThemeProvider::ALIGN_LEFT) | 177 if (alignment & BrowserThemeProvider::ALIGN_LEFT) |
| 171 return "0% " + IntToString(-offset) + "px"; | 178 return "0% " + IntToString(-offset) + "px"; |
| 172 else if (alignment & BrowserThemeProvider::ALIGN_RIGHT) | 179 else if (alignment & BrowserThemeProvider::ALIGN_RIGHT) |
| 173 return "100% " + IntToString(-offset) + "px"; | 180 return "100% " + IntToString(-offset) + "px"; |
| 174 return IntToString(-offset) + "px"; | 181 return "center " + IntToString(-offset) + "px"; |
| 175 } | 182 } |
| 176 return BrowserThemeProvider::AlignmentToString(alignment); | 183 return BrowserThemeProvider::AlignmentToString(alignment); |
| 177 } | 184 } |
| 185 |
| 186 std::string DOMUIThemeSource::GetNewTabBackgroundTilingCSS() { |
| 187 int repeat_mode; |
| 188 profile_->GetThemeProvider()->GetDisplayProperty( |
| 189 BrowserThemeProvider::NTP_BACKGROUND_TILING, &repeat_mode); |
| 190 return BrowserThemeProvider::TilingToString(repeat_mode); |
| 191 } |
| 192 |
| OLD | NEW |