Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Unified Diff: webkit/plugins/ppapi/quota_file_io.cc

Issue 7669055: Remove webkit::ppapi::Resource. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix self-assignment Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/plugins/ppapi/quota_file_io.cc
diff --git a/webkit/plugins/ppapi/quota_file_io.cc b/webkit/plugins/ppapi/quota_file_io.cc
index 82fdf9f1acdba4ce3439eb7a4f7145334b0d0380..cc06ef39fe1a6ae18021ba2f14bb46d386ece982 100644
--- a/webkit/plugins/ppapi/quota_file_io.cc
+++ b/webkit/plugins/ppapi/quota_file_io.cc
@@ -10,6 +10,8 @@
#include "base/message_loop_proxy.h"
#include "base/task.h"
#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
+#include "webkit/plugins/ppapi/resource_helper.h"
+#include "webkit/plugins/ppapi/resource_tracker.h"
using base::PlatformFile;
using base::PlatformFileError;
@@ -91,7 +93,7 @@ class QuotaFileIO::WriteOperation : public PendingOperationBase {
}
DCHECK(buffer_.get());
if (!base::FileUtilProxy::Write(
- quota_io_->instance_->delegate()->GetFileThreadMessageLoopProxy(),
+ quota_io_->GetPluginDelegate()->GetFileThreadMessageLoopProxy(),
quota_io_->file_, offset_, buffer_.get(), bytes_to_write_,
callback_factory_.NewCallback(&WriteOperation::DidFinish))) {
DidFail(base::PLATFORM_FILE_ERROR_FAILED);
@@ -164,7 +166,7 @@ class QuotaFileIO::SetLengthOperation : public PendingOperationBase {
return;
}
if (!base::FileUtilProxy::Truncate(
- quota_io_->instance_->delegate()->GetFileThreadMessageLoopProxy(),
+ quota_io_->GetPluginDelegate()->GetFileThreadMessageLoopProxy(),
quota_io_->file_, length_,
callback_factory_.NewCallback(&SetLengthOperation::DidFinish))) {
DidFail(base::PLATFORM_FILE_ERROR_FAILED);
@@ -193,11 +195,11 @@ class QuotaFileIO::SetLengthOperation : public PendingOperationBase {
// QuotaFileIO --------------------------------------------------------------
QuotaFileIO::QuotaFileIO(
- PluginInstance* instance,
+ PP_Instance instance,
PlatformFile file,
const GURL& file_url,
PP_FileSystemType type)
- : instance_(instance),
+ : pp_instance_(instance),
file_(file),
file_url_(file_url),
storage_type_(PPFileSystemTypeToQuotaStorageType(type)),
@@ -208,7 +210,6 @@ QuotaFileIO::QuotaFileIO(
max_written_offset_(0),
inflight_operations_(0),
callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
- DCHECK(instance_);
DCHECK_NE(base::kInvalidPlatformFileValue, file_);
DCHECK_NE(quota::kStorageTypeUnknown, storage_type_);
}
@@ -253,6 +254,13 @@ bool QuotaFileIO::WillSetLength(int64_t length, StatusCallback* callback) {
return RegisterOperationForQuotaChecks(op);
}
+PluginDelegate* QuotaFileIO::GetPluginDelegate() const {
+ PluginInstance* instance = ResourceTracker::Get()->GetInstance(pp_instance_);
+ if (instance)
+ return instance->delegate();
+ return NULL;
+}
+
bool QuotaFileIO::RegisterOperationForQuotaChecks(
PendingOperationBase* op_ptr) {
scoped_ptr<PendingOperationBase> op(op_ptr);
@@ -265,7 +273,7 @@ bool QuotaFileIO::RegisterOperationForQuotaChecks(
// Query the file size.
++outstanding_quota_queries_;
if (!base::FileUtilProxy::GetFileInfoFromPlatformFile(
- instance_->delegate()->GetFileThreadMessageLoopProxy(), file_,
+ GetPluginDelegate()->GetFileThreadMessageLoopProxy(), file_,
callback_factory_.NewCallback(
&QuotaFileIO::DidQueryInfoForQuota))) {
// This makes the call fail synchronously; we do not fire the callback
@@ -275,7 +283,7 @@ bool QuotaFileIO::RegisterOperationForQuotaChecks(
// Query the current available space.
++outstanding_quota_queries_;
- instance_->delegate()->QueryAvailableSpace(
+ GetPluginDelegate()->QueryAvailableSpace(
GURL(file_url_.path()).GetOrigin(), storage_type_,
callback_factory_.NewCallback(&QuotaFileIO::DidQueryAvailableSpace));
}
@@ -324,7 +332,7 @@ bool QuotaFileIO::CheckIfExceedsQuota(int64_t new_file_size) const {
void QuotaFileIO::WillUpdate() {
if (inflight_operations_++ == 0) {
- instance_->delegate()->WillUpdateFile(file_url_);
+ GetPluginDelegate()->WillUpdateFile(file_url_);
DCHECK_EQ(0, max_written_offset_);
}
}
@@ -349,7 +357,7 @@ void QuotaFileIO::DidWrite(WriteOperation* op,
DCHECK(pending_operations_.empty());
int64_t growth = max_written_offset_ - cached_file_size_;
growth = growth < 0 ? 0 : growth;
- instance_->delegate()->DidUpdateFile(file_url_, growth);
+ GetPluginDelegate()->DidUpdateFile(file_url_, growth);
max_written_offset_ = 0;
}
}
@@ -360,7 +368,7 @@ void QuotaFileIO::DidSetLength(PlatformFileError error, int64_t new_file_size) {
DCHECK(pending_callbacks_.empty());
int64_t delta = (error != base::PLATFORM_FILE_OK) ? 0 :
new_file_size - cached_file_size_;
- instance_->delegate()->DidUpdateFile(file_url_, delta);
+ GetPluginDelegate()->DidUpdateFile(file_url_, delta);
inflight_operations_ = 0;
}

Powered by Google App Engine
This is Rietveld 408576698