Index: webkit/dom_storage/dom_storage_context.cc |
=================================================================== |
--- webkit/dom_storage/dom_storage_context.cc (revision 127221) |
+++ webkit/dom_storage/dom_storage_context.cc (working copy) |
@@ -6,20 +6,33 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
+#include "base/file_util.h" |
#include "base/time.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" |
+#include "webkit/dom_storage/dom_storage_area.h" |
#include "webkit/dom_storage/dom_storage_namespace.h" |
#include "webkit/dom_storage/dom_storage_task_runner.h" |
#include "webkit/dom_storage/dom_storage_types.h" |
+#include "webkit/glue/webkit_glue.h" |
#include "webkit/quota/special_storage_policy.h" |
+using file_util::FileEnumerator; |
+ |
namespace dom_storage { |
+DomStorageContext::UsageInfo::UsageInfo() {} |
+DomStorageContext::UsageInfo::~UsageInfo() {} |
+ |
DomStorageContext::DomStorageContext( |
const FilePath& directory, |
quota::SpecialStoragePolicy* special_storage_policy, |
DomStorageTaskRunner* task_runner) |
: directory_(directory), |
- task_runner_(task_runner) { |
+ task_runner_(task_runner), |
+ clear_local_state_(false), |
+ save_session_state_(false), |
+ special_storage_policy_(special_storage_policy) { |
// AtomicSequenceNum starts at 0 but we want to start session |
// namespace ids at one since zero is reserved for the |
// kLocalStorageNamespaceId. |
@@ -44,6 +57,45 @@ |
return found->second; |
} |
+void DomStorageContext::GetUsageInfo(std::vector<UsageInfo>* infos) { |
michaeln
2012/03/18 20:58:22
i've added an implementation of this method, but w
|
+ FileEnumerator enumerator(directory_, false, FileEnumerator::FILES); |
+ for (FilePath path = enumerator.Next(); !path.empty(); |
+ path = enumerator.Next()) { |
+ if (path.MatchesExtension(DomStorageArea::kDatabaseFileExtension)) { |
+ UsageInfo info; |
+ |
+ // Extract origin id from the path and construct a GURL. |
+ WebKit::WebString origin_id = webkit_glue::FilePathToWebString( |
+ path.BaseName().RemoveExtension()); |
+ info.origin = GURL(WebKit::WebSecurityOrigin:: |
+ createFromDatabaseIdentifier(origin_id).toString()); |
+ |
+ FileEnumerator::FindInfo find_info; |
+ enumerator.GetFindInfo(&find_info); |
+ info.data_size = FileEnumerator::GetFilesize(find_info); |
+ info.last_modified = FileEnumerator::GetLastModifiedTime(find_info); |
+ |
+ infos->push_back(info); |
+ } |
+ } |
+} |
+ |
+void DomStorageContext::DeleteOrigin(const GURL& origin) { |
+ // TODO(michaeln): write me |
+} |
+ |
+void DomStorageContext::DeleteDataModifiedSince(const base::Time& cutoff) { |
+ // TODO(michaeln): write me |
+} |
+ |
+void DomStorageContext::PurgeMemory() { |
+ // TODO(michaeln): write me |
+} |
+ |
+void DomStorageContext::Shutdown() { |
+ // TODO(michaeln): write me |
+} |
+ |
void DomStorageContext::AddEventObserver(EventObserver* observer) { |
event_observers_.AddObserver(observer); |
} |