Index: chrome/browser/ui/cocoa/browser_window_controller_private.mm |
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.mm b/chrome/browser/ui/cocoa/browser_window_controller_private.mm |
index d957efbac05b90e173d9a6c9f20f92a2f4dc5ce9..d51aec2da2dcc8a4cdc4e5dd82be3fd9dc74fe35 100644 |
--- a/chrome/browser/ui/cocoa/browser_window_controller_private.mm |
+++ b/chrome/browser/ui/cocoa/browser_window_controller_private.mm |
@@ -33,7 +33,8 @@ |
#import "chrome/browser/ui/cocoa/floating_bar_backing_view.h" |
#import "chrome/browser/ui/cocoa/framed_browser_window.h" |
#include "chrome/browser/ui/cocoa/fullscreen_low_power_coordinator.h" |
-#import "chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h" |
+#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_layout_manager.h" |
+#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_locks_controller.h" |
#import "chrome/browser/ui/cocoa/fullscreen_window.h" |
#import "chrome/browser/ui/cocoa/infobars/infobar_container_controller.h" |
#include "chrome/browser/ui/cocoa/last_active_browser_cocoa.h" |
@@ -366,9 +367,6 @@ willPositionSheet:(NSWindow*)sheet |
base::scoped_nsobject<FocusTracker> focusTracker( |
[[FocusTracker alloc] initWithWindow:sourceWindow]); |
- // While we move views (and focus) around, disable any bar visibility changes. |
- [self disableBarVisibilityUpdates]; |
- |
// Retain the tab strip view while we remove it from its superview. |
base::scoped_nsobject<NSView> tabStripView; |
if ([self hasTabStrip]) { |
@@ -442,9 +440,6 @@ willPositionSheet:(NSWindow*)sheet |
[self focusTabContents]; |
} |
[sourceWindow orderOut:self]; |
- |
- // We're done moving focus, so re-enable bar visibility changes. |
- [self enableBarVisibilityUpdates]; |
} |
- (void)updatePermissionBubbleAnchor { |
@@ -453,53 +448,6 @@ willPositionSheet:(NSWindow*)sheet |
manager->UpdateAnchorPosition(); |
} |
-- (void)configureFullscreenToolbarController { |
- NSView* contentView = [[self window] contentView]; |
- [fullscreenToolbarController_ |
- setupFullscreenToolbarForContentView:contentView]; |
-} |
- |
-- (void)adjustUIForExitingFullscreenAndStopOmniboxSliding { |
- [fullscreenToolbarController_ exitFullscreenMode]; |
- fullscreenToolbarController_.reset(); |
- |
- // Force the bookmark bar z-order to update. |
- [[bookmarkBarController_ view] removeFromSuperview]; |
- [self layoutSubviews]; |
-} |
- |
-- (void)adjustUIForSlidingFullscreenStyle:(FullscreenSlidingStyle)style { |
- // The UI should only be adjusted in fullscreen mode. |
- if (![self isInAnyFullscreenMode]) |
- return; |
- |
- if (!fullscreenToolbarController_) { |
- fullscreenToolbarController_.reset( |
- [self newFullscreenToolbarControllerWithStyle:style]); |
- [self configureFullscreenToolbarController]; |
- } else { |
- fullscreenToolbarController_.get().slidingStyle = style; |
- } |
- |
- if (!floatingBarBackingView_.get() && |
- ([self hasTabStrip] || [self hasToolbar] || [self hasLocationBar])) { |
- floatingBarBackingView_.reset( |
- [[FloatingBarBackingView alloc] initWithFrame:NSZeroRect]); |
- [floatingBarBackingView_ |
- setAutoresizingMask:(NSViewWidthSizable | NSViewMinYMargin)]; |
- } |
- |
- // Force the bookmark bar z-order to update. |
- [[bookmarkBarController_ view] removeFromSuperview]; |
- [self layoutSubviews]; |
-} |
- |
-- (FullscreenToolbarController*)newFullscreenToolbarControllerWithStyle: |
- (FullscreenSlidingStyle)style { |
- return [[FullscreenToolbarController alloc] initWithBrowserController:self |
- style:style]; |
-} |
- |
- (void)enterImmersiveFullscreen { |
RecordFullscreenWindowLocation([self window]); |
RecordFullscreenStyle(IMMERSIVE_FULLSCREEN); |
@@ -526,9 +474,7 @@ willPositionSheet:(NSWindow*)sheet |
[self moveViewsForImmersiveFullscreen:YES |
regularWindow:[self window] |
fullscreenWindow:fullscreenWindow_.get()]; |
- |
- FullscreenSlidingStyle style = FullscreenSlidingStyle::OMNIBOX_TABS_HIDDEN; |
- [self adjustUIForSlidingFullscreenStyle:style]; |
+ [self adjustUIForEnteringFullscreen]; |
[fullscreenWindow_ display]; |
@@ -607,8 +553,6 @@ willPositionSheet:(NSWindow*)sheet |
if (enteringAppKitFullscreen_) |
return; |
- [self hideOverlayIfPossibleWithAnimation:NO]; |
- |
switch (exclusiveAccessController_->bubble_type()) { |
case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: |
case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: |
@@ -801,7 +745,7 @@ willPositionSheet:(NSWindow*)sheet |
- (void)windowDidFailToEnterFullScreen:(NSWindow*)window { |
[self deregisterForContentViewResizeNotifications]; |
[self resetCustomAppKitFullscreenVariables]; |
- [self adjustUIForExitingFullscreenAndStopOmniboxSliding]; |
+ [self adjustUIForExitingFullscreen]; |
fullscreenLowPowerCoordinator_.reset(); |
} |
@@ -828,46 +772,30 @@ willPositionSheet:(NSWindow*)sheet |
- (void)adjustUIForExitingFullscreen { |
exclusiveAccessController_->Destroy(); |
- [self adjustUIForExitingFullscreenAndStopOmniboxSliding]; |
-} |
- |
-- (void)adjustUIForEnteringFullscreen { |
- FullscreenSlidingStyle style = FullscreenSlidingStyle::OMNIBOX_TABS_PRESENT; |
- if ([self isFullscreenForTabContentOrExtension]) |
- style = FullscreenSlidingStyle::OMNIBOX_TABS_NONE; |
- else if (!shouldShowFullscreenToolbar_) |
- style = FullscreenSlidingStyle::OMNIBOX_TABS_HIDDEN; |
- |
- [self adjustUIForSlidingFullscreenStyle:style]; |
-} |
- |
-- (void)enableBarVisibilityUpdates { |
- // Early escape if there's nothing to do. |
- if (barVisibilityUpdatesEnabled_) |
- return; |
- |
- barVisibilityUpdatesEnabled_ = YES; |
+ fullscreenToolbarLayoutManager_->ExitFullscreenMode(); |
- if ([barVisibilityLocks_ count]) |
- [fullscreenToolbarController_ ensureOverlayShownWithAnimation:NO]; |
- else |
- [fullscreenToolbarController_ ensureOverlayHiddenWithAnimation:NO]; |
+ // Force the bookmark bar z-order to update. |
+ [[bookmarkBarController_ view] removeFromSuperview]; |
+ [self layoutSubviews]; |
} |
-- (void)disableBarVisibilityUpdates { |
- // Early escape if there's nothing to do. |
- if (!barVisibilityUpdatesEnabled_) |
+- (void)adjustUIForEnteringFullscreen { |
+ if (![self isInAnyFullscreenMode]) |
return; |
- barVisibilityUpdatesEnabled_ = NO; |
- [fullscreenToolbarController_ cancelAnimationAndTimer]; |
-} |
+ fullscreenToolbarLayoutManager_->EnterFullscreenMode(); |
-- (void)hideOverlayIfPossibleWithAnimation:(BOOL)animation { |
- if (!barVisibilityUpdatesEnabled_ || [barVisibilityLocks_ count]) |
- return; |
+ if (!floatingBarBackingView_.get() && |
+ ([self hasTabStrip] || [self hasToolbar] || [self hasLocationBar])) { |
+ floatingBarBackingView_.reset( |
+ [[FloatingBarBackingView alloc] initWithFrame:NSZeroRect]); |
+ [floatingBarBackingView_ |
+ setAutoresizingMask:(NSViewWidthSizable | NSViewMinYMargin)]; |
+ } |
- [fullscreenToolbarController_ ensureOverlayHiddenWithAnimation:animation]; |
+ // Force the bookmark bar z-order to update. |
+ [[bookmarkBarController_ view] removeFromSuperview]; |
+ [self layoutSubviews]; |
} |
- (CGFloat)toolbarDividerOpacity { |
@@ -937,11 +865,14 @@ willPositionSheet:(NSWindow*)sheet |
[layout setWindowSize:windowSize]; |
[layout setInAnyFullscreen:[self isInAnyFullscreenMode]]; |
- [layout setSlidingStyle:fullscreenToolbarController_.get().slidingStyle]; |
- [layout |
- setFullscreenMenubarOffset:[fullscreenToolbarController_ menubarOffset]]; |
- [layout setFullscreenToolbarFraction:[fullscreenToolbarController_ |
- toolbarFraction]]; |
+ |
+ if ([self hasToolbar]) { |
+ FullscreenToolbarLayout toolbarLayout = |
+ fullscreenToolbarLayoutManager_->ComputeToolbarLayout(); |
+ [layout setFullscreenToolbarStyle:toolbarLayout.toolbarStyle]; |
+ [layout setFullscreenMenubarOffset:toolbarLayout.menubarOffset]; |
+ [layout setFullscreenToolbarFraction:toolbarLayout.toolbarFraction]; |
+ } |
[layout setHasTabStrip:[self hasTabStrip]]; |
[layout setFullscreenButtonFrame:[self fullscreenButtonFrame]]; |
@@ -1006,8 +937,8 @@ willPositionSheet:(NSWindow*)sheet |
if (!NSIsEmptyRect(output.fullscreenBackingBarFrame)) { |
[floatingBarBackingView_ setFrame:output.fullscreenBackingBarFrame]; |
- [fullscreenToolbarController_ |
- setTrackingAreaFromOverlayFrame:output.fullscreenBackingBarFrame]; |
+ fullscreenToolbarLayoutManager_->UpdateFullscreenToolbarFrame( |
+ output.fullscreenBackingBarFrame); |
} |
[findBarCocoaController_ |
@@ -1246,13 +1177,6 @@ willPositionSheet:(NSWindow*)sheet |
return nil; |
} |
-- (BOOL)isFullscreenForTabContentOrExtension { |
- FullscreenController* controller = |
- browser_->exclusive_access_manager()->fullscreen_controller(); |
- return controller->IsWindowFullscreenForTabOrPending() || |
- controller->IsExtensionFullscreenOrPending(); |
-} |
- |
- (void)windowWillBeginSheet:(NSNotification*)notification { |
if (fullscreenLowPowerCoordinator_) |
fullscreenLowPowerCoordinator_->SetHasActiveSheet(true); |