| 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);
|
|
|