summaryrefslogtreecommitdiffstats
path: root/src/core/browser_context_adapter.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-12-08 15:56:32 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-01-08 16:50:51 +0100
commit4557ccd9785f53abc11460211c84db3e564b364f (patch)
treed087bcf820ede65c098469671c8157184e9bc99a /src/core/browser_context_adapter.cpp
parent89027eb534aae302ab6f87a3bcfa94e53db02e5d (diff)
API for controlling tracking of visited links
Also fixes updating the visited links manager when off-the-record changes or a storage path is set or changed. Change-Id: Iffa90edde35f2d84146f3ab3b3861ef113e321f3 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
Diffstat (limited to 'src/core/browser_context_adapter.cpp')
-rw-r--r--src/core/browser_context_adapter.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp
index edf1d2dbc..637003f96 100644
--- a/src/core/browser_context_adapter.cpp
+++ b/src/core/browser_context_adapter.cpp
@@ -66,6 +66,7 @@ BrowserContextAdapter::BrowserContextAdapter(bool offTheRecord)
, m_browserContext(new BrowserContextQt(this))
, m_httpCacheType(DiskHttpCache)
, m_persistentCookiesPolicy(AllowPersistentCookies)
+ , m_visitedLinksPolicy(TrackVisitedLinksOnDisk)
, m_httpCacheMaxSize(0)
{
}
@@ -76,6 +77,7 @@ BrowserContextAdapter::BrowserContextAdapter(const QString &storageName)
, m_browserContext(new BrowserContextQt(this))
, m_httpCacheType(DiskHttpCache)
, m_persistentCookiesPolicy(AllowPersistentCookies)
+ , m_visitedLinksPolicy(TrackVisitedLinksOnDisk)
, m_httpCacheMaxSize(0)
{
}
@@ -91,6 +93,7 @@ void BrowserContextAdapter::setStorageName(const QString &storageName)
m_name = storageName;
if (m_browserContext->url_request_getter_)
m_browserContext->url_request_getter_->updateStorageSettings();
+ m_visitedLinksManager.reset();
}
void BrowserContextAdapter::setOffTheRecord(bool offTheRecord)
@@ -100,6 +103,7 @@ void BrowserContextAdapter::setOffTheRecord(bool offTheRecord)
m_offTheRecord = offTheRecord;
if (m_browserContext->url_request_getter_)
m_browserContext->url_request_getter_->updateStorageSettings();
+ m_visitedLinksManager.reset();
}
BrowserContextQt *BrowserContextAdapter::browserContext()
@@ -142,6 +146,7 @@ void BrowserContextAdapter::setDataPath(const QString &path)
m_dataPath = path;
if (m_browserContext->url_request_getter_)
m_browserContext->url_request_getter_->updateStorageSettings();
+ m_visitedLinksManager.reset();
}
QString BrowserContextAdapter::cachePath() const
@@ -234,6 +239,46 @@ void BrowserContextAdapter::setPersistentCookiesPolicy(BrowserContextAdapter::Pe
m_browserContext->url_request_getter_->updateCookieStore();
}
+BrowserContextAdapter::VisitedLinksPolicy BrowserContextAdapter::visitedLinksPolicy() const
+{
+ if (isOffTheRecord() || m_visitedLinksPolicy == DoNotTrackVisitedLinks)
+ return DoNotTrackVisitedLinks;
+ if (dataPath().isEmpty())
+ return TrackVisitedLinksInMemory;
+ return m_visitedLinksPolicy;
+}
+
+bool BrowserContextAdapter::trackVisitedLinks() const
+{
+ switch (visitedLinksPolicy()) {
+ case DoNotTrackVisitedLinks:
+ return false;
+ default:
+ break;
+ }
+ return true;
+}
+
+bool BrowserContextAdapter::persistVisitedLinks() const
+{
+ switch (visitedLinksPolicy()) {
+ case DoNotTrackVisitedLinks:
+ case TrackVisitedLinksInMemory:
+ return false;
+ default:
+ break;
+ }
+ return true;
+}
+
+void BrowserContextAdapter::setVisitedLinksPolicy(BrowserContextAdapter::VisitedLinksPolicy visitedLinksPolicy)
+{
+ if (m_visitedLinksPolicy == visitedLinksPolicy)
+ return;
+ m_visitedLinksPolicy = visitedLinksPolicy;
+ m_visitedLinksManager.reset();
+}
+
int BrowserContextAdapter::httpCacheMaxSize() const
{
return m_httpCacheMaxSize;