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

Unified Diff: chrome/browser/ui/views/frame/browser_view.cc

Issue 7740044: Implement fullscreen info bubble on Win and Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: respond to comments Created 9 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/views/frame/browser_view.cc
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 823bc9f629309c3cbfaa23bbcf73a9f2343e546c..2cdd6a5c59b206112cf4e5b2d6b20d3da89f9e3b 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -589,7 +589,7 @@ void BrowserView::ShowInactive() {
}
void BrowserView::SetBounds(const gfx::Rect& bounds) {
- SetFullscreen(false);
+ ExitFullscreen();
GetWidget()->SetBounds(bounds);
}
@@ -750,16 +750,29 @@ bool BrowserView::IsMinimized() const {
return frame_->IsMinimized();
}
-void BrowserView::SetFullscreen(bool fullscreen) {
- if (IsFullscreen() == fullscreen)
+void BrowserView::EnterFullscreen(const GURL& url, bool ask_permission) {
+ if (IsFullscreen())
return; // Nothing to do.
-#if defined(OS_WIN) && !defined(USE_AURA)
- ProcessFullscreen(fullscreen);
+#if defined(OS_WIN)
+ ProcessFullscreen(true, url, ask_permission);
#else
// On Linux changing fullscreen is async. Ask the window to change it's
// fullscreen state, and when done invoke ProcessFullscreen.
- frame_->SetFullscreen(fullscreen);
+ frame_->SetFullscreen(true);
+#endif
+}
+
+void BrowserView::ExitFullscreen() {
+ if (!IsFullscreen())
+ return; // Nothing to do.
+
+#if defined(OS_WIN)
+ ProcessFullscreen(false, GURL(), false);
+#else
+ // On Linux changing fullscreen is async. Ask the window to change it's
+ // fullscreen state, and when done invoke ProcessFullscreen.
+ frame_->SetFullscreen(false);
#endif
}
@@ -772,7 +785,7 @@ bool BrowserView::IsFullscreenBubbleVisible() const {
}
void BrowserView::FullScreenStateChanged() {
- ProcessFullscreen(IsFullscreen());
+ ProcessFullscreen(IsFullscreen(), GURL(), false);
}
void BrowserView::RestoreFocus() {
@@ -2152,7 +2165,9 @@ bool BrowserView::UpdateChildViewAndLayout(views::View* new_view,
return changed;
}
-void BrowserView::ProcessFullscreen(bool fullscreen) {
+void BrowserView::ProcessFullscreen(bool fullscreen,
+ const GURL& url,
+ bool ask_permission) {
// Reduce jankiness during the following position changes by:
// * Hiding the window until it's in the final position
// * Ignoring all intervening Layout() calls, which resize the webpage and
@@ -2201,8 +2216,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen) {
bool is_kiosk =
CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode);
if (!is_kiosk) {
- fullscreen_bubble_.reset(new FullscreenExitBubbleViews(GetWidget(),
- browser_.get()));
+ fullscreen_bubble_.reset(new FullscreenExitBubbleViews(
+ GetWidget(), browser_.get(), url, ask_permission));
}
} else {
#if defined(OS_WIN) && !defined(USE_AURA)
@@ -2222,7 +2237,6 @@ void BrowserView::ProcessFullscreen(bool fullscreen) {
#endif
}
-
void BrowserView::LoadAccelerators() {
#if defined(USE_AURA)
// TODO(beng):

Powered by Google App Engine
This is Rietveld 408576698