/**************************************************************************** ** ** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWebView module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:COMM$ ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** $QT_END_LICENSE$ ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ****************************************************************************/ #include "qdarwinwebview_p.h" #include #include QT_BEGIN_NAMESPACE class QDarwinWebViewPlugin : public QWebViewPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID QWebViewPluginInterface_iid FILE "darwin.json") public: QAbstractWebView *create(const QString &key) const override { return (key == QLatin1String("webview")) ? new QDarwinWebViewPrivate() : nullptr; } void prepare() const override { #ifdef Q_OS_MACOS // On macOS, correct WebView / QtQuick compositing and stacking requires running // Qt in layer-backed mode, which again resuires rendering on the Gui thread. qWarning("Setting QT_MAC_WANTS_LAYER=1 and QSG_RENDER_LOOP=basic"); qputenv("QT_MAC_WANTS_LAYER", "1"); qputenv("QSG_RENDER_LOOP", "basic"); #endif // Q_OS_MACOS } }; QT_END_NAMESPACE #include "qdarwinwebviewplugin.moc"