Index: chrome/browser/ui/browser.h |
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h |
index b4c98c9173edebbce7419eb1e347c97530873d0b..ef740550399ce87edd7aabc94d6fc416910a0a7e 100644 |
--- a/chrome/browser/ui/browser.h |
+++ b/chrome/browser/ui/browser.h |
@@ -880,6 +880,8 @@ class Browser : public TabHandlerDelegate, |
virtual void DidNavigateToPendingEntry(TabContents* tab) OVERRIDE; |
virtual content::JavaScriptDialogCreator* |
GetJavaScriptDialogCreator() OVERRIDE; |
+ virtual void ToggleFullscreenModeForTab(TabContents* tab, |
+ bool enter_fullscreen) OVERRIDE; |
// Overridden from TabContentsWrapperDelegate: |
virtual void OnDidGetApplicationInfo(TabContentsWrapper* source, |
@@ -1006,6 +1008,25 @@ class Browser : public TabHandlerDelegate, |
// >= index. |
void SyncHistoryWithTabs(int index); |
+ // Tab fullscreen functions ///////////////////////////////////////////////// |
+ |
+ // There are two different kinds of fullscreen mode - "tab fullscreen" and |
+ // "browser fullscreen". "Tab fullscreen" refers to when a tab enters |
+ // fullscreen mode via the JS fullscreen API, and "browser fullscreen" |
+ // refers to the user putting the browser itself into fullscreen mode from |
+ // the UI. The difference is that tab fullscreen has implications for how |
+ // the contents of the tab render (eg: a video element may grow to consume |
+ // the whole tab), whereas browser fullscreen mode doesn't. Therefore if a |
+ // user forces an exit from fullscreen, we need to notify the tab so it can |
+ // stop rendering in its fullscreen mode. |
+ |
+ // Make the current tab exit fullscreen mode if it is in it. |
+ void ExitTabbedFullscreenModeIfNecessary(); |
+ |
+ // Notifies the tab that it has been forced out of fullscreen mode if |
+ // necessary. |
+ void NotifyTabOfFullscreenExitIfNecessary(); |
+ |
// OnBeforeUnload handling ////////////////////////////////////////////////// |
typedef std::set<TabContents*> UnloadListenerSet; |
@@ -1126,6 +1147,7 @@ class Browser : public TabHandlerDelegate, |
// BrowserWindow if necessary. |
void UpdateBookmarkBarState(BookmarkBarStateChangeReason reason); |
+ |
// Data members ///////////////////////////////////////////////////////////// |
NotificationRegistrar registrar_; |
@@ -1265,6 +1287,12 @@ class Browser : public TabHandlerDelegate, |
BookmarkBar::State bookmark_bar_state_; |
+ // Tab to notify when the browser exits fullscreen mode. |
+ TabContentsWrapper* fullscreened_tab_; |
+ |
+ // True if the current tab is in fullscreen mode. |
+ bool tab_caused_fullscreen_; |
+ |
DISALLOW_COPY_AND_ASSIGN(Browser); |
}; |