Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5609)

Unified Diff: chrome/browser/search/local_ntp_source.cc

Issue 996313002: Serve fast NTP when experiment is enabled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/search/local_ntp_source.cc
diff --git a/chrome/browser/search/local_ntp_source.cc b/chrome/browser/search/local_ntp_source.cc
index c25e6ec67b08192e4ffe4a074862bdce6e5d296c..625ab096ffd76c0cbf09eb6573a67513787e4193 100644
--- a/chrome/browser/search/local_ntp_source.cc
+++ b/chrome/browser/search/local_ntp_source.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/scoped_ptr.h"
+#include "base/metrics/field_trial.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
@@ -78,6 +79,21 @@ bool DefaultSearchProviderIsGoogle(Profile* profile) {
SEARCH_ENGINE_GOOGLE);
}
+// Returns whether we are in the Fast NTP experiment or not.
+bool IsLocalNTPFastEnabled() {
+ return StartsWithASCII(base::FieldTrialList::FindFullName("LocalNTPFast"),
+ "Enabled", true);
+}
+
+// Serves a particular resource.
+// Used for bypassing the default resources when we are in an experiment.
+void SendResource(int resource_id,
+ const content::URLDataSource::GotDataCallback& callback) {
+ scoped_refptr<base::RefCountedStaticMemory> response(
+ ResourceBundle::GetSharedInstance().LoadDataResourceBytes(resource_id));
+ callback.Run(response.get());
+}
+
// Adds a localized string keyed by resource id to the dictionary.
void AddString(base::DictionaryValue* dictionary,
const std::string& key,
@@ -165,6 +181,15 @@ void LocalNtpSource::StartDataRequest(
callback.Run(base::RefCountedString::TakeString(&config_data_js));
return;
}
+ if (IsLocalNTPFastEnabled()) {
+ if (stripped_path == "local-ntp.html") {
+ return SendResource(IDR_LOCAL_NTP_FAST_HTML, callback);
+ } else if (stripped_path == "local-ntp.js") {
+ return SendResource(IDR_LOCAL_NTP_FAST_JS, callback);
+ } else if (stripped_path == "local-ntp.css") {
+ return SendResource(IDR_LOCAL_NTP_FAST_CSS, callback);
+ }
+ }
float scale = 1.0f;
std::string filename;
webui::ParsePathAndScale(
@@ -184,12 +209,9 @@ void LocalNtpSource::StartDataRequest(
std::string LocalNtpSource::GetMimeType(
const std::string& path) const {
- const std::string& stripped_path = StripParameters(path);
- std::string filename;
- webui::ParsePathAndScale(GURL(GetLocalNtpPath() + stripped_path), &filename,
- NULL);
+ const std::string stripped_path = StripParameters(path);
for (size_t i = 0; i < arraysize(kResources); ++i) {
- if (filename == kResources[i].filename)
+ if (stripped_path == kResources[i].filename)
return kResources[i].mime_type;
}
return std::string();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698