summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/quick/qquickwebengineview.cpp2
-rw-r--r--lib/quick/qquickwebengineview_p_p.h2
-rw-r--r--lib/render_widget_host_view_qt_delegate.cpp7
-rw-r--r--lib/render_widget_host_view_qt_delegate.h2
-rw-r--r--lib/web_contents_adapter_client.h7
-rw-r--r--lib/web_contents_view_qt.cpp8
-rw-r--r--lib/widgets/Api/qwebenginepage.cpp4
-rw-r--r--lib/widgets/Api/qwebenginepage_p.h2
-rw-r--r--lib/widgets/render_widget_host_view_qt_delegate_widget.cpp4
-rw-r--r--lib/widgets/render_widget_host_view_qt_delegate_widget.h3
10 files changed, 22 insertions, 19 deletions
diff --git a/lib/quick/qquickwebengineview.cpp b/lib/quick/qquickwebengineview.cpp
index ee01e15f9..3856cbb8e 100644
--- a/lib/quick/qquickwebengineview.cpp
+++ b/lib/quick/qquickwebengineview.cpp
@@ -55,7 +55,7 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
adapter->initialize(this);
}
-RenderWidgetHostViewQtDelegate *QQuickWebEngineViewPrivate::CreateRenderWidgetHostViewQtDelegate()
+RenderWidgetHostViewQtDelegate *QQuickWebEngineViewPrivate::CreateRenderWidgetHostViewQtDelegate(CompositingMode)
{
return new RenderWidgetHostViewQtDelegateQuick;
}
diff --git a/lib/quick/qquickwebengineview_p_p.h b/lib/quick/qquickwebengineview_p_p.h
index 50e84d194..7ea45f2fe 100644
--- a/lib/quick/qquickwebengineview_p_p.h
+++ b/lib/quick/qquickwebengineview_p_p.h
@@ -59,7 +59,7 @@ class QQuickWebEngineViewPrivate : public QQuickItemPrivate, public WebContentsA
public:
QQuickWebEngineViewPrivate();
- virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate() Q_DECL_OVERRIDE;
+ virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate(CompositingMode mode) Q_DECL_OVERRIDE;
virtual void titleChanged(const QString&) Q_DECL_OVERRIDE;
virtual void urlChanged(const QUrl&) Q_DECL_OVERRIDE;
virtual void loadingStateChanged() Q_DECL_OVERRIDE;
diff --git a/lib/render_widget_host_view_qt_delegate.cpp b/lib/render_widget_host_view_qt_delegate.cpp
index 5b6f25fce..0a3a5106f 100644
--- a/lib/render_widget_host_view_qt_delegate.cpp
+++ b/lib/render_widget_host_view_qt_delegate.cpp
@@ -44,16 +44,9 @@
#include "backing_store_qt.h"
#include "render_widget_host_view_qt.h"
-#include "base/command_line.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
-#include "content/public/common/content_switches.h"
#include <QPainter>
-bool RenderWidgetHostViewQtDelegate::isCompositingModeForced()
-{
- return CommandLine::ForCurrentProcess()->HasSwitch(switches::kForceCompositingMode);
-}
-
RenderWidgetHostViewQtDelegate::RenderWidgetHostViewQtDelegate()
: m_view(0), m_backingStore(0)
{
diff --git a/lib/render_widget_host_view_qt_delegate.h b/lib/render_widget_host_view_qt_delegate.h
index efcff1fc2..c73aa9aec 100644
--- a/lib/render_widget_host_view_qt_delegate.h
+++ b/lib/render_widget_host_view_qt_delegate.h
@@ -78,8 +78,6 @@ public:
virtual void resize(int width, int height) = 0;
protected:
- static bool isCompositingModeForced();
-
RenderWidgetHostViewQtDelegate();
void paint(QPainter*, const QRectF& boundingRect);
void fetchBackingStore();
diff --git a/lib/web_contents_adapter_client.h b/lib/web_contents_adapter_client.h
index e17929025..b0ab502c8 100644
--- a/lib/web_contents_adapter_client.h
+++ b/lib/web_contents_adapter_client.h
@@ -55,6 +55,11 @@ class WebContentsDelegateQt;
class QWEBENGINE_EXPORT WebContentsAdapterClient {
public:
+ enum CompositingMode {
+ NoCompositing,
+ ForcedGpuProcessCompositing
+ };
+
// This must match window_open_disposition_list.h.
enum WindowOpenDisposition {
UnknownDisposition = 0,
@@ -72,7 +77,7 @@ public:
virtual ~WebContentsAdapterClient() { }
- virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate() = 0;
+ virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate(CompositingMode mode) = 0;
virtual void titleChanged(const QString&) = 0;
virtual void urlChanged(const QUrl&) = 0;
virtual void loadingStateChanged() = 0;
diff --git a/lib/web_contents_view_qt.cpp b/lib/web_contents_view_qt.cpp
index b74b7325a..340075c9a 100644
--- a/lib/web_contents_view_qt.cpp
+++ b/lib/web_contents_view_qt.cpp
@@ -45,7 +45,9 @@
#include "content_browser_client_qt.h"
#include "render_widget_host_view_qt_delegate.h"
+#include "base/command_line.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
+#include "content/public/common/content_switches.h"
void WebContentsViewQt::initialize(WebContentsAdapterClient* client)
{
@@ -60,8 +62,12 @@ content::RenderWidgetHostView* WebContentsViewQt::CreateViewForWidget(content::R
{
RenderWidgetHostViewQt *view = new RenderWidgetHostViewQt(render_widget_host);
+ WebContentsAdapterClient::CompositingMode compositingMode = WebContentsAdapterClient::NoCompositing;
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kForceCompositingMode))
+ compositingMode = WebContentsAdapterClient::ForcedGpuProcessCompositing;
+
Q_ASSERT(m_factoryClient);
- RenderWidgetHostViewQtDelegate* viewDelegate = m_factoryClient->CreateRenderWidgetHostViewQtDelegate();
+ RenderWidgetHostViewQtDelegate* viewDelegate = m_factoryClient->CreateRenderWidgetHostViewQtDelegate(compositingMode);
view->setDelegate(viewDelegate);
if (m_client)
view->setAdapterClient(m_client);
diff --git a/lib/widgets/Api/qwebenginepage.cpp b/lib/widgets/Api/qwebenginepage.cpp
index cfcae35c4..365101e99 100644
--- a/lib/widgets/Api/qwebenginepage.cpp
+++ b/lib/widgets/Api/qwebenginepage.cpp
@@ -52,9 +52,9 @@ QWebEnginePagePrivate::~QWebEnginePagePrivate()
delete history;
}
-RenderWidgetHostViewQtDelegate *QWebEnginePagePrivate::CreateRenderWidgetHostViewQtDelegate()
+RenderWidgetHostViewQtDelegate *QWebEnginePagePrivate::CreateRenderWidgetHostViewQtDelegate(CompositingMode mode)
{
- return new RenderWidgetHostViewQtDelegateWidget;
+ return new RenderWidgetHostViewQtDelegateWidget(mode);
}
void QWebEnginePagePrivate::titleChanged(const QString &title)
diff --git a/lib/widgets/Api/qwebenginepage_p.h b/lib/widgets/Api/qwebenginepage_p.h
index 6ef22531a..22066b5bc 100644
--- a/lib/widgets/Api/qwebenginepage_p.h
+++ b/lib/widgets/Api/qwebenginepage_p.h
@@ -64,7 +64,7 @@ public:
QWebEnginePagePrivate();
~QWebEnginePagePrivate();
- virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate() Q_DECL_OVERRIDE;
+ virtual RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate(CompositingMode mode) Q_DECL_OVERRIDE;
virtual void titleChanged(const QString&) Q_DECL_OVERRIDE;
virtual void urlChanged(const QUrl&) Q_DECL_OVERRIDE;
virtual void loadingStateChanged() Q_DECL_OVERRIDE;
diff --git a/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp b/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp
index 1c7af34d8..5d0a7960b 100644
--- a/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp
+++ b/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp
@@ -50,7 +50,7 @@
#include <QPaintEvent>
#include <QWindow>
-RenderWidgetHostViewQtDelegateWidget::RenderWidgetHostViewQtDelegateWidget(QWidget *parent)
+RenderWidgetHostViewQtDelegateWidget::RenderWidgetHostViewQtDelegateWidget(WebContentsAdapterClient::CompositingMode mode, QWidget *parent)
: QWidget(parent)
{
setFocusPolicy(Qt::ClickFocus);
@@ -62,7 +62,7 @@ RenderWidgetHostViewQtDelegateWidget::RenderWidgetHostViewQtDelegateWidget(QWidg
// FOR TESTING ONLY, use at your own risks.
// Supporting this properly on all platforms would require duplicating
// many tricks done by RenderWidgetHostView[Win|Mac].
- if (isCompositingModeForced()) {
+ if (mode == WebContentsAdapterClient::ForcedGpuProcessCompositing) {
// This sets Qt::WA_NativeWindow and force a native window creation
// that we can give to the GPU process for it to render directly
// on through windowHandle().
diff --git a/lib/widgets/render_widget_host_view_qt_delegate_widget.h b/lib/widgets/render_widget_host_view_qt_delegate_widget.h
index ac3daeb05..264f8f4af 100644
--- a/lib/widgets/render_widget_host_view_qt_delegate_widget.h
+++ b/lib/widgets/render_widget_host_view_qt_delegate_widget.h
@@ -43,6 +43,7 @@
#define RENDER_WIDGET_HOST_VIEW_QT_DELEGATE_WIDGET_H
#include "render_widget_host_view_qt_delegate.h"
+#include "web_contents_adapter_client.h"
#include <QWidget>
@@ -55,7 +56,7 @@ QT_END_NAMESPACE
class RenderWidgetHostViewQtDelegateWidget : public QWidget, public RenderWidgetHostViewQtDelegate
{
public:
- RenderWidgetHostViewQtDelegateWidget(QWidget *parent = 0);
+ RenderWidgetHostViewQtDelegateWidget(WebContentsAdapterClient::CompositingMode mode, QWidget *parent = 0);
virtual void initAsChild(WebContentsAdapterClient* container);
virtual QRectF screenRect() const;