| Index: chrome/browser/ui/cocoa/tabs/tab_strip_view.mm
 | 
| diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_view.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_view.mm
 | 
| index a59f02047d4c99a1d3a8210c2b2066c704e47433..2f430eac71e33d72e2a2992ea91db9f49833583d 100644
 | 
| --- a/chrome/browser/ui/cocoa/tabs/tab_strip_view.mm
 | 
| +++ b/chrome/browser/ui/cocoa/tabs/tab_strip_view.mm
 | 
| @@ -12,8 +12,6 @@
 | 
|  #include "base/mac/sdk_forward_declarations.h"
 | 
|  #include "chrome/browser/themes/theme_properties.h"
 | 
|  #include "chrome/browser/themes/theme_service.h"
 | 
| -#import "chrome/browser/ui/cocoa/browser_window_controller.h"
 | 
| -#import "chrome/browser/ui/cocoa/browser_window_layout.h"
 | 
|  #import "chrome/browser/ui/cocoa/new_tab_button.h"
 | 
|  #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h"
 | 
|  #import "chrome/browser/ui/cocoa/tabs/tab_view.h"
 | 
| @@ -29,9 +27,9 @@
 | 
|  
 | 
|  @implementation TabStripView
 | 
|  
 | 
| +@synthesize controller = controller_;
 | 
|  @synthesize dropArrowShown = dropArrowShown_;
 | 
|  @synthesize dropArrowPosition = dropArrowPosition_;
 | 
| -@synthesize inATabDraggingOverlayWindow = inATabDraggingOverlayWindow_;
 | 
|  
 | 
|  - (id)initWithFrame:(NSRect)frame {
 | 
|    self = [super initWithFrame:frame];
 | 
| @@ -98,43 +96,6 @@
 | 
|  }
 | 
|  
 | 
