Index: webkit/browser/blob/blob_data_handle.h |
diff --git a/webkit/browser/blob/blob_data_handle.h b/webkit/browser/blob/blob_data_handle.h |
index 917a0b38e8e9a588bf347bbfc3c1fe19217f2907..5f870f2731a21b9f456c99fc505e9c61a0a03bcd 100644 |
--- a/webkit/browser/blob/blob_data_handle.h |
+++ b/webkit/browser/blob/blob_data_handle.h |
@@ -28,42 +28,23 @@ |
class WEBKIT_STORAGE_BROWSER_EXPORT BlobDataHandle |
: public base::SupportsUserData::Data { |
public: |
- BlobDataHandle(const BlobDataHandle& other); // May be copied on any thread. |
virtual ~BlobDataHandle(); // Maybe be deleted on any thread. |
BlobData* data() const; // May only be accessed on the IO thread. |
- std::string uuid() const; // May be accessed on any thread. |
- |
private: |
- class BlobDataHandleShared |
- : public base::RefCountedThreadSafe<BlobDataHandleShared> { |
- public: |
- BlobDataHandleShared(BlobData* blob_data, |
- BlobStorageContext* context, |
- base::SequencedTaskRunner* task_runner); |
- |
- BlobData* data() const; |
- const std::string& uuid() const; |
- |
- private: |
- friend class base::DeleteHelper<BlobDataHandleShared>; |
- friend class base::RefCountedThreadSafe<BlobDataHandleShared>; |
- friend class BlobDataHandle; |
- |
- virtual ~BlobDataHandleShared(); |
- |
- scoped_refptr<BlobData> blob_data_; |
- base::WeakPtr<BlobStorageContext> context_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BlobDataHandleShared); |
- }; |
- |
friend class BlobStorageContext; |
BlobDataHandle(BlobData* blob_data, BlobStorageContext* context, |
base::SequencedTaskRunner* task_runner); |
+ static void DeleteHelper( |
+ base::WeakPtr<BlobStorageContext> context, |
+ BlobData* blob_data); |
+ |
+ BlobData* blob_data_; // Intentionally a raw ptr to a non-thread-safe ref. |
+ base::WeakPtr<BlobStorageContext> context_; |
scoped_refptr<base::SequencedTaskRunner> io_task_runner_; |
- scoped_refptr<BlobDataHandleShared> shared_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(BlobDataHandle); |
}; |
} // namespace webkit_blob |