summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-03-27 18:17:09 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-03-28 13:54:49 +0100
commit01dce2df9868fd7ede0fcc7b253f57d1e3d4a101 (patch)
tree689d6d2dfe262c050f58538d6e63516f676dbd0d /src/core
parentc68c8cb21b47024bbc6c9d15734677318f56ca3f (diff)
parentdad0cfa3eba01b0dff698f457242f80f6eae4698 (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: .qmake.conf src/3rdparty src/core/render_widget_host_view_qt.cpp src/core/web_contents_view_qt.h src/core/web_engine_context.cpp Change-Id: I17f3a4814e88a5680dc61a6d734c171ccba00e8c
Diffstat (limited to 'src/core')
-rw-r--r--src/core/common/qt_messages.h3
-rw-r--r--src/core/config/common.pri7
-rw-r--r--src/core/config/linux.pri1
-rw-r--r--src/core/config/windows.pri3
-rw-r--r--src/core/render_widget_host_view_qt.cpp6
-rw-r--r--src/core/renderer/render_view_observer_qt.cpp6
-rw-r--r--src/core/renderer/render_view_observer_qt.h1
-rw-r--r--src/core/web_contents_adapter_client.h2
-rw-r--r--src/core/web_contents_delegate_qt.cpp6
-rw-r--r--src/core/web_contents_delegate_qt.h1
-rw-r--r--src/core/web_contents_view_qt.cpp40
-rw-r--r--src/core/web_contents_view_qt.h19
12 files changed, 70 insertions, 25 deletions
diff --git a/src/core/common/qt_messages.h b/src/core/common/qt_messages.h
index 1862ff29f..9add826ae 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 56e6d547a..6f3ce75b3 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 d04aea140..3eb436910 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 3b42a0b9a..9eb15830d 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 39ec14382..414fc6582 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 07dadfd40..2795de4b9 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 83c0cd265..abb472f02 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 cdfcae450..beb41e17f 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 adc05253d..021044a71 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 ee1bca81f..1629222c2 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 7177a8713..ef7c09665 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 7cd3910f2..ec09f9aae 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 &params) 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;