diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-04-15 14:05:08 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-04-19 23:11:09 +0000 |
commit | 7023f228b099c410081db5c697e2d69ed57558da (patch) | |
tree | 783b36e9728099e147fd248a248eaa921fd2da64 /src/core | |
parent | 1e006305a7f450d6da3e700bcf0bbe70bf8c5105 (diff) |
Switch BrowserContextAdapter to QSharedPointer
BrowserContextAdapter is not a form of shared data, and using
QExplicitSharedDataPointer on it as always been a misuse of the class.
Instead we should switch it to QSharedPointer, which also allows us to
use QWeakPointer.
Change-Id: I8eb489b4a12d3fdddcde55821be294814a156a9d
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/browser_context_adapter.cpp | 2 | ||||
-rw-r--r-- | src/core/browser_context_adapter.h | 6 | ||||
-rw-r--r-- | src/core/browser_context_qt.cpp | 2 | ||||
-rw-r--r-- | src/core/url_request_context_getter_qt.cpp | 4 | ||||
-rw-r--r-- | src/core/url_request_context_getter_qt.h | 9 | ||||
-rw-r--r-- | src/core/web_contents_adapter_client.h | 2 | ||||
-rw-r--r-- | src/core/web_contents_adapter_p.h | 4 | ||||
-rw-r--r-- | src/core/web_engine_context.cpp | 8 | ||||
-rw-r--r-- | src/core/web_engine_context.h | 6 |
9 files changed, 22 insertions, 21 deletions
diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp index 7f9363c06..cde279eac 100644 --- a/src/core/browser_context_adapter.cpp +++ b/src/core/browser_context_adapter.cpp @@ -165,7 +165,7 @@ void BrowserContextAdapter::cancelDownload(quint32 downloadId) downloadManagerDelegate()->cancelDownload(downloadId); } -BrowserContextAdapter* BrowserContextAdapter::defaultContext() +QSharedPointer<BrowserContextAdapter> BrowserContextAdapter::defaultContext() { return WebEngineContext::current()->defaultBrowserContext(); } diff --git a/src/core/browser_context_adapter.h b/src/core/browser_context_adapter.h index a388e9a0c..7ec83983f 100644 --- a/src/core/browser_context_adapter.h +++ b/src/core/browser_context_adapter.h @@ -39,10 +39,10 @@ #include "qtwebenginecoreglobal.h" +#include <QEnableSharedFromThis> #include <QList> #include <QPointer> #include <QScopedPointer> -#include <QSharedData> #include <QString> #include <QVector> @@ -60,14 +60,14 @@ class DownloadManagerDelegateQt; class UserScriptControllerHost; class WebEngineVisitedLinksManager; -class QWEBENGINE_EXPORT BrowserContextAdapter : public QSharedData +class QWEBENGINE_EXPORT BrowserContextAdapter : public QEnableSharedFromThis<BrowserContextAdapter> { public: explicit BrowserContextAdapter(bool offTheRecord = false); explicit BrowserContextAdapter(const QString &storagePrefix); virtual ~BrowserContextAdapter(); - static BrowserContextAdapter* defaultContext(); + static QSharedPointer<BrowserContextAdapter> defaultContext(); static QObject* globalQObjectRoot(); WebEngineVisitedLinksManager *visitedLinksManager(); diff --git a/src/core/browser_context_qt.cpp b/src/core/browser_context_qt.cpp index 902af8af9..740f38237 100644 --- a/src/core/browser_context_qt.cpp +++ b/src/core/browser_context_qt.cpp @@ -152,7 +152,7 @@ content::PermissionManager *BrowserContextQt::GetPermissionManager() net::URLRequestContextGetter *BrowserContextQt::CreateRequestContext(content::ProtocolHandlerMap *protocol_handlers, content::URLRequestInterceptorScopedVector request_interceptors) { - url_request_getter_ = new URLRequestContextGetterQt(m_adapter, protocol_handlers, request_interceptors.Pass()); + url_request_getter_ = new URLRequestContextGetterQt(m_adapter->sharedFromThis(), protocol_handlers, request_interceptors.Pass()); return url_request_getter_.get(); } diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp index fb4dc467e..daa07b54b 100644 --- a/src/core/url_request_context_getter_qt.cpp +++ b/src/core/url_request_context_getter_qt.cpp @@ -85,7 +85,7 @@ static const char kQrcSchemeQt[] = "qrc"; using content::BrowserThread; -URLRequestContextGetterQt::URLRequestContextGetterQt(BrowserContextAdapter *browserContext, content::ProtocolHandlerMap *protocolHandlers, content::URLRequestInterceptorScopedVector request_interceptors) +URLRequestContextGetterQt::URLRequestContextGetterQt(QSharedPointer<BrowserContextAdapter> browserContext, content::ProtocolHandlerMap *protocolHandlers, content::URLRequestInterceptorScopedVector request_interceptors) : m_ignoreCertificateErrors(false) , m_browserContext(browserContext) , m_cookieDelegate(new CookieMonsterDelegateQt()) @@ -293,7 +293,7 @@ void URLRequestContextGetterQt::generateUserAgent() Q_ASSERT(m_urlRequestContext); Q_ASSERT(m_storage); - m_storage->set_http_user_agent_settings(new HttpUserAgentSettingsQt(m_browserContext.constData())); + m_storage->set_http_user_agent_settings(new HttpUserAgentSettingsQt(m_browserContext.data())); } void URLRequestContextGetterQt::updateHttpCache() diff --git a/src/core/url_request_context_getter_qt.h b/src/core/url_request_context_getter_qt.h index 555d56784..8b0013208 100644 --- a/src/core/url_request_context_getter_qt.h +++ b/src/core/url_request_context_getter_qt.h @@ -53,8 +53,9 @@ #include "cookie_monster_delegate_qt.h" #include "network_delegate_qt.h" -#include "qglobal.h" -#include <qatomic.h> +#include <QtCore/qglobal.h> +#include <QtCore/qatomic.h> +#include <QtCore/qsharedpointer.h> namespace net { class MappedHostResolver; @@ -67,7 +68,7 @@ class BrowserContextAdapter; class URLRequestContextGetterQt : public net::URLRequestContextGetter { public: - explicit URLRequestContextGetterQt(BrowserContextAdapter *browserContext, content::ProtocolHandlerMap *protocolHandlers, content::URLRequestInterceptorScopedVector request_interceptors); + URLRequestContextGetterQt(QSharedPointer<BrowserContextAdapter> browserContext, content::ProtocolHandlerMap *protocolHandlers, content::URLRequestInterceptorScopedVector request_interceptors); virtual net::URLRequestContext *GetURLRequestContext() Q_DECL_OVERRIDE; virtual scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() const Q_DECL_OVERRIDE; @@ -94,7 +95,7 @@ private: bool m_ignoreCertificateErrors; QAtomicInt m_updateCookieStore; QAtomicInt m_updateHttpCache; - QExplicitlySharedDataPointer<BrowserContextAdapter> m_browserContext; + QSharedPointer<BrowserContextAdapter> m_browserContext; content::ProtocolHandlerMap m_protocolHandlers; QAtomicPointer<net::ProxyConfigService> m_proxyConfigService; diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index 6902a202f..f32e797a5 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -240,7 +240,7 @@ public: virtual void requestGeometryChange(const QRect &geometry) = 0; virtual void allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) = 0; - virtual BrowserContextAdapter* browserContextAdapter() = 0; + virtual QSharedPointer<BrowserContextAdapter> browserContextAdapter() = 0; }; diff --git a/src/core/web_contents_adapter_p.h b/src/core/web_contents_adapter_p.h index 22f295b32..89a18fb02 100644 --- a/src/core/web_contents_adapter_p.h +++ b/src/core/web_contents_adapter_p.h @@ -53,7 +53,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" -#include <QExplicitlySharedDataPointer> +#include <QSharedPointer> QT_FORWARD_DECLARE_CLASS(QWebChannel) @@ -73,7 +73,7 @@ public: WebContentsAdapterPrivate(); ~WebContentsAdapterPrivate(); scoped_refptr<WebEngineContext> engineContext; - QExplicitlySharedDataPointer<BrowserContextAdapter> browserContextAdapter; + QSharedPointer<BrowserContextAdapter> browserContextAdapter; scoped_ptr<content::WebContents> webContents; scoped_ptr<WebContentsDelegateQt> webContentsDelegate; scoped_ptr<RenderViewObserverHostQt> renderViewObserverHost; diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index a3b12b742..4bd29dddf 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -148,7 +148,7 @@ bool usingQtQuick2DRenderer() void WebEngineContext::destroyBrowserContext() { - m_defaultBrowserContext = 0; + m_defaultBrowserContext.reset(); } void WebEngineContext::destroy() @@ -182,11 +182,11 @@ scoped_refptr<WebEngineContext> WebEngineContext::current() return sContext; } -BrowserContextAdapter* WebEngineContext::defaultBrowserContext() +QSharedPointer<BrowserContextAdapter> WebEngineContext::defaultBrowserContext() { if (!m_defaultBrowserContext) - m_defaultBrowserContext = new BrowserContextAdapter(QStringLiteral("Default")); - return m_defaultBrowserContext.data(); + m_defaultBrowserContext = QSharedPointer<BrowserContextAdapter>::create(QStringLiteral("Default")); + return m_defaultBrowserContext; } QObject *WebEngineContext::globalQObject() diff --git a/src/core/web_engine_context.h b/src/core/web_engine_context.h index 8f034f18f..f9fae89f6 100644 --- a/src/core/web_engine_context.h +++ b/src/core/web_engine_context.h @@ -44,7 +44,7 @@ #include "base/values.h" #include "components/devtools_http_handler/devtools_http_handler.h" -#include <QExplicitlySharedDataPointer> +#include <QSharedPointer> namespace base { class RunLoop; @@ -68,7 +68,7 @@ class WebEngineContext : public base::RefCounted<WebEngineContext> { public: static scoped_refptr<WebEngineContext> current(); - QtWebEngineCore::BrowserContextAdapter *defaultBrowserContext(); + QSharedPointer<QtWebEngineCore::BrowserContextAdapter> defaultBrowserContext(); QObject *globalQObject(); void destroyBrowserContext(); @@ -84,7 +84,7 @@ private: scoped_ptr<content::ContentMainRunner> m_contentRunner; scoped_ptr<content::BrowserMainRunner> m_browserRunner; QObject* m_globalQObject; - QExplicitlySharedDataPointer<QtWebEngineCore::BrowserContextAdapter> m_defaultBrowserContext; + QSharedPointer<QtWebEngineCore::BrowserContextAdapter> m_defaultBrowserContext; scoped_ptr<devtools_http_handler::DevToolsHttpHandler> m_devtools; }; |