diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-12-08 15:56:32 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-01-08 16:50:51 +0100 |
commit | 4557ccd9785f53abc11460211c84db3e564b364f (patch) | |
tree | d087bcf820ede65c098469671c8157184e9bc99a /src/core/browser_context_adapter.cpp | |
parent | 89027eb534aae302ab6f87a3bcfa94e53db02e5d (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.cpp | 45 |
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; |