diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-05-23 11:24:03 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-06-01 16:56:23 +0000 |
commit | 4a94a13d54dbaf32e7ac34cdee6e207fe5478286 (patch) | |
tree | 107bcf735b559024bfc4121d23071cea27ac05d4 /src/core/renderer/web_channel_ipc_transport.h | |
parent | 9d94e3ad9a1f3cf215d267c4b43ce74d57c54b2b (diff) |
Fix early JavaScript injection
With the latest Chromium snapshot we can no longer install any
javascript before a new callback called RunScriptsAtDocumentStart has
been called. So we must refactor user-scripts and web-channels to
install on this call instead.
Change-Id: I440a0aa4b26100c650d5c678b454ea5beb6b59d2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/core/renderer/web_channel_ipc_transport.h')
-rw-r--r-- | src/core/renderer/web_channel_ipc_transport.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/renderer/web_channel_ipc_transport.h b/src/core/renderer/web_channel_ipc_transport.h index f799f47af..81e64bb0f 100644 --- a/src/core/renderer/web_channel_ipc_transport.h +++ b/src/core/renderer/web_channel_ipc_transport.h @@ -42,23 +42,35 @@ #include "base/values.h" #include "content/public/renderer/render_view_observer.h" +#include "content/public/renderer/render_view_observer_tracker.h" #include <QtCore/qcompilerdetection.h> +namespace content { +class RenderFrame; +} + namespace v8 { class Extension; } namespace QtWebEngineCore { -class WebChannelIPCTransport : public content::RenderViewObserver { +class WebChannelIPCTransport : public content::RenderViewObserver + , public content::RenderViewObserverTracker<WebChannelIPCTransport> +{ public: WebChannelIPCTransport(content::RenderView *); + void RunScriptsAtDocumentStart(content::RenderFrame *render_frame); + private: void dispatchWebChannelMessage(const std::vector<char> &binaryJSON, uint worldId); void installWebChannel(uint worldId); void uninstallWebChannel(uint worldId); virtual bool OnMessageReceived(const IPC::Message &message) Q_DECL_OVERRIDE; + + uint m_worldId; + bool m_installed; }; } // namespace |