Index: content/browser/chrome_blob_storage_context.cc |
=================================================================== |
--- content/browser/chrome_blob_storage_context.cc (revision 122771) |
+++ content/browser/chrome_blob_storage_context.cc (working copy) |
@@ -4,11 +4,33 @@ |
#include "content/browser/chrome_blob_storage_context.h" |
+#include "base/bind.h" |
+#include "content/public/browser/browser_context.h" |
#include "webkit/blob/blob_storage_controller.h" |
+using base::UserDataAdapter; |
+using content::BrowserContext; |
using content::BrowserThread; |
using webkit_blob::BlobStorageController; |
+static const char* kBlobStorageContextKeyName = "content_blob_storage_context"; |
+ |
+ChromeBlobStorageContext* ChromeBlobStorageContext::GetFor( |
+ BrowserContext* context) { |
+ if (!context->GetUserData(kBlobStorageContextKeyName)) { |
+ scoped_refptr<ChromeBlobStorageContext> blob = |
+ new ChromeBlobStorageContext(); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&ChromeBlobStorageContext::InitializeOnIOThread, blob)); |
+ context->SetUserData(kBlobStorageContextKeyName, |
+ new UserDataAdapter<ChromeBlobStorageContext>(blob)); |
+ } |
+ |
+ return UserDataAdapter<ChromeBlobStorageContext>::Get( |
+ context, kBlobStorageContextKeyName); |
+} |
+ |
ChromeBlobStorageContext::ChromeBlobStorageContext() { |
} |