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 412423454d98b621eca073b04c0f9fdda1e24a10..627f690b3f5084c32a43465f3630d83794911190 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.cc |
+++ b/chrome/browser/ui/views/frame/browser_view.cc |
@@ -792,6 +792,7 @@ void BrowserView::ExitFullscreen() { |
#if defined(OS_WIN) |
ProcessFullscreen(false, GURL(), FEB_TYPE_NONE); |
#else |
+ fullscreen_request_.pending = false; |
// On Linux changing fullscreen is async. Ask the window to change it's |
// fullscreen state, and when done invoke ProcessFullscreen. |
frame_->SetFullscreen(false); |
@@ -814,12 +815,15 @@ bool BrowserView::IsFullscreenBubbleVisible() const { |
} |
void BrowserView::FullScreenStateChanged() { |
- bool is_fullscreen = IsFullscreen(); |
- if (is_fullscreen) { |
- DCHECK(fullscreen_request_.pending); |
yzshen1
2011/10/21 21:45:29
I observed fullscreen state change notification th
koz (OOO until 15th September)
2011/10/24 00:57:05
SGTM.
|
- fullscreen_request_.pending = false; |
- ProcessFullscreen(true, fullscreen_request_.url, |
- fullscreen_request_.bubble_type); |
+ if (IsFullscreen()) { |
+ if (fullscreen_request_.pending) { |
+ fullscreen_request_.pending = false; |
+ ProcessFullscreen(true, fullscreen_request_.url, |
+ fullscreen_request_.bubble_type); |
+ } else { |
+ ProcessFullscreen(true, GURL(), |
+ FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION); |
+ } |
} else { |
ProcessFullscreen(false, GURL(), FEB_TYPE_NONE); |
} |