Index: Source/web/ContextMenuClientImpl.cpp |
diff --git a/Source/web/ContextMenuClientImpl.cpp b/Source/web/ContextMenuClientImpl.cpp |
index 536d72cc8394da4ed3f34286fe866d8fb3246ffc..71b048c76d18b1fab65cadfd34ae8628f8363605 100644 |
--- a/Source/web/ContextMenuClientImpl.cpp |
+++ b/Source/web/ContextMenuClientImpl.cpp |
@@ -242,8 +242,12 @@ void ContextMenuClientImpl::showContextMenu(const WebCore::ContextMenu* defaultM |
data.mediaFlags |= WebContextMenuData::MediaCanSave; |
if (mediaElement->hasAudio()) |
data.mediaFlags |= WebContextMenuData::MediaHasAudio; |
- if (mediaElement->hasVideo()) |
- data.mediaFlags |= WebContextMenuData::MediaHasVideo; |
+ // Media controls can be toggled only for video player. If we toggle |
+ // controls for audio then the player disappears, and there is no way to |
+ // return it back. Don't set this bit for fullscreen video, since |
+ // toggling is ignored in that case. |
+ if (mediaElement->hasVideo() && !mediaElement->isFullscreen()) |
+ data.mediaFlags |= WebContextMenuData::MediaCanToggleControls; |
if (mediaElement->controls()) |
data.mediaFlags |= WebContextMenuData::MediaControls; |
} else if (isHTMLObjectElement(*r.innerNonSharedNode()) || isHTMLEmbedElement(*r.innerNonSharedNode())) { |