OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/search/local_ntp_source.h" | 5 #include "chrome/browser/search/local_ntp_source.h" |
6 | 6 |
7 #include "base/json/json_string_value_serializer.h" | 7 #include "base/json/json_string_value_serializer.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/memory/ref_counted_memory.h" | 9 #include "base/memory/ref_counted_memory.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "ui/base/webui/jstemplate_builder.h" | 29 #include "ui/base/webui/jstemplate_builder.h" |
30 #include "ui/base/webui/web_ui_util.h" | 30 #include "ui/base/webui/web_ui_util.h" |
31 #include "url/gurl.h" | 31 #include "url/gurl.h" |
32 | 32 |
33 namespace { | 33 namespace { |
34 | 34 |
35 // Constants related to the Material Design NTP field trial. | 35 // Constants related to the Material Design NTP field trial. |
36 const char kMaterialDesignNTPFieldTrialName[] = "MaterialDesignNTP"; | 36 const char kMaterialDesignNTPFieldTrialName[] = "MaterialDesignNTP"; |
37 const char kMaterialDesignNTPFieldTrialEnabledPrefix[] = "Enabled"; | 37 const char kMaterialDesignNTPFieldTrialEnabledPrefix[] = "Enabled"; |
38 | 38 |
39 // Name to be used for the new design in local resources. | 39 // Names of NTP designs in local resources, also used in CSS. |
| 40 const char kClassicalNTPName[] = "classical"; |
40 const char kMaterialDesignNTPName[] = "md"; | 41 const char kMaterialDesignNTPName[] = "md"; |
41 | 42 |
42 // Signifies a locally constructed resource, i.e. not from grit/. | 43 // Signifies a locally constructed resource, i.e. not from grit/. |
43 const int kLocalResource = -1; | 44 const int kLocalResource = -1; |
44 | 45 |
45 const char kConfigDataFilename[] = "config.js"; | 46 const char kConfigDataFilename[] = "config.js"; |
46 const char kLocalNTPFilename[] = "local-ntp.html"; | 47 const char kLocalNTPFilename[] = "local-ntp.html"; |
47 | 48 |
48 const struct Resource{ | 49 const struct Resource{ |
49 const char* filename; | 50 const char* filename; |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 const content::URLDataSource::GotDataCallback& callback) { | 182 const content::URLDataSource::GotDataCallback& callback) { |
182 const std::string stripped_path = StripParameters(path); | 183 const std::string stripped_path = StripParameters(path); |
183 if (stripped_path == kConfigDataFilename) { | 184 if (stripped_path == kConfigDataFilename) { |
184 std::string config_data_js = GetConfigData(profile_); | 185 std::string config_data_js = GetConfigData(profile_); |
185 callback.Run(base::RefCountedString::TakeString(&config_data_js)); | 186 callback.Run(base::RefCountedString::TakeString(&config_data_js)); |
186 return; | 187 return; |
187 } | 188 } |
188 if (stripped_path == kLocalNTPFilename) { | 189 if (stripped_path == kLocalNTPFilename) { |
189 SendResourceWithClass( | 190 SendResourceWithClass( |
190 IDR_LOCAL_NTP_HTML, | 191 IDR_LOCAL_NTP_HTML, |
191 IsMaterialDesignEnabled() ? kMaterialDesignNTPName : "", | 192 IsMaterialDesignEnabled() ? kMaterialDesignNTPName : kClassicalNTPName, |
192 callback); | 193 callback); |
193 return; | 194 return; |
194 } | 195 } |
195 float scale = 1.0f; | 196 float scale = 1.0f; |
196 std::string filename; | 197 std::string filename; |
197 webui::ParsePathAndScale( | 198 webui::ParsePathAndScale( |
198 GURL(GetLocalNtpPath() + stripped_path), &filename, &scale); | 199 GURL(GetLocalNtpPath() + stripped_path), &filename, &scale); |
199 ui::ScaleFactor scale_factor = ui::GetSupportedScaleFactor(scale); | 200 ui::ScaleFactor scale_factor = ui::GetSupportedScaleFactor(scale); |
200 for (size_t i = 0; i < arraysize(kResources); ++i) { | 201 for (size_t i = 0; i < arraysize(kResources); ++i) { |
201 if (filename == kResources[i].filename) { | 202 if (filename == kResources[i].filename) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 void LocalNtpSource::SendResourceWithClass( | 246 void LocalNtpSource::SendResourceWithClass( |
246 int resource_id, | 247 int resource_id, |
247 const std::string& class_name, | 248 const std::string& class_name, |
248 const content::URLDataSource::GotDataCallback& callback) { | 249 const content::URLDataSource::GotDataCallback& callback) { |
249 base::StringPiece resource_data = | 250 base::StringPiece resource_data = |
250 ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id); | 251 ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id); |
251 std::string response(resource_data.as_string()); | 252 std::string response(resource_data.as_string()); |
252 ReplaceFirstSubstringAfterOffset(&response, 0, "{{CLASS}}", class_name); | 253 ReplaceFirstSubstringAfterOffset(&response, 0, "{{CLASS}}", class_name); |
253 callback.Run(base::RefCountedString::TakeString(&response)); | 254 callback.Run(base::RefCountedString::TakeString(&response)); |
254 } | 255 } |
OLD | NEW |