summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h')
-rw-r--r--Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h25
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;