diff --git a/examples/webengine/recipebrowser/resources/pages/burger.html b/examples/webengine/recipebrowser/resources/pages/burger.html index b10170cbdd2f12ae17ef4dc602a3c034ab04d316..6651cc0f06e4b8a7c7dfd7d43c0dadc026c0a447 100644 --- a/examples/webengine/recipebrowser/resources/pages/burger.html +++ b/examples/webengine/recipebrowser/resources/pages/burger.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/burger.jpg" alt="Insanity Burger" title="Insanity Burger" /> + Insanity burger =============== diff --git a/examples/webengine/recipebrowser/resources/pages/cupcakes.html b/examples/webengine/recipebrowser/resources/pages/cupcakes.html index e212478256e1112bbec0242dd0727832b512368d..4791c7ffafdce22026de3fcf979c08c58b8b15ca 100644 --- a/examples/webengine/recipebrowser/resources/pages/cupcakes.html +++ b/examples/webengine/recipebrowser/resources/pages/cupcakes.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/cupcakes.jpg" alt="Cupcakes" title="Cupcakes" /> + Cupcakes ============= diff --git a/examples/webengine/recipebrowser/resources/pages/pasta.html b/examples/webengine/recipebrowser/resources/pages/pasta.html index 4de65292e2cec302f4ce6f242b1a124ba0702736..41ed1a756bfce17a312dd299ba20f9eb2c964d46 100644 --- a/examples/webengine/recipebrowser/resources/pages/pasta.html +++ b/examples/webengine/recipebrowser/resources/pages/pasta.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/pasta.jpg" alt="Pasta" title="Pasta" /> + Pasta ============= diff --git a/examples/webengine/recipebrowser/resources/pages/pizza.html b/examples/webengine/recipebrowser/resources/pages/pizza.html index c63102934f4e2358bedafe5f02460969cd14cf32..348d809e8a3e21dad2dc9d8e62e3534f5a69d61a 100644 --- a/examples/webengine/recipebrowser/resources/pages/pizza.html +++ b/examples/webengine/recipebrowser/resources/pages/pizza.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/pizza.jpg" alt="Pizza Diavola" title="Pizza Diavola" /> + Pizza Diavola ============= diff --git a/examples/webengine/recipebrowser/resources/pages/skewers.html b/examples/webengine/recipebrowser/resources/pages/skewers.html index 6fbf90cb436ebe25332bd57f8453693ed1fdc003..aca4c48590833c8dbc3b9a433d92645579894b44 100644 --- a/examples/webengine/recipebrowser/resources/pages/skewers.html +++ b/examples/webengine/recipebrowser/resources/pages/skewers.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/skewers.jpg" alt="Grilled skewers" title="Grilled skewers" /> + Grilled skewers ====================== diff --git a/examples/webengine/recipebrowser/resources/pages/soup.html b/examples/webengine/recipebrowser/resources/pages/soup.html index e99f016cff46657a67f67212581d6fd671d02bcb..1b7027e5de118f7f4c1e880762c720245c7cc637 100644 --- a/examples/webengine/recipebrowser/resources/pages/soup.html +++ b/examples/webengine/recipebrowser/resources/pages/soup.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/soup.jpg" alt="Soup" title="Soup" /> + Soup ============= diff --git a/examples/webengine/recipebrowser/resources/pages/steak.html b/examples/webengine/recipebrowser/resources/pages/steak.html index c58395d10c53776a39809a126093c86680f3bfbb..a56313e27d6dcf6b1f6ccda85650ee0ba4e26251 100644 --- a/examples/webengine/recipebrowser/resources/pages/steak.html +++ b/examples/webengine/recipebrowser/resources/pages/steak.html @@ -11,6 +11,7 @@ <div id="content"> <img src="images/steak.jpg" alt="Grilled steak and rice" title="Grilled steak and rice" /> + Grilled steak and rice ====================== diff --git a/examples/webengine/recipebrowser/resources/qml/RecipeList.qml b/examples/webengine/recipebrowser/resources/qml/RecipeList.qml index 24be23a64dbb4c11b01e29963839e0a1285e32b7..41806986cfc703a1eb29407d807019c5c1c9fd9e 100644 --- a/examples/webengine/recipebrowser/resources/qml/RecipeList.qml +++ b/examples/webengine/recipebrowser/resources/qml/RecipeList.qml @@ -48,7 +48,7 @@ ** ****************************************************************************/ -import QtQuick 2.0 +import QtQuick 2.1 import QtQuick.Controls 2.0 import QtQuick.Controls.Material 2.0 import QtQuick.Layouts 1.0 diff --git a/examples/webengine/recipebrowser/resources/qml/main.qml b/examples/webengine/recipebrowser/resources/qml/main.qml index 2639b6b5d459b86c6d16b3567dc7adefed3069e4..a9893ed67ecf01312fe4091f694cf2f22d100946 100644 --- a/examples/webengine/recipebrowser/resources/qml/main.qml +++ b/examples/webengine/recipebrowser/resources/qml/main.qml @@ -49,7 +49,7 @@ ****************************************************************************/ import QtQml 2.0 -import QtQuick 2.0 +import QtQuick 2.1 import QtQuick.Controls 2.0 import QtQuick.Controls.Material 2.0 import QtQuick.Layouts 1.0 @@ -98,7 +98,7 @@ ApplicationWindow { Layout.fillWidth: true Layout.fillHeight: true focus: true - KeyNavigation.tab: webView + activeFocusOnTab: true onRecipeSelected: function(url) { webView.showRecipe(url) } @@ -109,8 +109,6 @@ ApplicationWindow { Layout.preferredWidth: 2 * parent.width / 3 Layout.fillWidth: true Layout.fillHeight: true - KeyNavigation.tab: recipeList - KeyNavigation.priority: KeyNavigation.BeforeItem // Make sure focus is not taken by the web view, so user can continue navigating // recipes with the keyboard. settings.focusOnNavigationEnabled: false diff --git a/src/3rdparty b/src/3rdparty index d245970d5e4247e9f348b4a3be4a3a86d09c0b90..10fd63a07a381a3ab3b27ef8906817173e3ffbb8 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit d245970d5e4247e9f348b4a3be4a3a86d09c0b90 +Subproject commit 10fd63a07a381a3ab3b27ef8906817173e3ffbb8 diff --git a/src/core/common/qt_messages.h b/src/core/common/qt_messages.h index 1862ff29f9f087763518055c1d1f3d83b02760cd..9add826ae1c4a4672eae2e0446aaccd49dbdd45e 100644 --- a/src/core/common/qt_messages.h +++ b/src/core/common/qt_messages.h @@ -65,6 +65,9 @@ IPC_MESSAGE_ROUTED2(RenderViewObserverHostQt_DidFetchDocumentInnerText, uint64_t /* requestId */, base::string16 /* innerText */) +IPC_MESSAGE_ROUTED1(RenderViewObserverQt_SetBackgroundColor, + uint32_t /* color */) + IPC_MESSAGE_ROUTED0(RenderViewObserverHostQt_DidFirstVisuallyNonEmptyLayout) //----------------------------------------------------------------------------- diff --git a/src/core/config/common.pri b/src/core/config/common.pri index 56e6d547a0904bdb36be14fc8347ff1b7ed0a559..6f3ce75b3b667c8725b0ab79e54ed0706fcd3819 100644 --- a/src/core/config/common.pri +++ b/src/core/config/common.pri @@ -72,6 +72,13 @@ precompile_header { gn_args += enable_precompiled_headers=false } +CONFIG(release, debug|release):!isDeveloperBuild() { + gn_args += is_official_build=true +} else { + gn_args += is_official_build=false + !isDeveloperBuild(): gn_args += is_unsafe_developer_build=false +} + CONFIG(release, debug|release) { gn_args += is_debug=false force_debug_info { diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri index d04aea1407a4073dc6bed39fb002bd2df2096c75..3eb4369100b5a7fea69f2dc29c691f0012faa2fd 100644 --- a/src/core/config/linux.pri +++ b/src/core/config/linux.pri @@ -10,6 +10,7 @@ gn_args += \ use_bundled_fontconfig=false \ use_sysroot=false \ enable_session_service=false \ + is_cfi=false \ toolkit_views=false \ use_ozone=true \ ozone_auto_platforms=false \ diff --git a/src/core/config/windows.pri b/src/core/config/windows.pri index 3b42a0b9a27e4c7641121a7d2dda38a4d1a893cf..9eb15830d7025b220de2bcc5f08f6dfa5c9d59a3 100644 --- a/src/core/config/windows.pri +++ b/src/core/config/windows.pri @@ -6,7 +6,8 @@ gn_args += \ enable_session_service=false \ ninja_use_custom_environment_files=false \ is_multi_dll_chrome=false \ - win_linker_timing=true + win_linker_timing=true \ + com_init_check_hook_disabled=true isDeveloperBuild() { gn_args += \ diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 39ec143828f4ea68749efd0360d763c66e17eef4..414fc6582fbc1531ce313b4c4309032c84df6cec 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -40,6 +40,7 @@ #include "render_widget_host_view_qt.h" #include "browser_accessibility_manager_qt.h" +#include "common/qt_messages.h" #include "compositor/compositor.h" #include "qtwebenginecoreglobal_p.h" #include "render_widget_host_view_qt_delegate.h" @@ -439,6 +440,7 @@ void RenderWidgetHostViewQt::UpdateBackgroundColor() auto color = GetBackgroundColor(); if (color) { m_delegate->setClearColor(toQt(*color)); + host()->Send(new RenderViewObserverQt_SetBackgroundColor(host()->GetRoutingID(), *color)); } } @@ -1108,7 +1110,7 @@ void RenderWidgetHostViewQt::closePopup() // (hiding the widget and automatic memory cleanup via // RenderWidget::CloseWidgetSoon() -> RenderWidgetHostImpl::ShutdownAndDestroyWidget(true). host()->SetActive(false); - host()->Blur(); + host()->LostFocus(); } void RenderWidgetHostViewQt::ProcessAckedTouchEvent(const content::TouchEventWithLatencyInfo &touch, content::InputEventAckState ack_result) { @@ -1631,7 +1633,7 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev) ev->accept(); } else if (ev->lostFocus()) { host()->SetActive(false); - host()->Blur(); + host()->LostFocus(); ev->accept(); } } diff --git a/src/core/renderer/render_view_observer_qt.cpp b/src/core/renderer/render_view_observer_qt.cpp index 07dadfd408d401c3fb4b27b2464a457d2b64b680..2795de4b98b5f046a647a57d371993c996966ced 100644 --- a/src/core/renderer/render_view_observer_qt.cpp +++ b/src/core/renderer/render_view_observer_qt.cpp @@ -78,6 +78,11 @@ void RenderViewObserverQt::onFetchDocumentInnerText(quint64 requestId) Send(new RenderViewObserverHostQt_DidFetchDocumentInnerText(routing_id(), requestId, text.Utf16())); } +void RenderViewObserverQt::onSetBackgroundColor(quint32 color) +{ + render_view()->GetWebView()->SetBaseBackgroundColor(color); +} + void RenderViewObserverQt::OnDestruct() { delete this; @@ -89,6 +94,7 @@ bool RenderViewObserverQt::OnMessageReceived(const IPC::Message& message) IPC_BEGIN_MESSAGE_MAP(RenderViewObserverQt, message) IPC_MESSAGE_HANDLER(RenderViewObserverQt_FetchDocumentMarkup, onFetchDocumentMarkup) IPC_MESSAGE_HANDLER(RenderViewObserverQt_FetchDocumentInnerText, onFetchDocumentInnerText) + IPC_MESSAGE_HANDLER(RenderViewObserverQt_SetBackgroundColor, onSetBackgroundColor) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; diff --git a/src/core/renderer/render_view_observer_qt.h b/src/core/renderer/render_view_observer_qt.h index 83c0cd265485f3cc449b0839745a7068c117d07d..abb472f0200ad951ba0c22ac52d0c46c1b0ee091 100644 --- a/src/core/renderer/render_view_observer_qt.h +++ b/src/core/renderer/render_view_observer_qt.h @@ -55,6 +55,7 @@ public: private: void onFetchDocumentMarkup(quint64 requestId); void onFetchDocumentInnerText(quint64 requestId); + void onSetBackgroundColor(quint32 color); void OnDestruct() override; diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index cdfcae450ce45a7498b1c0216b29c3d6a07ff284..beb41e17f4d57f096db01a5f6d4376bc0845ee3a 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -448,7 +448,7 @@ public: virtual void didFindText(quint64 requestId, int matchCount) = 0; virtual void didPrintPage(quint64 requestId, QSharedPointer<QByteArray>) = 0; virtual void didPrintPageToPdf(const QString &filePath, bool success) = 0; - virtual void passOnFocus(bool reverse) = 0; + virtual bool passOnFocus(bool reverse) = 0; // returns the last QObject (QWidget/QQuickItem) based object in the accessibility // hierarchy before going into the BrowserAccessibility tree virtual QObject *accessibilityParentObject() = 0; diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index adc05253d8d954ce9d32e9505c0f5c315c9e3763..021044a7126bb27b2418acb73a77270d6fa2f075 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -704,6 +704,12 @@ void WebContentsDelegateQt::UnregisterProtocolHandler(content::WebContents *webC registry->RemoveHandler(handler); } +bool WebContentsDelegateQt::TakeFocus(content::WebContents *source, bool reverse) +{ + Q_UNUSED(source); + return m_viewClient->passOnFocus(reverse); +} + FaviconManager *WebContentsDelegateQt::faviconManager() { return m_faviconManager.data(); diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h index ee1bca81fd4a3f74d0620631bb5de8145159c717..1629222c25e1d93bfc184c1d6d642570b449c8f4 100644 --- a/src/core/web_contents_delegate_qt.h +++ b/src/core/web_contents_delegate_qt.h @@ -129,6 +129,7 @@ public: bool CheckMediaAccessPermission(content::RenderFrameHost* render_frame_host, const GURL& security_origin, blink::MediaStreamType type) override; void RegisterProtocolHandler(content::WebContents* web_contents, const std::string& protocol, const GURL& url, bool user_gesture) override; void UnregisterProtocolHandler(content::WebContents* web_contents, const std::string& protocol, const GURL& url, bool user_gesture) override; + bool TakeFocus(content::WebContents *source, bool reverse) override; // WebContentsObserver overrides void RenderFrameDeleted(content::RenderFrameHost *render_frame_host) override; diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp index 7177a8713c7ad78eff025fca57b06ae66e145d73..ef7c096653ddd8e53abdc4bcd5995c6cb1a6ed7c 100644 --- a/src/core/web_contents_view_qt.cpp +++ b/src/core/web_contents_view_qt.cpp @@ -55,6 +55,7 @@ #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/web_contents/web_contents_impl.h" +#include "content/public/browser/web_contents_delegate.h" #include "content/public/common/context_menu_params.h" #include "ui/gfx/image/image_skia.h" @@ -141,6 +142,22 @@ void WebContentsViewQt::SetInitialFocus() Focus(); } +void WebContentsViewQt::FocusThroughTabTraversal(bool reverse) +{ + content::WebContentsImpl *web_contents = static_cast<content::WebContentsImpl*>(m_webContents); + if (web_contents->ShowingInterstitialPage()) { + web_contents->GetInterstitialPage()->FocusThroughTabTraversal(reverse); + return; + } + content::RenderWidgetHostView *fullscreen_view = web_contents->GetFullscreenRenderWidgetHostView(); + if (fullscreen_view) { + fullscreen_view->Focus(); + return; + } + web_contents->GetRenderViewHost()->SetInitialFocus(reverse); +} + + ASSERT_ENUMS_MATCH(WebEngineContextMenuData::MediaTypeNone, blink::WebContextMenuData::kMediaTypeNone) ASSERT_ENUMS_MATCH(WebEngineContextMenuData::MediaTypeImage, blink::WebContextMenuData::kMediaTypeImage) ASSERT_ENUMS_MATCH(WebEngineContextMenuData::MediaTypeVideo, blink::WebContextMenuData::kMediaTypeVideo) @@ -265,25 +282,22 @@ void WebContentsViewQt::UpdateDragCursor(blink::WebDragOperation dragOperation) #endif // QT_CONFIG(draganddrop) } -void WebContentsViewQt::TakeFocus(bool reverse) +void WebContentsViewQt::GotFocus(content::RenderWidgetHostImpl* render_widget_host) { - m_client->passOnFocus(reverse); + content::WebContentsImpl *web_contents = static_cast<content::WebContentsImpl*>(m_webContents); + web_contents->NotifyWebContentsFocused(render_widget_host); } -void WebContentsViewQt::FocusThroughTabTraversal(bool reverse) +void WebContentsViewQt::LostFocus(content::RenderWidgetHostImpl* render_widget_host) { content::WebContentsImpl *web_contents = static_cast<content::WebContentsImpl*>(m_webContents); - if (web_contents->ShowingInterstitialPage()) { - web_contents->GetInterstitialPage()->FocusThroughTabTraversal(reverse); - return; - } - content::RenderWidgetHostView *fullscreen_view = web_contents->GetFullscreenRenderWidgetHostView(); - if (fullscreen_view) { - fullscreen_view->Focus(); - return; - } - web_contents->GetRenderViewHost()->SetInitialFocus(reverse); + web_contents->NotifyWebContentsLostFocus(render_widget_host); } +void WebContentsViewQt::TakeFocus(bool reverse) +{ + if (m_webContents->GetDelegate()) + m_webContents->GetDelegate()->TakeFocus(m_webContents, reverse); +} } // namespace QtWebEngineCore diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h index 7cd3910f20bf39b0b508f8053c25d146c1e076f7..ec09f9aae2bb84025005b0d76a992525e90fd1fc 100644 --- a/src/core/web_contents_view_qt.h +++ b/src/core/web_contents_view_qt.h @@ -69,6 +69,7 @@ public: void setClient(WebContentsAdapterClient* client); WebContentsAdapterClient *client() { return m_client; } + // content::WebContentsView overrides: content::RenderWidgetHostViewBase *CreateViewForWidget(content::RenderWidgetHost* render_widget_host, bool is_guest_view_hack) override; void CreateView(const gfx::Size& initial_size, gfx::NativeView context) override; @@ -107,6 +108,14 @@ public: gfx::Rect GetViewBounds() const override { return gfx::Rect(); } + void FocusThroughTabTraversal(bool reverse) override; + +#if defined(OS_MACOSX) + void CloseTabAfterEventTracking() override { QT_NOT_YET_IMPLEMENTED } + bool IsEventTracking() const override { QT_NOT_YET_IMPLEMENTED; return false; } +#endif // defined(OS_MACOSX) + + // content::RenderViewHostDelegateView overrides: void StartDragging(const content::DropData& drop_data, blink::WebDragOperationsMask allowed_ops, const gfx::ImageSkia& image, const gfx::Vector2d& image_offset, const content::DragEventSourceInfo& event_info, @@ -116,16 +125,10 @@ public: void ShowContextMenu(content::RenderFrameHost *, const content::ContextMenuParams ¶ms) override; + void GotFocus(content::RenderWidgetHostImpl *render_widget_host) override; + void LostFocus(content::RenderWidgetHostImpl *render_widget_host) override; void TakeFocus(bool reverse) override; - void FocusThroughTabTraversal(bool reverse) override; - - -#if defined(OS_MACOSX) - void CloseTabAfterEventTracking() override { QT_NOT_YET_IMPLEMENTED } - bool IsEventTracking() const override { QT_NOT_YET_IMPLEMENTED; return false; } -#endif // defined(OS_MACOSX) - private: content::WebContents *m_webContents; WebContentsAdapterClient *m_client; diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 3290fe4484b10ba8baabfbe2c98b8bb55f8b969b..9826ebfe24e563455285810bdb318e50fee7819d 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -348,12 +348,16 @@ void QQuickWebEngineViewPrivate::runFileChooser(QSharedPointer<FilePickerControl ui()->showFilePicker(controller); } -void QQuickWebEngineViewPrivate::passOnFocus(bool reverse) +bool QQuickWebEngineViewPrivate::passOnFocus(bool reverse) { Q_Q(QQuickWebEngineView); // The child delegate currently has focus, find the next one from there and give it focus. QQuickItem *next = q->scopedFocusItem()->nextItemInFocusChain(!reverse); - next->forceActiveFocus(reverse ? Qt::BacktabFocusReason : Qt::TabFocusReason); + if (next) { + next->forceActiveFocus(reverse ? Qt::BacktabFocusReason : Qt::TabFocusReason); + return true; + } + return false; } void QQuickWebEngineViewPrivate::titleChanged(const QString &title) diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index e625e0ccc615a2161d6e359460d5675b50b2c71c..aa0a765f86da1ad86f2f6bc824438d74202fed60 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -133,7 +133,7 @@ public: void didFindText(quint64, int) override; void didPrintPage(quint64 requestId, QSharedPointer<QByteArray>) override; void didPrintPageToPdf(const QString &filePath, bool success) override; - void passOnFocus(bool reverse) override; + bool passOnFocus(bool reverse) override; void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override; void authenticationRequired(QSharedPointer<QtWebEngineCore::AuthenticationDialogController>) override; void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) override; diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 696b6723f0a38dad4865768a5e60d397e242f3af..9c6749f391e278de930bcf678200e10dfacee583 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -456,10 +456,11 @@ void QWebEnginePagePrivate::didPrintPage(quint64 requestId, QSharedPointer<QByte #endif } -void QWebEnginePagePrivate::passOnFocus(bool reverse) +bool QWebEnginePagePrivate::passOnFocus(bool reverse) { if (view) - view->focusNextPrevChild(!reverse); + return view->focusNextPrevChild(!reverse); + return false; } void QWebEnginePagePrivate::authenticationRequired(QSharedPointer<AuthenticationDialogController> controller) @@ -1789,9 +1790,11 @@ void QWebEnginePagePrivate::setToolTip(const QString &toolTipText) } // Update tooltip if text was changed. - QString escapedTip = toolTipText.toHtmlEscaped().left(MaxTooltipLength); - if (view->toolTip() != escapedTip) - view->setToolTip(escapedTip); + QString wrappedTip = QLatin1String("<p style=\"white-space:pre\">") + % toolTipText.toHtmlEscaped().left(MaxTooltipLength) + % QLatin1String("</p>"); + if (view->toolTip() != wrappedTip) + view->setToolTip(wrappedTip); } void QWebEnginePagePrivate::printRequested() diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 0db462a0ae10b64664ce2a45c0c7e9793de549fa..5feefeb0e4fdbf81cad74031fa069cc52c1a24ea 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -127,7 +127,7 @@ public: void didFindText(quint64 requestId, int matchCount) override; void didPrintPage(quint64 requestId, QSharedPointer<QByteArray> result) override; void didPrintPageToPdf(const QString &filePath, bool success) override; - void passOnFocus(bool reverse) override; + bool passOnFocus(bool reverse) override; void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override; void authenticationRequired(QSharedPointer<QtWebEngineCore::AuthenticationDialogController>) override; void releaseProfile() override;