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

Unified Diff: chrome/browser/renderer_context_menu/render_view_context_menu.cc

Issue 2116973002: Added "Exit full screen" to context menu. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Do not show an accelerator for user-triggered fullscreen on Chrome OS. Created 4 years, 5 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/renderer_context_menu/render_view_context_menu.cc
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 281ce0da514af25e52c9c938879936f19a17c0ab..df69a5b9188c71d92433c4c0b358b2e21e20405a 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -306,9 +306,10 @@ const struct UmaEnumCommandIdPair {
{85, -1, IDC_CONTENT_CONTEXT_OPEN_WITH12},
{86, -1, IDC_CONTENT_CONTEXT_OPEN_WITH13},
{87, -1, IDC_CONTENT_CONTEXT_OPEN_WITH14},
+ {88, -1, IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN},
// Add new items here and use |enum_id| from the next line.
// Also, add new items to RenderViewContextMenuItem enum in histograms.xml.
- {88, -1, 0}, // Must be the last. Increment |enum_id| when new IDC
+ {89, -1, 0}, // Must be the last. Increment |enum_id| when new IDC
// was added.
};
@@ -882,6 +883,16 @@ void RenderViewContextMenu::RecordShownItem(int id) {
}
}
+bool RenderViewContextMenu::IsHTML5Fullscreen() const {
+ Browser* browser = chrome::FindBrowserWithWebContents(source_web_contents_);
+ if (!browser)
+ return false;
+
+ FullscreenController* controller =
+ browser->exclusive_access_manager()->fullscreen_controller();
+ return controller->IsTabFullscreen();
+}
+
#if defined(ENABLE_PLUGINS)
void RenderViewContextMenu::HandleAuthorizeAllPlugins() {
ChromePluginServiceFilter::GetInstance()->AuthorizeAllPlugins(
@@ -1168,6 +1179,8 @@ void RenderViewContextMenu::AppendPluginItems() {
}
void RenderViewContextMenu::AppendPageItems() {
+ AppendExitFullscreenItem();
+
menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK);
menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD);
menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD);
@@ -1189,6 +1202,23 @@ void RenderViewContextMenu::AppendPageItems() {
}
}
+void RenderViewContextMenu::AppendExitFullscreenItem() {
+ Browser* browser = chrome::FindBrowserWithWebContents(source_web_contents_);
+ if (!browser)
+ return;
+
+ // Only show item if in fullscreen mode.
+ if (!browser->exclusive_access_manager()
+ ->fullscreen_controller()
+ ->IsControllerInitiatedFullscreen()) {
+ return;
+ }
+
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN,
+ IDS_CONTENT_CONTEXT_EXIT_FULLSCREEN);
+ menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
+}
+
void RenderViewContextMenu::AppendCopyItem() {
if (menu_model_.GetItemCount())
menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
@@ -1579,6 +1609,9 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
case IDC_ROUTE_MEDIA:
return IsRouteMediaEnabled();
+ case IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN:
+ return true;
+
default:
NOTREACHED();
return false;
@@ -1752,6 +1785,10 @@ void RenderViewContextMenu::ExecuteCommand(int id, int event_flags) {
ExecRouteMedia();
break;
+ case IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN:
+ ExecExitFullscreen();
+ break;
+
case IDC_VIEW_SOURCE:
embedder_web_contents_->ViewSource();
break;
@@ -2189,6 +2226,15 @@ void RenderViewContextMenu::ExecSaveAs() {
}
}
+void RenderViewContextMenu::ExecExitFullscreen() {
+ Browser* browser = chrome::FindBrowserWithWebContents(source_web_contents_);
+ if (!browser) {
+ NOTREACHED();
+ return;
+ }
+
+ browser->exclusive_access_manager()->ExitExclusiveAccess();
+}
void RenderViewContextMenu::ExecCopyLinkText() {
ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);

Powered by Google App Engine
This is Rietveld 408576698