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

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller.h

Issue 2110983002: [Mac] Refactor Cocoa fullscreen code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Replaced NSTrackingArea with CrTrackingArea Created 4 years, 6 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.h
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.h b/chrome/browser/ui/cocoa/browser_window_controller.h
index 1d0dcf7ea27d9f1c0a3f0891a54f10842e2c77e3..c14373321321907ea2980d168c8e7f0c94275832 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.h
+++ b/chrome/browser/ui/cocoa/browser_window_controller.h
@@ -49,7 +49,7 @@ class FullscreenLowPowerCoordinatorCocoa;
class LocationBarViewMac;
@class OverlayableContentsController;
class PermissionBubbleCocoa;
-@class PresentationModeController;
+@class FullscreenToolbarController;
class StatusBubbleMac;
@class TabStripController;
@class TabStripView;
@@ -85,7 +85,8 @@ class Command;
base::scoped_nsobject<DevToolsController> devToolsController_;
base::scoped_nsobject<OverlayableContentsController>
overlayableContentsController_;
- base::scoped_nsobject<PresentationModeController> presentationModeController_;
+ base::scoped_nsobject<FullscreenToolbarController>
+ fullscreenToolbarController_;
std::unique_ptr<ExclusiveAccessController> exclusiveAccessController_;
base::scoped_nsobject<BrowserWindowFullscreenTransition>
fullscreenTransition_;
@@ -177,7 +178,7 @@ class Command;
// returns YES.
NSRect savedRegularWindowFrame_;
- // The proportion of the floating bar which is shown (in presentation mode).
+ // The proportion of the floating bar which is shown.
CGFloat floatingBarShownFraction_;
// Various UI elements/events may want to ensure that the floating bar is
@@ -401,8 +402,7 @@ class Command;
// Methods having to do with the window type (normal/popup/app, and whether the
-// window has various features; fullscreen and presentation mode methods are
-// separate).
+// window has various features.
@interface BrowserWindowController(WindowType)
// Determines whether this controller's window supports a given feature (i.e.,
@@ -453,9 +453,8 @@ class Command;
// involves moving the current window to a different space, and resizing the
// window to take up the entire size of the screen.
//
-// + Immersive fullscreen: An alternative to AppKitFullscreen API. Uses on 10.6
-// (before AppKitFullscreen API was available), and on certain HTML/Flash
-// content. This is a method defined by Chrome.
+// + Immersive fullscreen: An alternative to AppKitFullscreen API. Uses on 10.9
+// on certain HTML/Flash content. This is a method defined by Chrome.
//
// The Immersive fullscreen API can be called after the AppKitFullscreen API.
// Calling the AppKitFullscreen API while immersive fullscreen API has been
@@ -473,7 +472,7 @@ class Command;
//
// The omnibox sliding styles are used in conjunction with the fullscreen APIs.
// There is exactly 1 sliding style active at a time. The sliding is mangaged
-// by the presentationModeController_. (poorly named).
+// by the fullscreenToolbarController_.
//
// ----------------------------------------------------------------------------
// There are several "fullscreen modes" bantered around. Technically, any
@@ -486,21 +485,14 @@ class Command;
//
// + Canonical Fullscreen: When a user clicks on the fullscreen button, they
// expect a fullscreen behavior similar to other AppKit apps.
-// - AppKitFullscreen API + OMNIBOX_TABS_PRESENT.
+// - AppKitFullscreen API + OMNIBOX_TABS_PRESENT/OMNIBOX_TABS_HIDDEN.
// - The button click directly invokes the AppKitFullscreen API. This class
// get a callback, and calls adjustUIForOmniboxFullscreen.
// - There is a menu item that is intended to invoke the same behavior. When
// the user clicks the menu item, or use its hotkey, this class invokes the
// AppKitFullscreen API.
//
-// + Presentation Mode:
-// - OMNIBOX_TABS_HIDDEN, typically with AppKitFullscreen API, but can
-// also be with Immersive fullscreen API.
-// - This class sets a flag, indicating that it wants Presentation Mode
-// instead of Canonical Fullscreen. Then it invokes the AppKitFullscreen API.
-//
-// + HTML5 fullscreen. <-- Currently uses AppKitFullscreen API. This should
-// eventually migrate to the Immersive Fullscreen API.
+// + HTML5 fullscreen. Uses AppKitFullscreen in 10.10+, otherwise Immersive.
//
// There are more fullscreen styles on OSX than other OSes. However, all OSes
// share the same cross-platform code for entering fullscreen
@@ -511,11 +503,7 @@ class Command;
// -- This invokes -[BrowserWindowController windowWillEnterFullscreen:]
// - User selects the menu item "Enter Full Screen".
// -- This invokes FullscreenController::ToggleFullscreenModeInternal(
-// BROWSER_WITH_CHROME)
-// - User selects the menu item "Enter Presentation Mode".
-// -- This invokes FullscreenController::ToggleFullscreenModeInternal(
// BROWSER)
-// -- The corresponding URL will be empty.
// - User requests fullscreen via an extension.
// -- This invokes FullscreenController::ToggleFullscreenModeInternal(
// BROWSER)
@@ -527,13 +515,9 @@ class Command;
// IsWindowFullscreenForTabOrPending() returns true.
// -- The corresponding URL will be the url of the web page.
-// Methods having to do with fullscreen and presentation mode.
+// Methods having to do with fullscreen mode.
@interface BrowserWindowController(Fullscreen)
-// Toggles fullscreen mode. Meant to be called by Lion windows when they enter
-// or exit Lion fullscreen mode. Must not be called on Snow Leopard or earlier.
-- (void)handleLionToggleFullscreen;
-
// Enters Browser AppKit Fullscreen.
- (void)enterBrowserFullscreen;
@@ -575,8 +559,8 @@ class Command;
- (void)exitFullscreenAnimationFinished;
// Resizes the fullscreen window to fit the screen it's currently on. Called by
-// the PresentationModeController when there is a change in monitor placement or
-// resolution.
+// the FullscreenToolbarController when there is a change in monitor placement
+// or resolution.
- (void)resizeFullscreenWindow;
// Query/lock/release the requirement that the tab strip/toolbar/attached
@@ -649,11 +633,11 @@ class Command;
// Returns the active tab contents controller's |blockFullscreenResize_| flag.
- (BOOL)isActiveTabContentsControllerResizeBlocked;
-// Returns the presentation mode controller.
-- (PresentationModeController*)presentationModeController;
+// Returns the fullscreen toolbar controller.
+- (FullscreenToolbarController*)fullscreenToolbarController;
-// Sets the presentation mode controller.
-- (void)setPresentationModeController:(PresentationModeController*)controller;
+// Sets the fullscreen toolbar controller.
+- (void)setFullscreenToolbarController:(FullscreenToolbarController*)controller;
@end // @interface BrowserWindowController (TestingAPI)
« no previous file with comments | « chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm ('k') | chrome/browser/ui/cocoa/browser_window_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698