| 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; | 
| } | 
|  |