diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2021-02-05 10:56:48 +0100 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2021-02-09 12:42:43 +0100 |
commit | 78c5516711414ed8fd9b1b473a58b038b4a80279 (patch) | |
tree | 66b54c20a3f0b467897f37d18bd2acaa6a8db909 /src/core/renderer | |
parent | 95e93830e45f5f10397248a794672ff6a681c8b8 (diff) |
Enable webrtc logging and the corresponding WebUI
The corresponding WebUI is chrome://webrtc-logs
It only makes sense with the hangout services extension. It seems to be
only useable with meet.google.com. The behavior is same for Chrome.
Uploading logs to Google is disabled in the Chromium patch. It is an
extension API functionality. The WebUI only lists the previously
generated logs.
Pulls in the following changes:
1dda5314b02 Enable webrtcLoggingPrivate extension API for hangout extension
7d71aca116d FIXUP: Enable webrtcLoggingPrivate extension API for hangout extension
Change-Id: I455fce7c8081e71967e55ab1f889df6ef91ed253
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/renderer')
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.cpp | 24 | ||||
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.h | 12 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 8dddf7a15..cafdeddb4 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -113,6 +113,10 @@ #include "third_party/widevine/cdm/widevine_cdm_common.h" #endif +#if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) +#include "chrome/renderer/media/webrtc_logging_agent_impl.h" +#endif + namespace QtWebEngineCore { static const char kHttpErrorDomain[] = "http"; @@ -183,6 +187,15 @@ void ContentRendererClientQt::ExposeInterfacesToBrowser(mojo::BinderMap* binders }, this), base::SequencedTaskRunnerHandle::Get()); #endif + +#if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) + binders->Add(base::BindRepeating( + [](ContentRendererClientQt *client, + mojo::PendingReceiver<chrome::mojom::WebRtcLoggingAgent> receiver) { + client->GetWebRtcLoggingAgent()->AddReceiver(std::move(receiver)); + }, this), + base::SequencedTaskRunnerHandle::Get()); +#endif } void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame *render_frame) @@ -367,6 +380,17 @@ blink::WebPlugin* ContentRendererClientQt::CreatePlugin(content::RenderFrame* re } #endif //BUILDFLAG(ENABLE_PLUGINS) +#if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) +chrome::WebRtcLoggingAgentImpl *ContentRendererClientQt::GetWebRtcLoggingAgent() +{ + if (!m_webrtcLoggingAgentImpl) { + m_webrtcLoggingAgentImpl = std::make_unique<chrome::WebRtcLoggingAgentImpl>(); + } + + return m_webrtcLoggingAgentImpl.get(); +} +#endif // QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) + void ContentRendererClientQt::GetInterface(const std::string &interface_name, mojo::ScopedMessagePipeHandle interface_pipe) { content::RenderThread::Get()->BindHostReceiver(mojo::GenericPendingReceiver(interface_name, std::move(interface_pipe))); diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h index 82d8af514..0b0a7b68c 100644 --- a/src/core/renderer/content_renderer_client_qt.h +++ b/src/core/renderer/content_renderer_client_qt.h @@ -53,6 +53,10 @@ #include <QScopedPointer> +namespace chrome { +class WebRtcLoggingAgentImpl; +} + namespace error_page { class Error; } @@ -130,6 +134,11 @@ public: const chrome::mojom::PluginInfo& plugin_info); #endif +#if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) + chrome::WebRtcLoggingAgentImpl *GetWebRtcLoggingAgent(); +#endif + + private: #if BUILDFLAG(ENABLE_SPELLCHECK) void InitSpellCheck(); @@ -147,6 +156,9 @@ private: #if QT_CONFIG(webengine_spellchecker) QScopedPointer<SpellCheck> m_spellCheck; #endif +#if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) + std::unique_ptr<chrome::WebRtcLoggingAgentImpl> m_webrtcLoggingAgentImpl; +#endif DISALLOW_COPY_AND_ASSIGN(ContentRendererClientQt); }; |