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

Unified Diff: chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm

Issue 2866963002: mac: Set background color from theme before NSView is added to window (Closed)
Patch Set: Created 3 years, 7 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/ui/cocoa/tab_contents/tab_contents_controller.mm
diff --git a/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm b/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
index 65dbbcc9d6d8611ee95bf904db4c21aa0a340033..c0c314c8c203a3c4f523b5b510a280afb16c5918 100644
--- a/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
+++ b/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
@@ -16,6 +16,7 @@
#import "chrome/browser/themes/theme_service.h"
#import "chrome/browser/ui/cocoa/themed_window.h"
#include "chrome/browser/ui/view_ids.h"
+#include "chrome/grit/theme_resources.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/render_widget_host_view.h"
@@ -90,7 +91,7 @@ @interface TabContentsContainerView : NSView {
TabContentsController* delegate_; // weak
}
-- (void)updateBackgroundColor;
+- (void)updateBackgroundColorFromWindowTheme:(NSWindow*)window;
@end
@implementation TabContentsContainerView
@@ -102,7 +103,6 @@ - (id)initWithDelegate:(TabContentsController*)delegate {
base::scoped_nsobject<CALayer> layer([[CALayer alloc] init]);
[self setLayer:layer];
[self setWantsLayer:YES];
- [self updateBackgroundColor];
}
return self;
}
@@ -135,17 +135,27 @@ - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize {
// Update the background layer's color whenever the view needs to repaint.
- (void)setNeedsDisplayInRect:(NSRect)rect {
[super setNeedsDisplayInRect:rect];
- [self updateBackgroundColor];
+ [self updateBackgroundColorFromWindowTheme:[self window]];
}
-- (void)updateBackgroundColor {
+- (void)updateBackgroundColorFromWindowTheme:(NSWindow*)window {
// This view is sometimes flashed into visibility (e.g, when closing
// windows or opening new tabs), so ensure that the flash be the theme
// background color in those cases.
- SkColor skBackgroundColor = SK_ColorWHITE;
- const ThemeProvider* theme = [[self window] themeProvider];
- if (theme)
- skBackgroundColor = theme->GetColor(ThemeProperties::COLOR_NTP_BACKGROUND);
+ const ThemeProvider* theme = [window themeProvider];
+ ThemedWindowStyle windowStyle = [window themedWindowStyle];
+ if (!theme)
+ return;
+
+ // This logic and hard-coded color value are duplicated from the function
+ // NTPResourceCache::CreateNewTabIncognitoCSS. This logic should exist in only
+ // one location.
+ // https://crbug.com/719236
+ SkColor skBackgroundColor =
+ theme->GetColor(ThemeProperties::COLOR_NTP_BACKGROUND);
+ bool incognito = windowStyle & THEMED_INCOGNITO;
+ if (incognito && !theme->HasCustomImage(IDR_THEME_NTP_BACKGROUND))
+ skBackgroundColor = SkColorSetRGB(0x32, 0x32, 0x32);
// If the page is in fullscreen tab capture mode, change the background color
// to be a dark tint of the new tab page's background color.
@@ -164,6 +174,10 @@ - (void)updateBackgroundColor {
[[self layer] setBackgroundColor:cgBackgroundColor];
}
+- (void)viewWillMoveToWindow:(NSWindow*)newWindow {
+ [self updateBackgroundColorFromWindowTheme:newWindow];
+}
+
- (ViewID)viewID {
return VIEW_ID_TAB_CONTAINER;
}
« 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