Support sending BlobData to browser process. Also support sending UploadData
with the blob info to browser process.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/3108042

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57707 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/profile.cc b/chrome/browser/profile.cc
index 15a4641d..7b9e0fd 100644
--- a/chrome/browser/profile.cc
+++ b/chrome/browser/profile.cc
@@ -14,6 +14,7 @@
 #include "chrome/browser/background_contents_service.h"
 #include "chrome/browser/browser_list.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/chrome_blob_storage_context.h"
 #include "chrome/browser/chrome_thread.h"
 #include "chrome/browser/download/download_manager.h"
 #include "chrome/browser/find_bar_state.h"
@@ -515,6 +516,18 @@
       ExitedOffTheRecordMode();
   }
 
+  virtual ChromeBlobStorageContext* GetBlobStorageContext() {
+    if (!blob_storage_context_) {
+      blob_storage_context_ = new ChromeBlobStorageContext();
+      ChromeThread::PostTask(
+          ChromeThread::IO, FROM_HERE,
+          NewRunnableMethod(
+              blob_storage_context_.get(),
+              &ChromeBlobStorageContext::InitializeOnIOThread));
+    }
+    return blob_storage_context_;
+  }
+
  private:
   NotificationRegistrar registrar_;
 
@@ -566,6 +579,8 @@
   // Tracks all BackgroundContents running under this profile.
   scoped_ptr<BackgroundContentsService> background_contents_service_;
 
+  scoped_refptr<ChromeBlobStorageContext> blob_storage_context_;
+
   DISALLOW_COPY_AND_ASSIGN(OffTheRecordProfileImpl);
 };