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

Unified Diff: chrome/browser/ui/webui/theme_source.cc

Issue 2278423002: Misc. cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Forgot a few Created 4 years, 4 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
Index: chrome/browser/ui/webui/theme_source.cc
diff --git a/chrome/browser/ui/webui/theme_source.cc b/chrome/browser/ui/webui/theme_source.cc
index edc8e481ab72610abf1c7f2e2b79c9ff60fc33c8..2fe41a1b8e7ae3258a5f29ebb16b28505199ffbe 100644
--- a/chrome/browser/ui/webui/theme_source.cc
+++ b/chrome/browser/ui/webui/theme_source.cc
@@ -30,35 +30,36 @@
#include "ui/gfx/image/image_skia_rep.h"
#include "url/gurl.h"
-using content::BrowserThread;
-
namespace {
-GURL GetThemePath(const std::string& path) {
+GURL GetThemeURL(const std::string& path) {
return GURL(std::string(content::kChromeUIScheme) + "://" +
std::string(chrome::kChromeUIThemeHost) + "/" + path);
}
-// use a resource map rather than hard-coded strings.
-static const char* kNewTabCSSPath = "css/new_tab_theme.css";
-static const char* kNewIncognitoTabCSSPath = "css/incognito_new_tab_theme.css";
+bool IsNewTabCSSPath(const std::string& path) {
+ static const char kNewTabCSSPath[] = "css/new_tab_theme.css";
+ static const char kIncognitoNewTabCSSPath[] =
+ "css/incognito_new_tab_theme.css";
+ return (path == kNewTabCSSPath) || (path == kIncognitoNewTabCSSPath);
+}
void ProcessImageOnUIThread(const gfx::ImageSkia& image,
- float scale_factor,
+ float scale,
scoped_refptr<base::RefCountedBytes> data) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- const gfx::ImageSkiaRep& rep = image.GetRepresentation(scale_factor);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ const gfx::ImageSkiaRep& rep = image.GetRepresentation(scale);
gfx::PNGCodec::EncodeBGRASkBitmap(
rep.sk_bitmap(), false /* discard transparency */, &data->data());
}
void ProcessResourceOnUIThread(int resource_id,
- float scale_factor,
+ float scale,
scoped_refptr<base::RefCountedBytes> data) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
ProcessImageOnUIThread(
*ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id),
- scale_factor, data);
+ scale, data);
}
} // namespace
@@ -70,7 +71,7 @@ ThemeSource::ThemeSource(Profile* profile)
: profile_(profile->GetOriginalProfile()) {
// NB: it's important that this is |profile| and not |profile_|.
NTPResourceCache::WindowType win_type = NTPResourceCache::GetWindowType(
- profile, NULL);
+ profile, nullptr);
css_bytes_ =
NTPResourceCacheFactory::GetForProfile(profile)->GetNewTabCSS(win_type);
}
@@ -88,22 +89,18 @@ void ThemeSource::StartDataRequest(
int render_frame_id,
const content::URLDataSource::GotDataCallback& callback) {
// Default scale factor if not specified.
- float scale_factor = 1.0f;
- std::string uncached_path;
- webui::ParsePathAndScale(GetThemePath(path), &uncached_path, &scale_factor);
- scale_factor =
- ui::GetScaleForScaleFactor(ui::GetSupportedScaleFactor(scale_factor));
-
- if (uncached_path == kNewTabCSSPath ||
- uncached_path == kNewIncognitoTabCSSPath) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ float scale = 1.0f;
+ std::string parsed_path;
+ webui::ParsePathAndScale(GetThemeURL(path), &parsed_path, &scale);
+ if (IsNewTabCSSPath(parsed_path)) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
callback.Run(css_bytes_.get());
return;
}
int resource_id = -1;
- if (uncached_path == "current-channel-logo") {
+ if (parsed_path == "current-channel-logo") {
switch (chrome::GetChannel()) {
#if defined(GOOGLE_CHROME_BUILD)
case version_info::Channel::CANARY:
@@ -130,55 +127,44 @@ void ThemeSource::StartDataRequest(
break;
}
} else {
- resource_id = ResourcesUtil::GetThemeResourceId(uncached_path);
- }
- if (resource_id != -1) {
- if (GetMimeType(path) == "image/png")
- SendThemeImage(callback, resource_id, scale_factor);
- else
- SendThemeBitmap(callback, resource_id, scale_factor);
- return;
+ resource_id = ResourcesUtil::GetThemeResourceId(parsed_path);
}
- // We don't have any data to send back. This shouldn't happen normally, as
- // chrome://theme/ data source is used only by chrome WebUI pages and
- // component extensions. We don't want to crash in Release build though, as
- // it is possible that a user has entered an unexisting chrome://theme URL
- // into the address bar.
- NOTREACHED() << path << " not found.";
- callback.Run(NULL);
+ if (resource_id == -1) {
+ // We don't have any data to send back. This shouldn't happen normally, as
+ // chrome://theme/ data source is used only by chrome WebUI pages and
+ // component extensions. We don't want to crash in Release build though, as
+ // it is possible that a user has entered an unexisting chrome://theme URL
+ // into the address bar.
+ callback.Run(nullptr);
+ } else if (GetMimeType(path) == "image/png") {
+ SendThemeImage(callback, resource_id, scale);
+ } else {
+ SendThemeBitmap(callback, resource_id, scale);
+ }
}
std::string ThemeSource::GetMimeType(const std::string& path) const {
- std::string uncached_path;
- webui::ParsePathAndScale(GetThemePath(path), &uncached_path, NULL);
-
- if (uncached_path == kNewTabCSSPath ||
- uncached_path == kNewIncognitoTabCSSPath) {
- return "text/css";
- }
-
- return "image/png";
+ std::string parsed_path;
+ webui::ParsePathAndScale(GetThemeURL(path), &parsed_path, nullptr);
+ return IsNewTabCSSPath(parsed_path) ? "text/css" : "image/png";
}
base::MessageLoop* ThemeSource::MessageLoopForRequestPath(
const std::string& path) const {
- std::string uncached_path;
- webui::ParsePathAndScale(GetThemePath(path), &uncached_path, NULL);
+ std::string parsed_path;
+ webui::ParsePathAndScale(GetThemeURL(path), &parsed_path, nullptr);
- if (uncached_path == kNewTabCSSPath ||
- uncached_path == kNewIncognitoTabCSSPath) {
+ if (IsNewTabCSSPath(parsed_path)) {
// We generated and cached this when we initialized the object. We don't
// have to go back to the UI thread to send the data.
- return NULL;
+ return nullptr;
}
// If it's not a themeable image, we don't need to go to the UI thread.
- int resource_id = ResourcesUtil::GetThemeResourceId(uncached_path);
- if (!BrowserThemePack::IsPersistentImageID(resource_id))
- return NULL;
-
- return content::URLDataSource::MessageLoopForRequestPath(path);
+ int resource_id = ResourcesUtil::GetThemeResourceId(parsed_path);
+ return BrowserThemePack::IsPersistentImageID(resource_id) ?
+ content::URLDataSource::MessageLoopForRequestPath(path) : nullptr;
}
bool ThemeSource::ShouldReplaceExistingSource() const {
@@ -188,9 +174,9 @@ bool ThemeSource::ShouldReplaceExistingSource() const {
}
bool ThemeSource::ShouldServiceRequest(const net::URLRequest* request) const {
- if (request->url().SchemeIs(chrome::kChromeSearchScheme))
- return InstantIOContext::ShouldServiceRequest(request);
- return URLDataSource::ShouldServiceRequest(request);
+ return request->url().SchemeIs(chrome::kChromeSearchScheme) ?
+ InstantIOContext::ShouldServiceRequest(request) :
+ URLDataSource::ShouldServiceRequest(request);
}
////////////////////////////////////////////////////////////////////////////////
@@ -199,34 +185,30 @@ bool ThemeSource::ShouldServiceRequest(const net::URLRequest* request) const {
void ThemeSource::SendThemeBitmap(
const content::URLDataSource::GotDataCallback& callback,
int resource_id,
- float scale_factor) {
- ui::ScaleFactor resource_scale_factor =
- ui::GetSupportedScaleFactor(scale_factor);
+ float scale) {
+ ui::ScaleFactor scale_factor = ui::GetSupportedScaleFactor(scale);
if (BrowserThemePack::IsPersistentImageID(resource_id)) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- const ui::ThemeProvider& tp =
- ThemeService::GetThemeProviderForProfile(profile_);
-
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
scoped_refptr<base::RefCountedMemory> image_data(
- tp.GetRawData(resource_id, resource_scale_factor));
+ ThemeService::GetThemeProviderForProfile(profile_).GetRawData(
+ resource_id, scale_factor));
callback.Run(image_data.get());
} else {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
const ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- callback.Run(
- rb.LoadDataResourceBytesForScale(resource_id, resource_scale_factor));
+ callback.Run(rb.LoadDataResourceBytesForScale(resource_id, scale_factor));
}
}
void ThemeSource::SendThemeImage(
const content::URLDataSource::GotDataCallback& callback,
int resource_id,
- float scale_factor) {
+ float scale) {
// If the resource bundle contains the data pack for |scale_factor|, we can
// safely fallback to SendThemeBitmap().
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- if (ui::GetScaleForScaleFactor(rb.GetMaxScaleFactor()) >= scale_factor) {
- SendThemeBitmap(callback, resource_id, scale_factor);
+ if (ui::GetScaleForScaleFactor(rb.GetMaxScaleFactor()) >= scale) {
+ SendThemeBitmap(callback, resource_id, scale);
return;
}
@@ -237,19 +219,18 @@ void ThemeSource::SendThemeImage(
// can happen in ChromeOS or Linux.
scoped_refptr<base::RefCountedBytes> data(new base::RefCountedBytes());
if (BrowserThemePack::IsPersistentImageID(resource_id)) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
const ui::ThemeProvider& tp =
ThemeService::GetThemeProviderForProfile(profile_);
- ProcessImageOnUIThread(*tp.GetImageSkiaNamed(resource_id), scale_factor,
- data);
+ ProcessImageOnUIThread(*tp.GetImageSkiaNamed(resource_id), scale, data);
callback.Run(data.get());
} else {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
// Fetching image data in ResourceBundle should happen on the UI thread. See
// crbug.com/449277
content::BrowserThread::PostTaskAndReply(
content::BrowserThread::UI, FROM_HERE,
- base::Bind(&ProcessResourceOnUIThread, resource_id, scale_factor, data),
+ base::Bind(&ProcessResourceOnUIThread, resource_id, scale, data),
base::Bind(callback, data));
}
}

Powered by Google App Engine
This is Rietveld 408576698