From a19baad6297c5ff043f531e1bf664e7039d17fe1 Mon Sep 17 00:00:00 2001
From: Pierre Rossi <pierre.rossi@digia.com>
Date: Wed, 30 Jul 2014 18:12:27 +0200
Subject: [PATCH] Do away without QWebEngineWidgets::initialize

If we consider the plugin scenario is unlikely and decide it's
unsupported for widgets, we can simplify our tests and examples
a bit on this front.

Change-Id: Idc96032c127b4ee74fb5c7b3d2cdfdf99c3a722e
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
---
 examples/webenginewidgets/browser/main.cpp                  | 2 --
 examples/webenginewidgets/fancybrowser/main.cpp             | 1 -
 src/core/content_browser_client_qt.cpp                      | 2 +-
 src/webenginewidgets/api/qtwebenginewidgetsglobal.cpp       | 5 ++++-
 src/webenginewidgets/api/qtwebenginewidgetsglobal.h         | 6 ------
 src/webenginewidgets/doc/snippets/simple/main.cpp           | 3 ---
 src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc        | 5 -----
 .../qwebengineaccessibility/tst_qwebengineaccessibility.cpp | 1 -
 tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp  | 1 -
 .../widgets/qwebenginehistory/tst_qwebenginehistory.cpp     | 1 -
 .../tst_qwebenginehistoryinterface.cpp                      | 1 -
 tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp    | 1 -
 tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp    | 1 -
 13 files changed, 5 insertions(+), 25 deletions(-)

diff --git a/examples/webenginewidgets/browser/main.cpp b/examples/webenginewidgets/browser/main.cpp
index d49a920b5..0f8d238d3 100644
--- a/examples/webenginewidgets/browser/main.cpp
+++ b/examples/webenginewidgets/browser/main.cpp
@@ -50,8 +50,6 @@ int main(int argc, char **argv)
     if (!application.isTheOnlyBrowser())
         return 0;
 
-    QWebEngineWidgets::initialize();
-
     application.newMainWindow();
     return application.exec();
 }
diff --git a/examples/webenginewidgets/fancybrowser/main.cpp b/examples/webenginewidgets/fancybrowser/main.cpp
index c18b98d9d..e463151e9 100644
--- a/examples/webenginewidgets/fancybrowser/main.cpp
+++ b/examples/webenginewidgets/fancybrowser/main.cpp
@@ -45,7 +45,6 @@
 int main(int argc, char * argv[])
 {
     QApplication app(argc, argv);
-    QWebEngineWidgets::initialize();
 
     QUrl url;
     if (argc > 1)
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 641d05011..347636fe5 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -263,7 +263,7 @@ void ShareGroupQtQuick::AboutToAddFirstContext()
     // This currently has to be setup by ::main in all applications using QQuickWebEngineView with delegated rendering.
     QOpenGLContext *shareContext = QOpenGLContextPrivate::globalShareContext();
     if (!shareContext) {
-        qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QWebEngine::initialize() or QWebEngineWidgets::initialize() in your main() function.");
+        qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QWebEngine::initialize() in your main() function.");
     }
     m_shareContextQtQuick = make_scoped_refptr(new QtShareGLContext(shareContext));
 }
diff --git a/src/webenginewidgets/api/qtwebenginewidgetsglobal.cpp b/src/webenginewidgets/api/qtwebenginewidgetsglobal.cpp
index f3792248e..cffdb74bc 100644
--- a/src/webenginewidgets/api/qtwebenginewidgetsglobal.cpp
+++ b/src/webenginewidgets/api/qtwebenginewidgetsglobal.cpp
@@ -42,8 +42,11 @@
 #include "qtwebenginewidgetsglobal.h"
 
 #include "qtwebengineglobal.h"
+#include <QCoreApplication>
 
-void QWebEngineWidgets::initialize()
+static void initialize()
 {
     QWebEngine::initialize();
 }
+
+Q_COREAPP_STARTUP_FUNCTION(initialize)
diff --git a/src/webenginewidgets/api/qtwebenginewidgetsglobal.h b/src/webenginewidgets/api/qtwebenginewidgetsglobal.h
index 1836de357..d875c1cbe 100644
--- a/src/webenginewidgets/api/qtwebenginewidgetsglobal.h
+++ b/src/webenginewidgets/api/qtwebenginewidgetsglobal.h
@@ -55,12 +55,6 @@ QT_BEGIN_NAMESPACE
 #  define QWEBENGINEWIDGETS_EXPORT
 #endif
 
