From dd3163be45f68c9807d834d010e6d5b7f550e2b5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 22 Mar 2017 10:44:47 +0100 Subject: Rename WebCoreVisitedLinksManager to VisitedLinksManagerQt Rename to follow our standard naming. This class was one of our oldest and probably predates our standard naming convention. Change-Id: I32dfbad9611b789ad13114d9692b07045806f7c0 Reviewed-by: Michal Klocek --- src/core/browser_context_adapter.cpp | 6 +- src/core/browser_context_adapter.h | 6 +- src/core/core_generator.pro | 4 +- src/core/visited_links_manager_qt.cpp | 130 +++++++++++++++++++++++++ src/core/visited_links_manager_qt.h | 83 ++++++++++++++++ src/core/web_contents_delegate_qt.cpp | 2 +- src/core/web_engine_visited_links_manager.cpp | 130 ------------------------- src/core/web_engine_visited_links_manager.h | 83 ---------------- src/webengine/api/qquickwebengineview.cpp | 1 - src/webenginewidgets/api/qwebengineprofile.cpp | 2 +- 10 files changed, 223 insertions(+), 224 deletions(-) create mode 100644 src/core/visited_links_manager_qt.cpp create mode 100644 src/core/visited_links_manager_qt.h delete mode 100644 src/core/web_engine_visited_links_manager.cpp delete mode 100644 src/core/web_engine_visited_links_manager.h diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp index 863731ff4..1bb90aff6 100644 --- a/src/core/browser_context_adapter.cpp +++ b/src/core/browser_context_adapter.cpp @@ -47,8 +47,8 @@ #include "download_manager_delegate_qt.h" #include "permission_manager_qt.h" #include "type_conversion.h" +#include "visited_links_manager_qt.h" #include "web_engine_context.h" -#include "web_engine_visited_links_manager.h" #include "url_request_context_getter_qt.h" #include "renderer_host/user_resource_controller_host.h" @@ -134,7 +134,7 @@ BrowserContextQt *BrowserContextAdapter::browserContext() return m_browserContext.data(); } -WebEngineVisitedLinksManager *BrowserContextAdapter::visitedLinksManager() +VisitedLinksManagerQt *BrowserContextAdapter::visitedLinksManager() { if (!m_visitedLinksManager) resetVisitedLinksManager(); @@ -526,7 +526,7 @@ bool BrowserContextAdapter::isSpellCheckEnabled() const void BrowserContextAdapter::resetVisitedLinksManager() { - m_visitedLinksManager.reset(new WebEngineVisitedLinksManager(this)); + m_visitedLinksManager.reset(new VisitedLinksManagerQt(this)); } } // namespace QtWebEngineCore diff --git a/src/core/browser_context_adapter.h b/src/core/browser_context_adapter.h index 39b9db61c..f6ebfd51c 100644 --- a/src/core/browser_context_adapter.h +++ b/src/core/browser_context_adapter.h @@ -61,7 +61,7 @@ class BrowserContextAdapterClient; class BrowserContextQt; class DownloadManagerDelegateQt; class UserResourceControllerHost; -class WebEngineVisitedLinksManager; +class VisitedLinksManagerQt; class QWEBENGINE_EXPORT BrowserContextAdapter : public QEnableSharedFromThis { @@ -73,7 +73,7 @@ public: static QSharedPointer defaultContext(); static QObject* globalQObjectRoot(); - WebEngineVisitedLinksManager *visitedLinksManager(); + VisitedLinksManagerQt *visitedLinksManager(); DownloadManagerDelegateQt *downloadManagerDelegate(); QWebEngineCookieStore *cookieStore(); @@ -180,7 +180,7 @@ private: QString m_name; bool m_offTheRecord; QScopedPointer m_browserContext; - QScopedPointer m_visitedLinksManager; + QScopedPointer m_visitedLinksManager; QScopedPointer m_downloadManagerDelegate; QScopedPointer m_userResourceController; QScopedPointer m_cookieStore; diff --git a/src/core/core_generator.pro b/src/core/core_generator.pro index 6f427757c..82c9b8125 100644 --- a/src/core/core_generator.pro +++ b/src/core/core_generator.pro @@ -101,6 +101,7 @@ SOURCES = \ url_request_custom_job_delegate.cpp \ url_request_qrc_job_qt.cpp \ user_script.cpp \ + visited_links_manager_qt.cpp \ web_contents_adapter.cpp \ web_contents_delegate_qt.cpp \ web_contents_view_qt.cpp \ @@ -108,7 +109,6 @@ SOURCES = \ web_engine_error.cpp \ web_engine_library_info.cpp \ web_engine_settings.cpp \ - web_engine_visited_links_manager.cpp \ web_event_factory.cpp HEADERS = \ @@ -176,6 +176,7 @@ HEADERS = \ url_request_custom_job_delegate.h \ url_request_qrc_job_qt.h \ user_script.h \ + visited_links_manager_qt.h \ web_contents_adapter.h \ web_contents_adapter_client.h \ web_contents_adapter_p.h \ @@ -185,7 +186,6 @@ HEADERS = \ web_engine_error.h \ web_engine_library_info.h \ web_engine_settings.h \ - web_engine_visited_links_manager.h \ web_event_factory.h diff --git a/src/core/visited_links_manager_qt.cpp b/src/core/visited_links_manager_qt.cpp new file mode 100644 index 000000000..5e9a89338 --- /dev/null +++ b/src/core/visited_links_manager_qt.cpp @@ -0,0 +1,130 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "visited_links_manager_qt.h" + +#include "browser_context_adapter.h" +#include "browser_context_qt.h" +#include "content_browser_client_qt.h" +#include "type_conversion.h" + +#include +#include "components/visitedlink/browser/visitedlink_delegate.h" +#include "components/visitedlink/browser/visitedlink_master.h" + +namespace QtWebEngineCore { + +namespace { +class BasicUrlIterator : public visitedlink::VisitedLinkMaster::URLIterator { +public: + BasicUrlIterator(const QList &urls) : m_urls(urls) {} + virtual const GURL& NextURL() { m_currentUrl = toGurl(m_urls.takeFirst()); return m_currentUrl; } + virtual bool HasNextURL() const { return !m_urls.isEmpty(); } +private: + QList m_urls; + GURL m_currentUrl; + +}; +} // Anonymous namespace + +// Due to the design of the visitedLink component, it seems safer to provide a +// basic delegate that will simply rebuild an empty visitedLink table if needed +// from the application history rather than crashing. This is functionality +// that was covered by QWebHistoryInterface in QtWebKitWidgets. + +class VisitedLinkDelegateQt : public visitedlink::VisitedLinkDelegate +{ +public: + ~VisitedLinkDelegateQt() {} + void RebuildTable(const scoped_refptr& enumerator) { enumerator->OnComplete(true); } +}; + +void VisitedLinksManagerQt::deleteAllVisitedLinkData() +{ + m_visitedLinkMaster->DeleteAllURLs(); +} + +void VisitedLinksManagerQt::deleteVisitedLinkDataForUrls(const QList &urlsToDelete) +{ + BasicUrlIterator iterator(urlsToDelete); + m_visitedLinkMaster->DeleteURLs(&iterator); +} + +bool VisitedLinksManagerQt::containsUrl(const QUrl &url) const +{ + return m_visitedLinkMaster->IsVisited(toGurl(url)); +} + +static void ensureDirectoryExists(const base::FilePath &path) +{ + if (base::PathExists(path)) + return; + + base::File::Error error; + if (base::CreateDirectoryAndGetError(path, &error)) + return; + + std::string errorstr = base::File::ErrorToString(error); + qWarning("Cannot create directory %s. Error: %s.", + path.AsUTF8Unsafe().c_str(), + errorstr.c_str()); +} + +VisitedLinksManagerQt::VisitedLinksManagerQt(BrowserContextAdapter *adapter) + : m_delegate(new VisitedLinkDelegateQt) +{ + Q_ASSERT(adapter && adapter->browserContext()); + BrowserContextQt *browserContext = adapter->browserContext(); + if (adapter->persistVisitedLinks()) + ensureDirectoryExists(browserContext->GetPath()); + m_visitedLinkMaster.reset(new visitedlink::VisitedLinkMaster(browserContext, m_delegate.data(), adapter->persistVisitedLinks())); + m_visitedLinkMaster->Init(); +} + +VisitedLinksManagerQt::~VisitedLinksManagerQt() +{ +} + +void VisitedLinksManagerQt::addUrl(const GURL &urlToAdd) +{ + Q_ASSERT(m_visitedLinkMaster); + m_visitedLinkMaster->AddURL(urlToAdd); +} + +} // namespace QtWebEngineCore diff --git a/src/core/visited_links_manager_qt.h b/src/core/visited_links_manager_qt.h new file mode 100644 index 000000000..30265e033 --- /dev/null +++ b/src/core/visited_links_manager_qt.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef VISITED_LINKS_MANAGER_QT_H +#define VISITED_LINKS_MANAGER_QT_H + +#include "qtwebenginecoreglobal.h" +#include +#include + +QT_BEGIN_NAMESPACE +class QUrl; +QT_END_NAMESPACE + +namespace visitedlink { +class VisitedLinkMaster; +} + +class GURL; + +namespace QtWebEngineCore { + +class BrowserContextAdapter; +class VisitedLinkDelegateQt; + +class QWEBENGINE_EXPORT VisitedLinksManagerQt { + +public: + virtual~VisitedLinksManagerQt(); + VisitedLinksManagerQt(BrowserContextAdapter*); + + void deleteAllVisitedLinkData(); + void deleteVisitedLinkDataForUrls(const QList &); + + bool containsUrl(const QUrl &) const; + +private: + void addUrl(const GURL &); + friend class WebContentsDelegateQt; + + QScopedPointer m_visitedLinkMaster; + QScopedPointer m_delegate; +}; + +} // namespace QtWebEngineCore + +#endif // WEB_ENGINE_VISITED_LINKS_MANAGER_H diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index fb32ea813..cda234d6d 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -53,11 +53,11 @@ #include "network_delegate_qt.h" #include "render_widget_host_view_qt.h" #include "type_conversion.h" +#include "visited_links_manager_qt.h" #include "web_contents_adapter_client.h" #include "web_contents_adapter_p.h" #include "web_engine_context.h" #include "web_engine_settings.h" -#include "web_engine_visited_links_manager.h" #include "components/web_cache/browser/web_cache_manager.h" #include "content/browser/renderer_host/render_widget_host_impl.h" diff --git a/src/core/web_engine_visited_links_manager.cpp b/src/core/web_engine_visited_links_manager.cpp deleted file mode 100644 index 689c130e6..000000000 --- a/src/core/web_engine_visited_links_manager.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "web_engine_visited_links_manager.h" - -#include "browser_context_adapter.h" -#include "browser_context_qt.h" -#include "content_browser_client_qt.h" -#include "type_conversion.h" - -#include -#include "components/visitedlink/browser/visitedlink_delegate.h" -#include "components/visitedlink/browser/visitedlink_master.h" - -namespace QtWebEngineCore { - -namespace { -class BasicUrlIterator : public visitedlink::VisitedLinkMaster::URLIterator { -public: - BasicUrlIterator(const QList &urls) : m_urls(urls) {} - virtual const GURL& NextURL() { m_currentUrl = toGurl(m_urls.takeFirst()); return m_currentUrl; } - virtual bool HasNextURL() const { return !m_urls.isEmpty(); } -private: - QList m_urls; - GURL m_currentUrl; - -}; -} // Anonymous namespace - -// Due to the design of the visitedLink component, it seems safer to provide a -// basic delegate that will simply rebuild an empty visitedLink table if needed -// from the application history rather than crashing. This is functionality -// that was covered by QWebHistoryInterface in QtWebKitWidgets. - -class VisitedLinkDelegateQt : public visitedlink::VisitedLinkDelegate -{ -public: - ~VisitedLinkDelegateQt() {} - void RebuildTable(const scoped_refptr& enumerator) { enumerator->OnComplete(true); } -}; - -void WebEngineVisitedLinksManager::deleteAllVisitedLinkData() -{ - m_visitedLinkMaster->DeleteAllURLs(); -} - -void WebEngineVisitedLinksManager::deleteVisitedLinkDataForUrls(const QList &urlsToDelete) -{ - BasicUrlIterator iterator(urlsToDelete); - m_visitedLinkMaster->DeleteURLs(&iterator); -} - -bool WebEngineVisitedLinksManager::containsUrl(const QUrl &url) const -{ - return m_visitedLinkMaster->IsVisited(toGurl(url)); -} - -static void ensureDirectoryExists(const base::FilePath &path) -{ - if (base::PathExists(path)) - return; - - base::File::Error error; - if (base::CreateDirectoryAndGetError(path, &error)) - return; - - std::string errorstr = base::File::ErrorToString(error); - qWarning("Cannot create directory %s. Error: %s.", - path.AsUTF8Unsafe().c_str(), - errorstr.c_str()); -} - -WebEngineVisitedLinksManager::WebEngineVisitedLinksManager(BrowserContextAdapter *adapter) - : m_delegate(new VisitedLinkDelegateQt) -{ - Q_ASSERT(adapter && adapter->browserContext()); - BrowserContextQt *browserContext = adapter->browserContext(); - if (adapter->persistVisitedLinks()) - ensureDirectoryExists(browserContext->GetPath()); - m_visitedLinkMaster.reset(new visitedlink::VisitedLinkMaster(browserContext, m_delegate.data(), adapter->persistVisitedLinks())); - m_visitedLinkMaster->Init(); -} - -WebEngineVisitedLinksManager::~WebEngineVisitedLinksManager() -{ -} - -void WebEngineVisitedLinksManager::addUrl(const GURL &urlToAdd) -{ - Q_ASSERT(m_visitedLinkMaster); - m_visitedLinkMaster->AddURL(urlToAdd); -} - -} // namespace QtWebEngineCore diff --git a/src/core/web_engine_visited_links_manager.h b/src/core/web_engine_visited_links_manager.h deleted file mode 100644 index eab2b9610..000000000 --- a/src/core/web_engine_visited_links_manager.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WEB_ENGINE_VISITED_LINKS_MANAGER_H -#define WEB_ENGINE_VISITED_LINKS_MANAGER_H - -#include "qtwebenginecoreglobal.h" -#include -#include - -QT_BEGIN_NAMESPACE -class QUrl; -QT_END_NAMESPACE - -namespace visitedlink { -class VisitedLinkMaster; -} - -class GURL; - -namespace QtWebEngineCore { - -class BrowserContextAdapter; -class VisitedLinkDelegateQt; - -class QWEBENGINE_EXPORT WebEngineVisitedLinksManager { - -public: - virtual~WebEngineVisitedLinksManager(); - WebEngineVisitedLinksManager(BrowserContextAdapter*); - - void deleteAllVisitedLinkData(); - void deleteVisitedLinkDataForUrls(const QList &); - - bool containsUrl(const QUrl &) const; - -private: - void addUrl(const GURL &); - friend class WebContentsDelegateQt; - - QScopedPointer m_visitedLinkMaster; - QScopedPointer m_delegate; -}; - -} // namespace QtWebEngineCore - -#endif // WEB_ENGINE_VISITED_LINKS_MANAGER_H diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 60fb5d0a5..6383f3468 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -68,7 +68,6 @@ #include "web_contents_adapter.h" #include "web_engine_error.h" #include "web_engine_settings.h" -#include "web_engine_visited_links_manager.h" #include #include diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp index 886a7207e..abed066d3 100644 --- a/src/webenginewidgets/api/qwebengineprofile.cpp +++ b/src/webenginewidgets/api/qwebengineprofile.cpp @@ -49,7 +49,7 @@ #include "browser_context_adapter.h" #include -#include "web_engine_visited_links_manager.h" +#include "visited_links_manager_qt.h" #include "web_engine_settings.h" QT_BEGIN_NAMESPACE -- cgit v1.2.3