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

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

Issue 2467833003: [Mac] Move the fullscreen toolbar style to FullscreenToolbarController (Closed)
Patch Set: Updated comments and fixed tests Created 4 years, 1 month 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/fullscreen_toolbar_controller.mm
diff --git a/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.mm b/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.mm
index b9d25dbd5fd73413928ee15b42ce813f8e2cedaf..fce01d39e9181cdf9d0b6048b1ab8b211c36dde6 100644
--- a/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.mm
+++ b/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.mm
@@ -9,15 +9,16 @@
#include "base/command_line.h"
#import "base/mac/mac_util.h"
#include "base/mac/sdk_forward_declarations.h"
+#include "chrome/browser/profiles/profile.h"
#import "chrome/browser/ui/cocoa/browser_window_controller.h"
#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h"
#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h"
#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h"
#import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_controller.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
#include "ui/base/cocoa/appkit_utils.h"
#import "ui/base/cocoa/nsview_additions.h"
-#import "ui/base/cocoa/tracking_area.h"
namespace {
@@ -26,7 +27,7 @@ const CGFloat kHideFraction = 0.0;
const CGFloat kShowFraction = 1.0;
// The amount by which the toolbar is offset downwards (to avoid the menu)
-// when the toolbar style is OMNIBOX_TABS_HIDDEN. (We can't use
+// when the toolbar style is TOOLBAR_HIDDEN. (We can't use
// |-[NSMenu menuBarHeight]| since it returns 0 when the menu bar is hidden.)
const CGFloat kToolbarVerticalOffset = 22;
@@ -59,14 +60,12 @@ const CGFloat kToolbarVerticalOffset = 22;
@implementation FullscreenToolbarController
-@synthesize slidingStyle = slidingStyle_;
+@synthesize toolbarStyle = toolbarStyle_;
-- (id)initWithBrowserController:(BrowserWindowController*)controller
- style:(FullscreenSlidingStyle)style {
+- (id)initWithBrowserController:(BrowserWindowController*)controller {
if ((self = [super init])) {
browserController_ = controller;
systemFullscreenMode_ = base::mac::kFullScreenModeNormal;
- slidingStyle_ = style;
animationController_.reset(new FullscreenToolbarAnimationController(self));
visibilityLockController_.reset(
[[FullscreenToolbarVisibilityLockController alloc]
@@ -79,6 +78,7 @@ const CGFloat kToolbarVerticalOffset = 22;
- (void)dealloc {
DCHECK(!inFullscreenMode_);
+ browserController_ = nil;
[super dealloc];
}
@@ -86,6 +86,8 @@ const CGFloat kToolbarVerticalOffset = 22;
DCHECK(!inFullscreenMode_);
inFullscreenMode_ = YES;
+ [self updateToolbarStyle];
+
menubarTracker_.reset([[FullscreenMenubarTracker alloc]
initWithFullscreenToolbarController:self]);
mouseTracker_.reset([[FullscreenToolbarMouseTracker alloc]
@@ -110,7 +112,9 @@ const CGFloat kToolbarVerticalOffset = 22;
}
- (void)exitFullscreenMode {
- DCHECK(inFullscreenMode_);
+ if (!inFullscreenMode_)
erikchen 2016/11/02 00:25:36 why the move away from DCHECK?
spqchan 2016/11/02 20:00:27 Whoops, this shouldn't be here. Thanks for catchin
+ return;
+
inFullscreenMode_ = NO;
[self cleanup];
@@ -158,6 +162,22 @@ const CGFloat kToolbarVerticalOffset = 22;
systemFullscreenMode_ = mode;
}
+- (void)updateToolbarStyle {
+ FullscreenToolbarStyle oldStyle = toolbarStyle_;
+
+ if ([browserController_ isFullscreenForTabContentOrExtension]) {
+ toolbarStyle_ = FullscreenToolbarStyle::TOOLBAR_NONE;
+ } else {
+ PrefService* prefs = [browserController_ profile]->GetPrefs();
+ toolbarStyle_ = prefs->GetBoolean(prefs::kShowFullscreenToolbar)
+ ? FullscreenToolbarStyle::TOOLBAR_PRESENT
+ : FullscreenToolbarStyle::TOOLBAR_HIDDEN;
+ }
+
+ if (oldStyle != toolbarStyle_)
+ [self updateToolbar];
+}
+
- (void)updateToolbar {
[browserController_ layoutSubviews];
animationController_->ToolbarDidUpdate();
@@ -202,12 +222,12 @@ const CGFloat kToolbarVerticalOffset = 22;
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode))
return kHideFraction;
- switch (slidingStyle_) {
- case FullscreenSlidingStyle::OMNIBOX_TABS_PRESENT:
+ switch (toolbarStyle_) {
+ case FullscreenToolbarStyle::TOOLBAR_PRESENT:
return kShowFraction;
- case FullscreenSlidingStyle::OMNIBOX_TABS_NONE:
+ case FullscreenToolbarStyle::TOOLBAR_NONE:
return kHideFraction;
- case FullscreenSlidingStyle::OMNIBOX_TABS_HIDDEN:
+ case FullscreenToolbarStyle::TOOLBAR_HIDDEN:
if ([self mustShowFullscreenToolbar])
return kShowFraction;
@@ -222,10 +242,10 @@ const CGFloat kToolbarVerticalOffset = 22;
if (!inFullscreenMode_)
return NO;
- if (slidingStyle_ == FullscreenSlidingStyle::OMNIBOX_TABS_PRESENT)
+ if (toolbarStyle_ == FullscreenToolbarStyle::TOOLBAR_PRESENT)
return YES;
- if (slidingStyle_ == FullscreenSlidingStyle::OMNIBOX_TABS_NONE)
+ if (toolbarStyle_ == FullscreenToolbarStyle::TOOLBAR_NONE)
return NO;
FullscreenMenubarState menubarState = [menubarTracker_ state];
@@ -304,9 +324,6 @@ const CGFloat kToolbarVerticalOffset = 22;
menubarTracker_.reset();
mouseTracker_.reset();
-
- // No more calls back up to the BWC.
- browserController_ = nil;
erikchen 2016/11/02 00:25:36 why did you get rid of this? It seems important.
spqchan 2016/11/02 20:00:27 I didn't get rid of it, I moved it into dealloc. S
}
- (BOOL)shouldShowMenubarInImmersiveFullscreen {

Powered by Google App Engine
This is Rietveld 408576698