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

Unified Diff: webkit/blob/blob_data_handle.h

Issue 14139026: New blobstoragecontext for use in the main browser process, not plugged in yet. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 8 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
« no previous file with comments | « webkit/blob/blob_data.cc ('k') | webkit/blob/blob_data_handle.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/blob/blob_data_handle.h
===================================================================
--- webkit/blob/blob_data_handle.h (revision 0)
+++ webkit/blob/blob_data_handle.h (revision 0)
@@ -0,0 +1,50 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_BLOB_BLOB_DATA_HANDLE_H_
+#define WEBKIT_BLOB_BLOB_DATA_HANDLE_H_
+
+#include <string>
+
+#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
+#include "base/supports_user_data.h"
+#include "webkit/storage/webkit_storage_export.h"
+
+namespace base {
+class SequencedTaskRunner;
+}
+
+namespace webkit_blob {
+
+class BlobData;
+class BlobStorageContext;
+
+// A scoper object for use in chrome's main browser process, ensures
+// the underlying BlobData and its uuid remain in BlobStorageContext's
+// collection for the duration. This object has delete semantics and
+// maybe deleted on any thread.
+class WEBKIT_STORAGE_EXPORT BlobDataHandle
+ : public base::SupportsUserData::Data {
+ public:
+ virtual ~BlobDataHandle(); // Maybe be deleted on any thread.
+ BlobData* data() const; // May only be accessed on the IO thread.
+
+ private:
+ 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_;
+};
+
+} // namespace webkit_blob
+
+#endif // WEBKIT_BLOB_BLOB_DATA_HANDLE_H_
Property changes on: webkit\blob\blob_data_handle.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « webkit/blob/blob_data.cc ('k') | webkit/blob/blob_data_handle.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698