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

Unified Diff: chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.cc

Issue 1492423003: Rejigger ThemeService: move exposure of ThemeProvider interface to a (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add a test Created 5 years 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/views/frame/browser_desktop_window_tree_host_x11.cc
diff --git a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.cc b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.cc
index 3a82a73130db904610b5960ff75b1e18069dd215..3b0cfae00ef0968eda7b4376a56a79745d13187a 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.cc
+++ b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.cc
@@ -20,38 +20,45 @@ namespace {
// because we need to also look up whether we're using the native theme.
class DesktopThemeProvider : public ui::ThemeProvider {
public:
- explicit DesktopThemeProvider(ThemeService* delegate)
- : delegate_(delegate) {
- }
+ explicit DesktopThemeProvider(Profile* profile) : profile_(profile) {}
- bool UsingSystemTheme() const override {
- return delegate_->UsingSystemTheme();
- }
gfx::ImageSkia* GetImageSkiaNamed(int id) const override {
- if (delegate_->UsingSystemTheme() && delegate_->HasCustomImage(id))
- return delegate_->GetImageSkiaNamed(id);
+ if (GetThemeService()->UsingSystemTheme() &&
+ GetThemeProvider().HasCustomImage(id)) {
+ return GetThemeProvider().GetImageSkiaNamed(id);
+ }
- return delegate_->GetImageSkiaNamed(
+ return GetThemeProvider().GetImageSkiaNamed(
chrome::MapThemeImage(chrome::HOST_DESKTOP_TYPE_NATIVE, id));
}
- SkColor GetColor(int id) const override { return delegate_->GetColor(id); }
+ SkColor GetColor(int id) const override {
+ return GetThemeProvider().GetColor(id);
+ }
int GetDisplayProperty(int id) const override {
- return delegate_->GetDisplayProperty(id);
+ return GetThemeProvider().GetDisplayProperty(id);
}
bool ShouldUseNativeFrame() const override {
- return delegate_->ShouldUseNativeFrame();
+ return GetThemeProvider().ShouldUseNativeFrame();
}
bool HasCustomImage(int id) const override {
- return delegate_->HasCustomImage(
+ return GetThemeProvider().HasCustomImage(
chrome::MapThemeImage(chrome::HOST_DESKTOP_TYPE_NATIVE, id));
}
base::RefCountedMemory* GetRawData(int id, ui::ScaleFactor scale_factor)
const override {
- return delegate_->GetRawData(id, scale_factor);
+ return GetThemeProvider().GetRawData(id, scale_factor);
}
private:
- ThemeService* delegate_;
+ const ThemeService* GetThemeService() const {
+ return ThemeServiceFactory::GetForProfile(profile_);
+ }
+
+ const ui::ThemeProvider& GetThemeProvider() const {
+ return ThemeService::GetThemeProviderForProfile(profile_);
+ }
+
pkotwicz 2015/12/04 23:16:50 Nit: Add a comment that |profile_| is not owned.
Evan Stade 2015/12/09 00:57:11 I'm pretty sure that's clear enough that a comment
+ Profile* profile_;
DISALLOW_COPY_AND_ASSIGN(DesktopThemeProvider);
};
@@ -70,8 +77,7 @@ BrowserDesktopWindowTreeHostX11::BrowserDesktopWindowTreeHostX11(
desktop_native_widget_aura),
browser_view_(browser_view) {
scoped_ptr<ui::ThemeProvider> theme_provider(
- new DesktopThemeProvider(ThemeServiceFactory::GetForProfile(
- browser_view->browser()->profile())));
+ new DesktopThemeProvider(browser_view->browser()->profile()));
browser_frame->SetThemeProvider(theme_provider.Pass());
browser_frame->set_frame_type(
browser_frame->UseCustomFrame() ? views::Widget::FRAME_TYPE_FORCE_CUSTOM

Powered by Google App Engine
This is Rietveld 408576698