Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5683)

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller_private.mm

Issue 2355413007: [Mac] Refactor the Fullscreen Toolbar (Closed)
Patch Set: Nits and grits Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « chrome/browser/ui/cocoa/browser_window_controller_private.h ('k') | chrome/browser/ui/cocoa/browser_window_layout.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698