summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2018-01-15 17:30:50 +0100
committerJüri Valdmann <juri.valdmann@qt.io>2018-02-13 08:17:53 +0000
commit6a6fd71af52bcbffc4fccf58e1f35b7612d16a2a (patch)
tree33a1f8c5da9e8067cae50d103d85d6b6ddee160a
parent60f2cfe39ab2822bcc3b86453d8b05cc76d56961 (diff)
QuotaPermissionController: Use implementation subclass
Try to separate quota-unrelated bookkeeping from quota-specific glue code. Task-number: QTBUG-62783 Change-Id: I0c7c3fd554a4b3a195a99ff4034f158f2547eecb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--src/core/core_chromium.pri4
-rw-r--r--src/core/quota_permission_context_qt.cpp7
-rw-r--r--src/core/quota_permission_controller.h39
-rw-r--r--src/core/quota_permission_controller_impl.cpp (renamed from src/core/quota_permission_controller.cpp)61
-rw-r--r--src/core/quota_permission_controller_impl.h (renamed from src/core/quota_permission_controller_p.h)26
5 files changed, 61 insertions, 76 deletions
diff --git a/src/core/core_chromium.pri b/src/core/core_chromium.pri
index 08552800d..c81b661a6 100644
--- a/src/core/core_chromium.pri
+++ b/src/core/core_chromium.pri
@@ -78,7 +78,7 @@ SOURCES = \
proxy_config_service_qt.cpp \
qrc_protocol_handler_qt.cpp \
quota_permission_context_qt.cpp \
- quota_permission_controller.cpp \
+ quota_permission_controller_impl.cpp \
render_view_context_menu_qt.cpp \
render_view_observer_host_qt.cpp \
render_widget_host_view_qt.cpp \
@@ -161,7 +161,7 @@ HEADERS = \
qrc_protocol_handler_qt.h \
quota_permission_context_qt.h \
quota_permission_controller.h \
- quota_permission_controller_p.h \
+ quota_permission_controller_impl.h \
render_view_context_menu_qt.h \
render_view_observer_host_qt.h \
render_widget_host_view_qt.h \
diff --git a/src/core/quota_permission_context_qt.cpp b/src/core/quota_permission_context_qt.cpp
index 10249bbf0..bb59512c0 100644
--- a/src/core/quota_permission_context_qt.cpp
+++ b/src/core/quota_permission_context_qt.cpp
@@ -42,8 +42,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
-#include "quota_permission_controller.h"
-#include "quota_permission_controller_p.h"
+#include "quota_permission_controller_impl.h"
#include "web_contents_delegate_qt.h"
#include "web_contents_view_qt.h"
@@ -83,8 +82,8 @@ void QuotaPermissionContextQt::RequestQuotaPermission(const StorageQuotaParams &
if (!client)
return;
- QSharedPointer<QuotaPermissionController> controller(new QuotaPermissionController(new QuotaPermissionControllerPrivate(this, params, callback)));
- client->runQuotaPermissionRequest(controller);
+ QSharedPointer<QuotaPermissionController> request(new QuotaPermissionControllerImpl(this, params, callback));
+ client->runQuotaPermissionRequest(request);
}
void QuotaPermissionContextQt::dispatchCallbackOnIOThread(const PermissionCallback &callback,
diff --git a/src/core/quota_permission_controller.h b/src/core/quota_permission_controller.h
index e584d7b52..cdd5e226a 100644
--- a/src/core/quota_permission_controller.h
+++ b/src/core/quota_permission_controller.h
@@ -41,28 +41,45 @@
#define QUOTA_PERMISSION_CONTROLLER_H
#include "qtwebenginecoreglobal.h"
-#include <QtCore/qscopedpointer.h>
#include <QtCore/qurl.h>
namespace QtWebEngineCore {
-class QuotaPermissionContextQt;
-class QuotaPermissionControllerPrivate;
-
class QWEBENGINE_EXPORT QuotaPermissionController {
public:
- QuotaPermissionController(QuotaPermissionControllerPrivate *controllerPrivate);
- ~QuotaPermissionController();
+ QuotaPermissionController(QUrl origin, qint64 requestedSize)
+ : m_answered(false)
+ , m_origin(std::move(origin))
+ , m_requestedSize(requestedSize)
+ {}
+
+ QUrl origin() const { return m_origin; }
+ qint64 requestedSize() const { return m_requestedSize; }
+
+ void accept() {
+ if (!m_answered) {
+ m_answered = true;
+ accepted();
+ }
+ }
+
+ void reject() {
+ if (!m_answered) {
+ m_answered = true;
+ rejected();
+ }
+ }
- void accept();
- void reject();
+ virtual ~QuotaPermissionController() {}
- QUrl origin();
- qint64 requestedSize();
+protected:
+ virtual void accepted() = 0;
+ virtual void rejected() = 0;
private:
- QScopedPointer<QuotaPermissionControllerPrivate> d;
bool m_answered;
+ QUrl m_origin;
+ qint64 m_requestedSize;
};
} // namespace QtWebEngineCore
diff --git a/src/core/quota_permission_controller.cpp b/src/core/quota_permission_controller_impl.cpp
index b874c0449..ebad4b2fb 100644
--- a/src/core/quota_permission_controller.cpp
+++ b/src/core/quota_permission_controller_impl.cpp
@@ -37,62 +37,31 @@
**
****************************************************************************/
-#include "quota_permission_controller.h"
-#include "quota_permission_controller_p.h"
+#include "quota_permission_controller_impl.h"
-#include "quota_permission_context_qt.h"
#include "type_conversion.h"
namespace QtWebEngineCore {
-QuotaPermissionControllerPrivate::QuotaPermissionControllerPrivate(QuotaPermissionContextQt *context,
- const content::StorageQuotaParams &params,
- const content::QuotaPermissionContext::PermissionCallback &callback)
- : m_context(context),
- m_originUrl(toQt(params.origin_url)),
- m_requestedSize(params.requested_size),
- m_callback(callback)
-{
-}
-
-QuotaPermissionControllerPrivate::~QuotaPermissionControllerPrivate()
-{
-}
-
-QuotaPermissionController::QuotaPermissionController(QuotaPermissionControllerPrivate *controllerPrivate)
- : d(controllerPrivate)
- , m_answered(false)
-{
-}
-
-QuotaPermissionController::~QuotaPermissionController()
-{
-}
-
-void QuotaPermissionController::accept()
-{
- if (!m_answered) {
- d->m_context->dispatchCallbackOnIOThread(d->m_callback, QuotaPermissionContextQt::QUOTA_PERMISSION_RESPONSE_ALLOW);
- m_answered = true;
- }
-}
-
-void QuotaPermissionController::reject()
-{
- if (!m_answered) {
- d->m_context->dispatchCallbackOnIOThread(d->m_callback, QuotaPermissionContextQt::QUOTA_PERMISSION_RESPONSE_DISALLOW);
- m_answered = true;
- }
-}
+QuotaPermissionControllerImpl::QuotaPermissionControllerImpl(
+ QuotaPermissionContextQt *context,
+ const content::StorageQuotaParams &params,
+ const content::QuotaPermissionContext::PermissionCallback &callback)
+ : QuotaPermissionController(
+ toQt(params.origin_url),
+ params.requested_size)
+ , m_context(context)
+ , m_callback(callback)
+{}
-QUrl QuotaPermissionController::origin()
+void QuotaPermissionControllerImpl::accepted()
{
- return d->m_originUrl;
+ m_context->dispatchCallbackOnIOThread(m_callback, QuotaPermissionContextQt::QUOTA_PERMISSION_RESPONSE_ALLOW);
}
-qint64 QuotaPermissionController::requestedSize()
+void QuotaPermissionControllerImpl::rejected()
{
- return d->m_requestedSize;
+ m_context->dispatchCallbackOnIOThread(m_callback, QuotaPermissionContextQt::QUOTA_PERMISSION_RESPONSE_DISALLOW);
}
} // namespace QtWebEngineCore
diff --git a/src/core/quota_permission_controller_p.h b/src/core/quota_permission_controller_impl.h
index c00ae42c9..297c6711b 100644
--- a/src/core/quota_permission_controller_p.h
+++ b/src/core/quota_permission_controller_impl.h
@@ -37,30 +37,30 @@
**
****************************************************************************/
-#ifndef QUOTA_PERMISSION_CONTROLLER_P_H
-#define QUOTA_PERMISSION_CONTROLLER_P_H
+#ifndef QUOTA_PERMISSION_CONTROLLER_IMPL_H
+#define QUOTA_PERMISSION_CONTROLLER_IMPL_H
+#include "quota_permission_controller.h"
#include "quota_permission_context_qt.h"
-#include <QtCore/qurl.h>
namespace QtWebEngineCore {
-class QuotaPermissionControllerPrivate {
+class QuotaPermissionControllerImpl final : public QuotaPermissionController {
public:
- QuotaPermissionControllerPrivate(QuotaPermissionContextQt *context,
- const content::StorageQuotaParams &params,
- const content::QuotaPermissionContext::PermissionCallback &callback);
- ~QuotaPermissionControllerPrivate();
+ QuotaPermissionControllerImpl(
+ QuotaPermissionContextQt *context,
+ const content::StorageQuotaParams &params,
+ const content::QuotaPermissionContext::PermissionCallback &callback);
+
+protected:
+ void accepted() override;
+ void rejected() override;
private:
scoped_refptr<QuotaPermissionContextQt> m_context;
- QUrl m_originUrl;
- qint64 m_requestedSize;
content::QuotaPermissionContext::PermissionCallback m_callback;
-
- friend class QuotaPermissionController;
};
} // namespace QtWebEngineCore
-#endif // QUOTA_PERMISSION_CONTROLLER_P_H
+#endif // QUOTA_PERMISSION_CONTROLLER_IMPL_H