diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h')
-rw-r--r-- | Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h b/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h index 1e633512d..04f61fd0b 100644 --- a/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h +++ b/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h @@ -28,9 +28,11 @@ #include <WebCore/SQLiteDatabase.h> #include <wtf/HashSet.h> +#include <wtf/Optional.h> #include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> #include <wtf/ThreadSafeRefCounted.h> +#include <wtf/WorkQueue.h> #include <wtf/text/StringHash.h> #include <wtf/text/WTFString.h> @@ -38,28 +40,35 @@ namespace WebCore { class SecurityOrigin; } -class WorkQueue; - namespace WebKit { +struct LocalStorageDetails; + class LocalStorageDatabaseTracker : public ThreadSafeRefCounted<LocalStorageDatabaseTracker> { public: - static PassRefPtr<LocalStorageDatabaseTracker> create(PassRefPtr<WorkQueue>); + static PassRefPtr<LocalStorageDatabaseTracker> create(PassRefPtr<WorkQueue>, const String& localStorageDirectory); ~LocalStorageDatabaseTracker(); - void setLocalStorageDirectory(const String&); String databasePath(WebCore::SecurityOrigin*) const; void didOpenDatabaseWithOrigin(WebCore::SecurityOrigin*); void deleteDatabaseWithOrigin(WebCore::SecurityOrigin*); void deleteAllDatabases(); - Vector<RefPtr<WebCore::SecurityOrigin> > origins() const; + // Returns a vector of the origins whose databases have been deleted. + Vector<Ref<WebCore::SecurityOrigin>> deleteDatabasesModifiedSince(std::chrono::system_clock::time_point); -private: - explicit LocalStorageDatabaseTracker(PassRefPtr<WorkQueue>); + Vector<Ref<WebCore::SecurityOrigin>> origins() const; - void setLocalStorageDirectoryInternal(StringImpl*); + struct OriginDetails { + String originIdentifier; + Optional<time_t> creationTime; + Optional<time_t> modificationTime; + }; + Vector<OriginDetails> originDetails(); + +private: + LocalStorageDatabaseTracker(PassRefPtr<WorkQueue>, const String& localStorageDirectory); String databasePath(const String& filename) const; String trackerDatabasePath() const; |