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