| Index: chrome/browser/cocoa/browser_window_controller_private.mm | 
| diff --git a/chrome/browser/cocoa/browser_window_controller_private.mm b/chrome/browser/cocoa/browser_window_controller_private.mm | 
| index 5251112a03a2b058e98e90783e62729f4e2957f5..f05b02b2763b0a0534db6e11032724435cb0fe9a 100644 | 
| --- a/chrome/browser/cocoa/browser_window_controller_private.mm | 
| +++ b/chrome/browser/cocoa/browser_window_controller_private.mm | 
| @@ -140,8 +140,11 @@ willPositionSheet:(NSWindow*)sheet | 
|  | 
| BOOL isFullscreen = [self isFullscreen]; | 
| CGFloat floatingBarHeight = [self floatingBarHeight]; | 
| -  CGFloat yOffset = floor( | 
| -      isFullscreen ? (1 - floatingBarShownFraction_) * floatingBarHeight : 0); | 
| +  // In fullscreen mode, |yOffset| accounts for the sliding position of the | 
| +  // floating bar and the extra offset needed to dodge the menu bar. | 
| +  CGFloat yOffset = isFullscreen ? | 
| +      (floor((1 - floatingBarShownFraction_) * floatingBarHeight) - | 
| +          [fullscreenController_ floatingBarVerticalOffset]) : 0; | 
| CGFloat maxY = NSMaxY(contentBounds) + yOffset; | 
| CGFloat startMaxY = maxY; | 
|  | 
| @@ -171,8 +174,6 @@ willPositionSheet:(NSWindow*)sheet | 
| height:floatingBarHeight | 
| fullscreen:isFullscreen]; | 
|  | 
| -  [fullscreenController_ overlayFrameChanged:[floatingBarBackingView_ frame]]; | 
| - | 
| // Place the find bar immediately below the toolbar/attached bookmark bar. In | 
| // fullscreen mode, it hangs off the top of the screen when the bar is hidden. | 
| [findBarCocoaController_ positionFindBarViewAtMaxY:maxY maxWidth:width]; | 
| @@ -209,7 +210,7 @@ willPositionSheet:(NSWindow*)sheet | 
| if (![self isFullscreen]) | 
| return 0; | 
|  | 
| -  CGFloat totalHeight = [fullscreenController_ tabStripVerticalOffset]; | 
| +  CGFloat totalHeight = [fullscreenController_ floatingBarVerticalOffset]; | 
|  | 
| if ([self hasTabStrip]) | 
| totalHeight += NSHeight([[self tabStripView] frame]); | 
| @@ -218,7 +219,7 @@ willPositionSheet:(NSWindow*)sheet | 
| totalHeight += NSHeight([[toolbarController_ view] frame]); | 
| } else if ([self hasLocationBar]) { | 
| totalHeight += NSHeight([[toolbarController_ view] frame]) + | 
| -        kLocBarTopInset + kLocBarBottomInset; | 
| +                   kLocBarTopInset + kLocBarBottomInset; | 
| } | 
|  | 
| if (![self placeBookmarkBarBelowInfoBar]) | 
| @@ -236,10 +237,6 @@ willPositionSheet:(NSWindow*)sheet | 
|  | 
| NSView* tabStripView = [self tabStripView]; | 
| CGFloat tabStripHeight = NSHeight([tabStripView frame]); | 
| -  // In fullscreen mode, push the tab strip down so that the main menu (which | 
| -  // also slides down) doesn't run it over. | 
| -  if (fullscreen) | 
| -    maxY -= [fullscreenController_ tabStripVerticalOffset]; | 
| maxY -= tabStripHeight; | 
| [tabStripView setFrame:NSMakeRect(0, maxY, width, tabStripHeight)]; | 
|  | 
| @@ -327,25 +324,33 @@ willPositionSheet:(NSWindow*)sheet | 
| fullscreen:(BOOL)fullscreen { | 
| // Only display when in fullscreen mode. | 
| if (fullscreen) { | 
| -    DCHECK(floatingBarBackingView_.get()); | 
| -    BOOL aboveBookmarkBar = [self placeBookmarkBarBelowInfoBar]; | 
| - | 
| -    // Insert it into the view hierarchy if necessary. | 
| -    if (![floatingBarBackingView_ superview] || | 
| -        aboveBookmarkBar != floatingBarAboveBookmarkBar_) { | 
| -      NSView* contentView = [[self window] contentView]; | 
| -      // z-order gets messed up unless we explicitly remove the floatingbar view | 
| -      // and re-add it. | 
| -      [floatingBarBackingView_ removeFromSuperview]; | 
| -      [contentView addSubview:floatingBarBackingView_ | 
| -                   positioned:(aboveBookmarkBar ? | 
| -                                   NSWindowAbove : NSWindowBelow) | 
| -                   relativeTo:[bookmarkBarController_ view]]; | 
| -      floatingBarAboveBookmarkBar_ = aboveBookmarkBar; | 
| +    // For certain window types such as app windows (e.g., the dev tools | 
| +    // window), there's no actual overlay. (Displaying one would result in an | 
| +    // overly sliding in only under the menu, which gives an ugly effect.) | 
| +    NSRect frame = NSMakeRect(0, y, width, height); | 
| +    if (floatingBarBackingView_.get()) { | 
| +      BOOL aboveBookmarkBar = [self placeBookmarkBarBelowInfoBar]; | 
| + | 
| +      // Insert it into the view hierarchy if necessary. | 
| +      if (![floatingBarBackingView_ superview] || | 
| +          aboveBookmarkBar != floatingBarAboveBookmarkBar_) { | 
| +        NSView* contentView = [[self window] contentView]; | 
| +        // z-order gets messed up unless we explicitly remove the floatingbar | 
| +        // view and re-add it. | 
| +        [floatingBarBackingView_ removeFromSuperview]; | 
| +        [contentView addSubview:floatingBarBackingView_ | 
| +                     positioned:(aboveBookmarkBar ? | 
| +                                     NSWindowAbove : NSWindowBelow) | 
| +                     relativeTo:[bookmarkBarController_ view]]; | 
| +        floatingBarAboveBookmarkBar_ = aboveBookmarkBar; | 
| +      } | 
| + | 
| +      // Set its frame. | 
| +      [floatingBarBackingView_ setFrame:frame]; | 
| } | 
|  | 
| -    // Set its frame. | 
| -    [floatingBarBackingView_ setFrame:NSMakeRect(0, y, width, height)]; | 
| +    // But we want the logic to work as usual (for show/hide/etc. purposes). | 
| +    [fullscreenController_ overlayFrameChanged:frame]; | 
| } else { | 
| // Okay to call even if |floatingBarBackingView_| is nil. | 
| if ([floatingBarBackingView_ superview]) | 
| @@ -431,7 +436,8 @@ willPositionSheet:(NSWindow*)sheet | 
| // |-setFullscreen:| into smaller pieces.  http://crbug.com/36449 | 
| - (void)adjustUIForFullscreen:(BOOL)fullscreen { | 
| // Create the floating bar backing view if necessary. | 
| -  if (fullscreen && !floatingBarBackingView_.get()) { | 
| +  if (fullscreen && !floatingBarBackingView_.get() && | 
| +      ([self hasTabStrip] || [self hasToolbar] || [self hasLocationBar])) { | 
| floatingBarBackingView_.reset( | 
| [[FloatingBarBackingView alloc] initWithFrame:NSZeroRect]); | 
| } | 
|  |