diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-20 14:17:47 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-07-10 10:26:38 +0200 |
commit | 9cfde2edf4736ae9533e7e1fac495a23ad905419 (patch) | |
tree | 4eca639f54719a8824a527ee6a40fb13b462b110 /src/core/web_contents_adapter.cpp | |
parent | 0a01998411de6a46af8d0b0ae13b8f401cd14a4b (diff) |
Adaptations for Chromium 75
Change-Id: Idad08244e0c749a9f70f5eb9f8cd236039b941b3
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src/core/web_contents_adapter.cpp')
-rw-r--r-- | src/core/web_contents_adapter.cpp | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 6ea07b4e7..2295d33c0 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -213,10 +213,10 @@ static QVariant fromJSValue(const base::Value *result) return ret; } -static void callbackOnEvaluateJS(WebContentsAdapterClient *adapterClient, quint64 requestId, const base::Value *result) +static void callbackOnEvaluateJS(WebContentsAdapterClient *adapterClient, quint64 requestId, base::Value result) { if (requestId) - adapterClient->didRunJavaScript(requestId, fromJSValue(result)); + adapterClient->didRunJavaScript(requestId, fromJSValue(&result)); } #if QT_CONFIG(webengine_printing_and_pdf) @@ -560,6 +560,12 @@ bool WebContentsAdapter::canGoForward() const return m_webContents->GetController().CanGoForward(); } +bool WebContentsAdapter::canGoToOffset(int offset) const +{ + CHECK_INITIALIZED(false); + return m_webContents->GetController().CanGoToOffset(offset); +} + void WebContentsAdapter::stop() { CHECK_INITIALIZED(); @@ -845,6 +851,26 @@ void WebContentsAdapter::unselect() m_webContents->CollapseSelection(); } +void WebContentsAdapter::navigateBack() +{ + CHECK_INITIALIZED(); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + if (!m_webContents->GetController().CanGoBack()) + return; + m_webContents->GetController().GoBack(); + focusIfNecessary(); +} + +void WebContentsAdapter::navigateForward() +{ + CHECK_INITIALIZED(); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + if (!m_webContents->GetController().CanGoForward()) + return; + m_webContents->GetController().GoForward(); + focusIfNecessary(); +} + void WebContentsAdapter::navigateToIndex(int offset) { CHECK_INITIALIZED(); @@ -978,13 +1004,14 @@ void WebContentsAdapter::runJavaScript(const QString &javaScript, quint32 worldI CHECK_INITIALIZED(); content::RenderViewHost *rvh = m_webContents->GetRenderViewHost(); Q_ASSERT(rvh); +// static_cast<content::RenderFrameHostImpl *>(rvh->GetMainFrame())->NotifyUserActivation(); if (worldId == 0) { - rvh->GetMainFrame()->ExecuteJavaScript(toString16(javaScript)); + rvh->GetMainFrame()->ExecuteJavaScript(toString16(javaScript), base::NullCallback()); return; } - content::RenderFrameHost::JavaScriptResultCallback callback = base::Bind(&callbackOnEvaluateJS, m_adapterClient, CallbackDirectory::NoCallbackId); - rvh->GetMainFrame()->ExecuteJavaScriptInIsolatedWorld(toString16(javaScript), callback, worldId); + content::RenderFrameHost::JavaScriptResultCallback callback = base::BindOnce(&callbackOnEvaluateJS, m_adapterClient, CallbackDirectory::NoCallbackId); + rvh->GetMainFrame()->ExecuteJavaScriptInIsolatedWorld(toString16(javaScript), std::move(callback), worldId); } quint64 WebContentsAdapter::runJavaScriptCallbackResult(const QString &javaScript, quint32 worldId) @@ -992,11 +1019,12 @@ quint64 WebContentsAdapter::runJavaScriptCallbackResult(const QString &javaScrip CHECK_INITIALIZED(0); content::RenderViewHost *rvh = m_webContents->GetRenderViewHost(); Q_ASSERT(rvh); - content::RenderFrameHost::JavaScriptResultCallback callback = base::Bind(&callbackOnEvaluateJS, m_adapterClient, m_nextRequestId); +// static_cast<content::RenderFrameHostImpl *>(rvh->GetMainFrame())->NotifyUserActivation(); + content::RenderFrameHost::JavaScriptResultCallback callback = base::BindOnce(&callbackOnEvaluateJS, m_adapterClient, m_nextRequestId); if (worldId == 0) - rvh->GetMainFrame()->ExecuteJavaScript(toString16(javaScript), callback); + rvh->GetMainFrame()->ExecuteJavaScript(toString16(javaScript), std::move(callback)); else - rvh->GetMainFrame()->ExecuteJavaScriptInIsolatedWorld(toString16(javaScript), callback, worldId); + rvh->GetMainFrame()->ExecuteJavaScriptInIsolatedWorld(toString16(javaScript), std::move(callback), worldId); return m_nextRequestId++; } @@ -1596,11 +1624,10 @@ void WebContentsAdapter::waitForUpdateDragActionCalled() const qint64 timeout = 3000; QElapsedTimer t; t.start(); - auto backend = static_cast<base::sequence_manager::internal::SequenceManagerImpl *>( - base::MessageLoopCurrent::Get().ToMessageLoopBaseDeprecated()); + auto seqMan = base::MessageLoopCurrent::GetCurrentSequenceManagerImpl(); base::MessagePump::Delegate *delegate = static_cast<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl *>( - backend->controller_.get()); + seqMan->controller_.get()); DCHECK(delegate); m_updateDragActionCalled = false; |