diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 1e0d261da882c552e613961d9c41f4912eba3ea4..a01164f1ad9b603c7975bbc9a53104591740055b 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -800,6 +800,12 @@ void WebContentsAdapter::inspectElementAt(const QPoint &location)
     }
 }
 
+void WebContentsAdapter::exitFullScreen()
+{
+    Q_D(WebContentsAdapter);
+    d->webContents->ExitFullscreen();
+}
+
 void WebContentsAdapter::wasShown()
 {
     Q_D(WebContentsAdapter);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 1e78f8e775a4187d9bb92b8416cadc5ccb716d04..ca2f32ebee9c31d91efd68f3968d6c20137dd513 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -126,6 +126,7 @@ public:
     void executeMediaPlayerActionAt(const QPoint &location, MediaPlayerAction action, bool enable);
 
     void inspectElementAt(const QPoint &location);
+    void exitFullScreen();
 
     void wasShown();
     void wasHidden();
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 9a8a6ccb39da60995ed95b07e1981c27bd2194f2..e123bda8feabf68be77c01aa2580637624ea5797 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -266,6 +266,11 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu
         QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::CopyImageToClipboard); });
         ui()->addMenuItem(item, QObject::tr("Copy Image"));
     }
+    if (isFullScreen()) {
+        item = new MenuItemHandler(menu);
+        QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::ExitFullScreen); });
+        ui()->addMenuItem(item, QObject::tr("Exit Full Screen Mode"));
+    }
 
     // FIXME: expose the context menu data as an attached property to make this more useful
     if (contextMenuExtraItems) {
@@ -1292,6 +1297,9 @@ void QQuickWebEngineView::triggerWebAction(WebAction action)
     case InspectElement:
         d->adapter->inspectElementAt(d->contextMenuData.pos);
         break;
+    case ExitFullScreen:
+        d->adapter->exitFullScreen();
+        break;
     default:
         Q_UNREACHABLE();
     }
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index 934303722f921d1d097eb8becc76a69d100df9d5..c7625d209a0dffb933b8890a7b3e4e6036dc7132 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -224,6 +224,7 @@ public:
         DownloadMediaToDisk,
 
         InspectElement,
+        ExitFullScreen,
 
         WebActionCount
     };
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 1cf51df72db7a5c87e32af7c385fc40875641690..472e9587114a265e2f8f05147ea8a5e6bfdb5ddf 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -595,6 +595,9 @@ QAction *QWebEnginePage::action(WebAction action) const
     case InspectElement:
         text = tr("Inspect Element");
         break;
+    case ExitFullScreen:
+        text = tr("Exit Full Screen Mode");
+        break;
     default:
         break;
     }
@@ -762,6 +765,9 @@ void QWebEnginePage::triggerAction(WebAction action, bool)
     case InspectElement:
         d->adapter->inspectElementAt(d->m_menuData.pos);
         break;
+    case ExitFullScreen:
+        d->adapter->exitFullScreen();
+        break;
     default:
         Q_UNREACHABLE();
     }
@@ -968,6 +974,8 @@ QMenu *QWebEnginePage::createStandardContextMenu()
     } else if (contextMenuData.mediaType == WebEngineContextMenuData::MediaTypeCanvas) {
         menu->addAction(QWebEnginePage::action(CopyImageToClipboard));
     }
+    if (d->isFullScreen())
+        menu->addAction(QWebEnginePage::action(ExitFullScreen));
 
     return menu;
 }
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index c324f37373a4b9662beece892fb4df0bbe708674..d027998ee1a36ecb36e88aad9d40b51cb1e107ba 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -107,6 +107,7 @@ public:
         DownloadMediaToDisk,
 
         InspectElement,
+        ExitFullScreen,
 
         WebActionCount
     };