-class QWEBENGINEWIDGETS_EXPORT QWebEngineWidgets
-{
-public:
-    static void initialize();
-};
-
 QT_END_NAMESPACE
 
 #endif // QTWEBENGINEWIDGETSGLOBAL_H
diff --git a/src/webenginewidgets/doc/snippets/simple/main.cpp b/src/webenginewidgets/doc/snippets/simple/main.cpp
index d33f14628..bebdeff11 100644
--- a/src/webenginewidgets/doc/snippets/simple/main.cpp
+++ b/src/webenginewidgets/doc/snippets/simple/main.cpp
@@ -25,9 +25,6 @@ int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QWidget *parent = 0;
-//! [Initializing QWebEngineWidgets]
-    QWebEngineWidgets::initialize();
-//! [Initializing QWebEngineWidgets]
 //! [Using QWebEngineView]
     QWebEngineView *view = new QWebEngineView(parent);
     view->load(QUrl("http://qt-project.org/"));
diff --git a/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc b/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc
index fe43ca5c4..fa3954fb4 100644
--- a/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc
+++ b/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc
@@ -85,11 +85,6 @@
 
     \section1 Architecture
 
-    Before an application can use the Qt WebEngine Widgets classes, it must call
-    the static initialization method for the module.
-
-    \snippet snippets/simple/main.cpp Initializing QWebEngineWidgets
-
     The easiest way to render content is through the QWebEngineView class. As a
     widget it can be embedded into your forms or a graphics view, and it
     provides convenience functions for downloading and rendering web sites.
diff --git a/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp b/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp
index d0c4fd527..bb1bd94ad 100644
--- a/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp
+++ b/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp
@@ -46,7 +46,6 @@ private Q_SLOTS:
 // It is only called once.
 void tst_QWebEngineView::initTestCase()
 {
-    QWebEngineWidgets::initialize();
 }
 
 // This will be called after the last test function is executed.
diff --git a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
index 1fc4aaea5..1e979b3c5 100644
--- a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
+++ b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
@@ -118,7 +118,6 @@ bool tst_QWebEngineFrame::eventFilter(QObject* watched, QEvent* event)
 
 void tst_QWebEngineFrame::initTestCase()
 {
-    QWebEngineWidgets::initialize();
 }
 
 void tst_QWebEngineFrame::init()
diff --git a/tests/auto/widgets/qwebenginehistory/tst_qwebenginehistory.cpp b/tests/auto/widgets/qwebenginehistory/tst_qwebenginehistory.cpp
index 07427774a..a329b7307 100644
--- a/tests/auto/widgets/qwebenginehistory/tst_qwebenginehistory.cpp
+++ b/tests/auto/widgets/qwebenginehistory/tst_qwebenginehistory.cpp
@@ -89,7 +89,6 @@ tst_QWebEngineHistory::~tst_QWebEngineHistory()
 
 void tst_QWebEngineHistory::initTestCase()
 {
-    QWebEngineWidgets::initialize();
 }
 
 void tst_QWebEngineHistory::init()
diff --git a/tests/auto/widgets/qwebenginehistoryinterface/tst_qwebenginehistoryinterface.cpp b/tests/auto/widgets/qwebenginehistoryinterface/tst_qwebenginehistoryinterface.cpp
index 93714255b..4666d1ba4 100644
--- a/tests/auto/widgets/qwebenginehistoryinterface/tst_qwebenginehistoryinterface.cpp
+++ b/tests/auto/widgets/qwebenginehistoryinterface/tst_qwebenginehistoryinterface.cpp
@@ -61,7 +61,6 @@ tst_QWebEngineHistoryInterface::~tst_QWebEngineHistoryInterface()
 
 void tst_QWebEngineHistoryInterface::initTestCase()
 {
-    QWebEngineWidgets::initialize();
 }
 
 void tst_QWebEngineHistoryInterface::init()
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index ac71e9246..ca3740715 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -229,7 +229,6 @@ void tst_QWebEnginePage::cleanupFiles()
 
 void tst_QWebEnginePage::initTestCase()
 {
-    QWebEngineWidgets::initialize();
     cleanupFiles(); // In case there are old files from previous runs
 }
 
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
index f105fe8c8..3893397cd 100644
--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
+++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
@@ -63,7 +63,6 @@ private Q_SLOTS:
 // It is only called once.
 void tst_QWebEngineView::initTestCase()
 {
-    QWebEngineWidgets::initialize();
 }
 
 // This will be called after the last test function is executed.
-- 
GitLab