summaryrefslogtreecommitdiffstats
path: root/src/core/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/api')
-rw-r--r--src/core/api/qwebenginecallback.h7
-rw-r--r--src/core/api/qwebenginecallback_p.h6
-rw-r--r--src/core/api/qwebenginecookiestoreclient.cpp4
-rw-r--r--src/core/api/qwebenginecookiestoreclient.h2
-rw-r--r--src/core/api/qwebenginecookiestoreclient_p.h11
-rw-r--r--src/core/api/qwebengineurlschemehandler.cpp1
-rw-r--r--src/core/api/qwebengineurlschemehandler.h3
7 files changed, 22 insertions, 12 deletions
diff --git a/src/core/api/qwebenginecallback.h b/src/core/api/qwebenginecallback.h
index ddee20d06..b675438f5 100644
--- a/src/core/api/qwebenginecallback.h
+++ b/src/core/api/qwebenginecallback.h
@@ -81,12 +81,19 @@ public:
: d(new QtWebEnginePrivate::QWebEngineCallbackPrivate<T, F>(f))
{ }
QWebEngineCallback() { }
+ void swap(QWebEngineCallback &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
operator bool() const { return d; }
private:
friend class QtWebEngineCore::CallbackDirectory;
QExplicitlySharedDataPointer<QtWebEnginePrivate::QWebEngineCallbackPrivateBase<T> > d;
};
+Q_DECLARE_SHARED(QWebEngineCallback<int>)
+Q_DECLARE_SHARED(QWebEngineCallback<const QByteArray &>)
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QWebEngineCallback<bool>)
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QWebEngineCallback<const QString &>)
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QWebEngineCallback<const QVariant &>)
+
QT_END_NAMESPACE
#endif // QWEBENGINECALLBACK_H
diff --git a/src/core/api/qwebenginecallback_p.h b/src/core/api/qwebenginecallback_p.h
index f0c25fe9e..9bc9b9727 100644
--- a/src/core/api/qwebenginecallback_p.h
+++ b/src/core/api/qwebenginecallback_p.h
@@ -47,6 +47,7 @@
#include <QVariant>
#include <type_traits>
+// keep in sync with Q_DECLARE_SHARED... in qwebenginecallback.h
#define FOR_EACH_TYPE(F) \
F(bool) \
F(int) \
@@ -227,6 +228,11 @@ void CallbackDirectory::CallbackSharedDataPointer<T>::invokeEmpty()
parent->invokeEmptyInternal(callback);
}
+#define CHECK_RELOCATABLE(x) \
+ Q_STATIC_ASSERT((QTypeInfoQuery<QWebEngineCallback< x > >::isRelocatable));
+FOR_EACH_TYPE(CHECK_RELOCATABLE)
+#undef CHECK_RELOCATABLE
+
} // namespace QtWebEngineCore
#endif // QWEBENGINECALLBACK_P_H
diff --git a/src/core/api/qwebenginecookiestoreclient.cpp b/src/core/api/qwebenginecookiestoreclient.cpp
index 167b3f68c..bd43b871d 100644
--- a/src/core/api/qwebenginecookiestoreclient.cpp
+++ b/src/core/api/qwebenginecookiestoreclient.cpp
@@ -181,7 +181,7 @@ bool QWebEngineCookieStoreClientPrivate::canSetCookie(const QUrl &firstPartyUrl,
request.firstPartyUrl = firstPartyUrl;
request.cookieLine = cookieLine;
request.cookieSource = url;
- callbackDirectory.invokeDirectly<const QWebEngineCookieStoreClient::FilterRequest&>(filterCallback, request);
+ callbackDirectory.invokeDirectly<QWebEngineCookieStoreClient::FilterRequest&>(filterCallback, request);
return request.accepted;
}
return true;
@@ -394,7 +394,7 @@ void QWebEngineCookieStoreClient::deleteAllCookies()
\sa deleteAllCookiesWithCallback(), getAllCookies()
*/
-void QWebEngineCookieStoreClient::setCookieFilter(const QWebEngineCallback<const QWebEngineCookieStoreClient::FilterRequest&> &filter)
+void QWebEngineCookieStoreClient::setCookieFilter(const QWebEngineCallback<QWebEngineCookieStoreClient::FilterRequest&> &filter)
{
Q_D(QWebEngineCookieStoreClient);
d->filterCallback = filter;
diff --git a/src/core/api/qwebenginecookiestoreclient.h b/src/core/api/qwebenginecookiestoreclient.h
index 8bdb988e2..4664a8459 100644
--- a/src/core/api/qwebenginecookiestoreclient.h
+++ b/src/core/api/qwebenginecookiestoreclient.h
@@ -77,7 +77,7 @@ public:
void deleteSessionCookiesWithCallback(const QWebEngineCallback<int> &resultCallback);
void deleteAllCookiesWithCallback(const QWebEngineCallback<int> &resultCallback);
void getAllCookies(const QWebEngineCallback<const QByteArray&> &resultCallback);
- void setCookieFilter(const QWebEngineCallback<const FilterRequest&> &filterCallback);
+ void setCookieFilter(const QWebEngineCallback<FilterRequest&> &filterCallback);
#endif
void setCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl());
void deleteCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl());
diff --git a/src/core/api/qwebenginecookiestoreclient_p.h b/src/core/api/qwebenginecookiestoreclient_p.h
index 43652fba6..54f3b9eb7 100644
--- a/src/core/api/qwebenginecookiestoreclient_p.h
+++ b/src/core/api/qwebenginecookiestoreclient_p.h
@@ -53,8 +53,7 @@
#include "qwebenginecallback_p.h"
#include "qwebenginecookiestoreclient.h"
-#include <QList>
-#include <QMap>
+#include <QVector>
#include <QNetworkCookie>
#include <QUrl>
@@ -70,12 +69,12 @@ class QWEBENGINE_PRIVATE_EXPORT QWebEngineCookieStoreClientPrivate {
QNetworkCookie cookie;
QUrl origin;
};
-
+ friend class QTypeInfo<CookieData>;
public:
Q_DECLARE_PUBLIC(QWebEngineCookieStoreClient)
QtWebEngineCore::CallbackDirectory callbackDirectory;
- QWebEngineCallback<const QWebEngineCookieStoreClient::FilterRequest&> filterCallback;
- QList<CookieData> m_pendingUserCookies;
+ QWebEngineCallback<QWebEngineCookieStoreClient::FilterRequest&> filterCallback;
+ QVector<CookieData> m_pendingUserCookies;
quint64 m_nextCallbackId;
bool m_deleteSessionCookiesPending;
bool m_deleteAllCookiesPending;
@@ -102,6 +101,8 @@ public:
void onCookieChanged(const QNetworkCookie &cookie, bool removed);
};
+Q_DECLARE_TYPEINFO(QWebEngineCookieStoreClientPrivate::CookieData, Q_MOVABLE_TYPE);
+
QT_END_NAMESPACE
#endif // QWEBENGINECOOKIESTORECLIENT_P_H
diff --git a/src/core/api/qwebengineurlschemehandler.cpp b/src/core/api/qwebengineurlschemehandler.cpp
index f887e4e98..7f9ebaf48 100644
--- a/src/core/api/qwebengineurlschemehandler.cpp
+++ b/src/core/api/qwebengineurlschemehandler.cpp
@@ -75,7 +75,6 @@ QWebEngineUrlSchemeHandler::QWebEngineUrlSchemeHandler(QObject *parent)
QWebEngineUrlSchemeHandler::~QWebEngineUrlSchemeHandler()
{
Q_EMIT destroyed(this);
- delete d_ptr;
}
/*!
diff --git a/src/core/api/qwebengineurlschemehandler.h b/src/core/api/qwebengineurlschemehandler.h
index 8c1e52646..66aebe00d 100644
--- a/src/core/api/qwebengineurlschemehandler.h
+++ b/src/core/api/qwebengineurlschemehandler.h
@@ -48,7 +48,6 @@ class URLRequestContextGetterQt;
QT_BEGIN_NAMESPACE
class QWebEngineUrlRequestJob;
-class QWebEngineUrlSchemeHandlerPrivate;
class QWEBENGINE_EXPORT QWebEngineUrlSchemeHandler : public QObject {
Q_OBJECT
@@ -63,8 +62,6 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QWebEngineUrlSchemeHandler)
- Q_DECLARE_PRIVATE(QWebEngineUrlSchemeHandler)
- QWebEngineUrlSchemeHandlerPrivate *d_ptr;
};
QT_END_NAMESPACE