| Index: webkit/fileapi/sandbox_quota_client.cc
|
| diff --git a/webkit/fileapi/sandbox_quota_client.cc b/webkit/fileapi/sandbox_quota_client.cc
|
| index b35e7ba23c7e3c874b268dd6bf7faf21a3dea115..7d23b51d433b7f4b0bc4a234c3f687f4c170b44d 100644
|
| --- a/webkit/fileapi/sandbox_quota_client.cc
|
| +++ b/webkit/fileapi/sandbox_quota_client.cc
|
| @@ -289,4 +289,53 @@ void SandboxQuotaClient::DidGetOriginsForHost(
|
| pending_origins_for_host_callbacks_.Run(type_and_host, origins);
|
| }
|
|
|
| +class SandboxQuotaClient::DeleteOriginTask
|
| + : public QuotaThreadTask {
|
| + public:
|
| + DeleteOriginTask(
|
| + SandboxQuotaClient* quota_client,
|
| + scoped_refptr<MessageLoopProxy> file_message_loop,
|
| + const GURL& origin,
|
| + FileSystemType type,
|
| + DeletionCallback* callback)
|
| + : QuotaThreadTask(quota_client, file_message_loop),
|
| + file_system_context_(quota_client->file_system_context_),
|
| + origin_(origin),
|
| + type_(type),
|
| + status_(quota::kQuotaStatusUnknown),
|
| + callback_(callback) {
|
| + }
|
| +
|
| + virtual ~DeleteOriginTask() {}
|
| +
|
| + virtual void RunOnTargetThread() OVERRIDE {
|
| + if (file_system_context_->
|
| + DeleteDataForOriginAndTypeOnFileThread(origin_, type_))
|
| + status_ = quota::kQuotaStatusOk;
|
| + else
|
| + status_ = quota::kQuotaErrorInvalidModification;
|
| + }
|
| +
|
| + virtual void Completed() OVERRIDE {
|
| + callback_->Run(status_);
|
| + }
|
| + private:
|
| + FileSystemContext* file_system_context_;
|
| + GURL origin_;
|
| + FileSystemType type_;
|
| + quota::QuotaStatusCode status_;
|
| + scoped_ptr<DeletionCallback> callback_;
|
| +};
|
| +
|
| +void SandboxQuotaClient::DeleteOriginData(const GURL& origin,
|
| + StorageType type,
|
| + DeletionCallback* callback) {
|
| + FileSystemType fs_type = QuotaStorageTypeToFileSystemType(type);
|
| + DCHECK(fs_type != kFileSystemTypeUnknown);
|
| + scoped_ptr<DeleteOriginTask> task(
|
| + new DeleteOriginTask(this, file_message_loop_,
|
| + origin, fs_type, callback));
|
| + task->Start();
|
| +}
|
| +
|
| } // namespace fileapi
|
|
|