|  - (void)drawRect:(NSRect)dirtyRect {
 | 
| -  const ui::ThemeProvider* themeProvider = [[self window] themeProvider];
 | 
| -  bool hasCustomThemeImage = themeProvider &&
 | 
| -      themeProvider->HasCustomImage(IDR_THEME_FRAME);
 | 
| -  BOOL supportsVibrancy = [self visualEffectView] != nil;
 | 
| -  BOOL isMainWindow = [[self window] isMainWindow];
 | 
| -
 | 
| -  // If in Material Design mode, decrease the tabstrip background's translucency
 | 
| -  // by overlaying it with a partially-transparent gray (but only if not themed,
 | 
| -  // and not being used to drag tabs between browser windows). The gray is
 | 
| -  // somewhat opaque for Incognito mode, very opaque for non-Incognito mode, and
 | 
| -  // completely opaque when the window is not active.
 | 
| -  if (themeProvider && !hasCustomThemeImage && !inATabDraggingOverlayWindow_) {
 | 
| -    NSColor* theColor = nil;
 | 
| -    if (isMainWindow) {
 | 
| -      if (supportsVibrancy &&
 | 
| -          !themeProvider->HasCustomColor(ThemeProperties::COLOR_FRAME)) {
 | 
| -        theColor = themeProvider->GetNSColor(
 | 
| -            ThemeProperties::COLOR_FRAME_VIBRANCY_OVERLAY);
 | 
| -      } else if (!supportsVibrancy && themeProvider->InIncognitoMode()) {
 | 
| -        theColor = [NSColor colorWithSRGBRed:20 / 255.
 | 
| -                                       green:22 / 255.
 | 
| -                                        blue:24 / 255.
 | 
| -                                       alpha:1];
 | 
| -      } else {
 | 
| -        theColor = themeProvider->GetNSColor(ThemeProperties::COLOR_FRAME);
 | 
| -      }
 | 
| -    } else {
 | 
| -      theColor = themeProvider->GetNSColor(
 | 
| -          ThemeProperties::COLOR_FRAME_INACTIVE);
 | 
| -    }
 | 
| -
 | 
| -    if (theColor) {
 | 
| -      [theColor set];
 | 
| -      NSRectFillUsingOperation(dirtyRect, NSCompositeSourceOver);
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
|    [self drawBottomEdge:dirtyRect];
 | 
|  
 | 
|    // Draw drop-indicator arrow (if appropriate).
 | 
| @@ -347,85 +308,14 @@
 | 
|    newTabButton_.reset([button retain]);
 | 
|  }
 | 
|  
 | 
| -- (NSVisualEffectView*)visualEffectView {
 | 
| -  // NSVisualEffectView is only available on OS X 10.10 and higher.
 | 
| -  if (!base::mac::IsAtLeastOS10_10())
 | 
| -    return nil;
 | 
| -
 | 
| -  NSView* rootView = [[self window] contentView];
 | 
| -  if (!chrome::ShouldUseFullSizeContentView()) {
 | 
| -    rootView = [rootView superview];
 | 
| -  }
 | 
| -
 | 
| -  Class nsVisualEffectViewClass = NSClassFromString(@"NSVisualEffectView");
 | 
| -  DCHECK(nsVisualEffectViewClass);
 | 
| -  for (NSView* view in [rootView subviews]) {
 | 
| -    if ([view isKindOfClass:nsVisualEffectViewClass]) {
 | 
| -      return base::mac::ObjCCast<NSVisualEffectView>(view);
 | 
| -    }
 | 
| -  }
 | 
| -  return nil;
 | 
| -}
 | 
| -
 | 
| -- (void)setController:(TabStripController*)controller {
 | 
| -  controller_ = controller;
 | 
| -  // If tearing down the browser window, there's nothing more to do.
 | 
| -  if (!controller_) {
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
| -  // Finish configuring the NSVisualEffectView so that it matches the window's
 | 
| -  // theme.
 | 
| -  NSVisualEffectView* visualEffectView = [self visualEffectView];
 | 
| -  const ui::ThemeProvider* themeProvider = [[self window] themeProvider];
 | 
| -  if (!visualEffectView || !themeProvider) {
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
| -  // Themes with custom frame images don't use vibrancy. Otherwise, if Incognito
 | 
| -  // use Material Dark.
 | 
| -  if (themeProvider->HasCustomImage(IDR_THEME_FRAME) ||
 | 
| -      themeProvider->HasCustomColor(ThemeProperties::COLOR_FRAME)) {
 | 
| -    [visualEffectView setState:NSVisualEffectStateInactive];
 | 
| -  } else if (themeProvider->InIncognitoMode()) {
 | 
| -    [visualEffectView setMaterial:NSVisualEffectMaterialDark];
 | 
| -    [visualEffectView setAppearance:
 | 
| -        [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark]];
 | 
| -  }
 | 
| -}
 | 
| -
 | 
|  // ThemedWindowDrawing implementation.
 | 
|  
 | 
|  - (void)windowDidChangeTheme {
 | 
|    [self setNeedsDisplay:YES];
 | 
| -  [self updateVisualEffectState];
 | 
|  }
 | 
|  
 | 
|  - (void)windowDidChangeActive {
 | 
|    [self setNeedsDisplay:YES];
 | 
|  }
 | 
|  
 | 
| -- (void)setVisualEffectsDisabledForFullscreen:(BOOL)disabled {
 | 
| -  visualEffectsDisabledForFullscreen_ = disabled;
 | 
| -  [self updateVisualEffectState];
 | 
| -}
 | 
| -
 | 
| -- (void)updateVisualEffectState {
 | 
| -  // Configure the NSVisualEffectView so that it does nothing if the user has
 | 
| -  // switched to a custom theme, or uses vibrancy if the user has switched back
 | 
| -  // to the default theme.
 | 
| -  NSVisualEffectView* visualEffectView = [self visualEffectView];
 | 
| -  const ui::ThemeProvider* themeProvider = [[self window] themeProvider];
 | 
| -  if (!visualEffectView || !themeProvider) {
 | 
| -    return;
 | 
| -  }
 | 
| -  if (visualEffectsDisabledForFullscreen_ ||
 | 
| -      themeProvider->HasCustomImage(IDR_THEME_FRAME) ||
 | 
| -      themeProvider->HasCustomColor(ThemeProperties::COLOR_FRAME)) {
 | 
| -    [visualEffectView setState:NSVisualEffectStateInactive];
 | 
| -  } else {
 | 
| -    [visualEffectView setState:NSVisualEffectStateFollowsWindowActiveState];
 | 
| -  }
 | 
| -}
 | 
| -
 | 
|  @end
 | 
| 
 |