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

Unified Diff: chrome/browser/ui/fullscreen_controller.cc

Issue 9353010: Add FullscreenController::ToggleFullscreenModeWithExtension (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix copyright, compile erorr. Moved browser.h/cc change to this patch set. Created 8 years, 10 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
« no previous file with comments | « chrome/browser/ui/fullscreen_controller.h ('k') | chrome/browser/ui/fullscreen_exit_bubble_type.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/fullscreen_controller.cc
diff --git a/chrome/browser/ui/fullscreen_controller.cc b/chrome/browser/ui/fullscreen_controller.cc
index c1636ad58f83297aa5fbec936199438f218ecde4..ebc178fbe1c2e8e1b1e54396e93e57e743c0235f 100644
--- a/chrome/browser/ui/fullscreen_controller.cc
+++ b/chrome/browser/ui/fullscreen_controller.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/extensions/extension.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/user_metrics.h"
@@ -110,9 +111,9 @@ void FullscreenController::ToggleFullscreenModeForTab(WebContents* tab,
if (!in_browser_or_tab_fullscreen_mode) {
tab_caused_fullscreen_ = true;
#if defined(OS_MACOSX)
- TogglePresentationMode(true);
+ TogglePresentationModeInternal(true);
#else
- ToggleFullscreenMode(true);
+ ToggleFullscreenModeInternal(true, NULL);
yzshen1 2012/02/08 18:05:27 I think the following scenario doesn't work correc
hashimoto 2012/02/09 09:10:18 Thank you for finding this. Fixed by adding |exten
#endif
} else {
// We need to update the fullscreen exit bubble, e.g., going from browser
@@ -128,9 +129,9 @@ void FullscreenController::ToggleFullscreenModeForTab(WebContents* tab,
if (in_browser_or_tab_fullscreen_mode) {
if (tab_caused_fullscreen_) {
#if defined(OS_MACOSX)
- TogglePresentationMode(true);
+ TogglePresentationModeInternal(true);
#else
- ToggleFullscreenMode(true);
+ ToggleFullscreenModeInternal(true, NULL);
#endif
} else {
// If currently there is a tab in "tab fullscreen" mode and fullscreen
@@ -145,7 +146,11 @@ void FullscreenController::ToggleFullscreenModeForTab(WebContents* tab,
}
#if defined(OS_MACOSX)
-void FullscreenController::TogglePresentationMode(bool for_tab) {
+void FullscreenController::TogglePresentationMode() {
+ TogglePresentationModeInternal(false);
+}
+
+void FullscreenController::TogglePresentationModeInternal(bool for_tab) {
bool entering_fullscreen = !window_->InPresentationMode();
GURL url;
if (for_tab) {
@@ -154,15 +159,25 @@ void FullscreenController::TogglePresentationMode(bool for_tab) {
GetFullscreenSetting(url) == CONTENT_SETTING_ALLOW;
}
if (entering_fullscreen)
- window_->EnterPresentationMode(url, GetFullscreenExitBubbleType());
+ window_->EnterPresentationMode(url, GetFullscreenExitBubbleType(NULL));
else
window_->ExitPresentationMode();
WindowFullscreenStateChanged();
}
#endif
+void FullscreenController::ToggleFullscreenMode() {
+ ToggleFullscreenModeInternal(false, NULL);
+}
+
+void FullscreenController::ToggleFullscreenModeWithExtension(
+ const Extension& extension) {
+ ToggleFullscreenModeInternal(false, &extension);
+}
+
// TODO(koz): Change |for_tab| to an enum.
-void FullscreenController::ToggleFullscreenMode(bool for_tab) {
+void FullscreenController::ToggleFullscreenModeInternal(
+ bool for_tab, const Extension* extension) {
bool entering_fullscreen = !window_->IsFullscreen();
#if !defined(OS_MACOSX)
@@ -179,12 +194,15 @@ void FullscreenController::ToggleFullscreenMode(bool for_tab) {
tab_fullscreen_accepted_ = entering_fullscreen &&
GetFullscreenSetting(url) == CONTENT_SETTING_ALLOW;
} else {
+ if (extension)
+ url = extension->url();
content::RecordAction(UserMetricsAction("ToggleFullscreen"));
}
- if (entering_fullscreen)
- window_->EnterFullscreen(url, GetFullscreenExitBubbleType());
- else
+ if (entering_fullscreen) {
+ window_->EnterFullscreen(url, GetFullscreenExitBubbleType(extension));
+ } else {
window_->ExitFullscreen();
+ }
// Once the window has become fullscreen it'll call back to
// WindowFullscreenStateChanged(). We don't do this immediately as
@@ -314,7 +332,7 @@ void FullscreenController::NotifyTabOfFullscreenExitIfNecessary() {
void FullscreenController::ExitTabbedFullscreenModeIfNecessary() {
if (tab_caused_fullscreen_)
- ToggleFullscreenMode(false);
+ ToggleFullscreenMode();
else
NotifyTabOfFullscreenExitIfNecessary();
}
@@ -325,7 +343,7 @@ void FullscreenController::UpdateFullscreenExitBubbleContent() {
url = fullscreened_tab_->web_contents()->GetURL();
window_->UpdateFullscreenExitBubbleContent(url,
- GetFullscreenExitBubbleType());
+ GetFullscreenExitBubbleType(NULL));
}
void FullscreenController::NotifyFullscreenChange() {
@@ -335,11 +353,12 @@ void FullscreenController::NotifyFullscreenChange() {
content::NotificationService::NoDetails());
}
-FullscreenExitBubbleType
- FullscreenController::GetFullscreenExitBubbleType() const {
+FullscreenExitBubbleType FullscreenController::GetFullscreenExitBubbleType(
+ const Extension* extension) const {
if (!fullscreened_tab_) {
DCHECK_EQ(MOUSELOCK_NOT_REQUESTED, mouse_lock_state_);
- return FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION;
+ return extension ? FEB_TYPE_BROWSER_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION :
+ FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION;
}
if (fullscreened_tab_ && !tab_fullscreen_accepted_) {
DCHECK_NE(MOUSELOCK_ACCEPTED, mouse_lock_state_);
« no previous file with comments | « chrome/browser/ui/fullscreen_controller.h ('k') | chrome/browser/ui/fullscreen_exit_bubble_type.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698