From 916b91146814fa16bab990dec3fea97bff334380 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Date: Tue, 25 Aug 2015 16:03:10 +0200 Subject: [PATCH] Add inspect element webaction Adds the missing InspectElement webaction from QtWebKit. It is not added by to any context menus by default and only has an effect when an inspector is attached. Change-Id: Ic8c67c797e5dfe266fb692ffc97577b842458a79 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> --- src/core/web_contents_adapter.cpp | 9 +++++++++ src/core/web_contents_adapter.h | 2 ++ src/webengine/api/qquickwebengineview.cpp | 3 +++ src/webengine/api/qquickwebengineview_p.h | 2 ++ src/webenginewidgets/api/qwebenginepage.cpp | 6 ++++++ src/webenginewidgets/api/qwebenginepage.h | 2 ++ 6 files changed, 24 insertions(+) diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index cb9cb012b..1e0d261da 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -58,6 +58,7 @@ #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/child_process_security_policy.h" +#include "content/public/browser/devtools_agent_host.h" #include <content/public/browser/download_manager.h> #include "content/public/browser/host_zoom_map.h" #include "content/public/browser/navigation_entry.h" @@ -791,6 +792,14 @@ void WebContentsAdapter::executeMediaPlayerActionAt(const QPoint &location, Medi d->webContents->GetRenderViewHost()->ExecuteMediaPlayerActionAtLocation(toGfx(location), blinkAction); } +void WebContentsAdapter::inspectElementAt(const QPoint &location) +{ + Q_D(WebContentsAdapter); + if (content::DevToolsAgentHost::HasFor(d->webContents.get())) { + content::DevToolsAgentHost::GetOrCreateFor(d->webContents.get())->InspectElement(location.x(), location.y()); + } +} + void WebContentsAdapter::wasShown() { Q_D(WebContentsAdapter); diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h index 902cc61ff..1e78f8e77 100644 --- a/src/core/web_contents_adapter.h +++ b/src/core/web_contents_adapter.h @@ -125,6 +125,8 @@ public: void copyImageAt(const QPoint &location); void executeMediaPlayerActionAt(const QPoint &location, MediaPlayerAction action, bool enable); + void inspectElementAt(const QPoint &location); + void wasShown(); void wasHidden(); void grantMediaAccessPermission(const QUrl &securityOrigin, WebContentsAdapterClient::MediaRequestFlags flags); diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 45bb5a140..9a8a6ccb3 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -1289,6 +1289,9 @@ void QQuickWebEngineView::triggerWebAction(WebAction action) d->adapter->executeMediaPlayerActionAt(d->contextMenuData.pos, WebContentsAdapter::MediaPlayerMute, enable); } break; + case InspectElement: + d->adapter->inspectElementAt(d->contextMenuData.pos); + break; default: Q_UNREACHABLE(); } diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index 5b99dc3e2..934303722 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -223,6 +223,8 @@ public: ToggleMediaMute, DownloadMediaToDisk, + InspectElement, + WebActionCount }; diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index e7d4e60e5..dd96c3890 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -591,6 +591,9 @@ QAction *QWebEnginePage::action(WebAction action) const case DownloadMediaToDisk: text = tr("Download Media"); break; + case InspectElement: + text = tr("Inspect Element"); + break; default: break; } @@ -755,6 +758,9 @@ void QWebEnginePage::triggerAction(WebAction action, bool) d->adapter->executeMediaPlayerActionAt(d->m_menuData.pos, WebContentsAdapter::MediaPlayerMute, enable); } break; + case InspectElement: + d->adapter->inspectElementAt(d->m_menuData.pos); + break; default: Q_UNREACHABLE(); } diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 422a4a8ad..1753cd75a 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -106,6 +106,8 @@ public: ToggleMediaMute, DownloadMediaToDisk, + InspectElement, + WebActionCount }; -- GitLab