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

Side by Side Diff: webkit/blob/mock_blob_url_request_context.cc

Issue 11103027: Support filesystem files from BlobURLRequestJob (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/blob/mock_blob_url_request_context.h" 5 #include "webkit/blob/mock_blob_url_request_context.h"
6 6
7 #include "webkit/blob/blob_data.h" 7 #include "webkit/blob/blob_data.h"
8 #include "webkit/blob/blob_storage_controller.h" 8 #include "webkit/blob/blob_storage_controller.h"
9 #include "webkit/blob/blob_url_request_job.h" 9 #include "webkit/blob/blob_url_request_job.h"
10 10
11 namespace webkit_blob { 11 namespace webkit_blob {
12 12
13 namespace { 13 namespace {
14 14
15 class MockBlobProtocolHandler 15 class MockBlobProtocolHandler
16 : public net::URLRequestJobFactory::ProtocolHandler { 16 : public net::URLRequestJobFactory::ProtocolHandler {
17 public: 17 public:
18 explicit MockBlobProtocolHandler( 18 explicit MockBlobProtocolHandler(
19 BlobStorageController* blob_storage_controller) 19 BlobStorageController* blob_storage_controller,
20 : blob_storage_controller_(blob_storage_controller) {} 20 fileapi::FileSystemContext* file_system_context)
21 : blob_storage_controller_(blob_storage_controller),
22 file_system_context_(file_system_context) {}
21 23
22 virtual ~MockBlobProtocolHandler() {} 24 virtual ~MockBlobProtocolHandler() {}
23 25
24 virtual net::URLRequestJob* MaybeCreateJob( 26 virtual net::URLRequestJob* MaybeCreateJob(
25 net::URLRequest* request, 27 net::URLRequest* request,
26 net::NetworkDelegate* network_delegate) const OVERRIDE { 28 net::NetworkDelegate* network_delegate) const OVERRIDE {
27 return new BlobURLRequestJob( 29 return new BlobURLRequestJob(
28 request, 30 request,
29 network_delegate, 31 network_delegate,
30 blob_storage_controller_->GetBlobDataFromUrl(request->url()), 32 blob_storage_controller_->GetBlobDataFromUrl(request->url()),
33 file_system_context_,
31 base::MessageLoopProxy::current()); 34 base::MessageLoopProxy::current());
32 } 35 }
33 36
34 private: 37 private:
35 webkit_blob::BlobStorageController* const blob_storage_controller_; 38 webkit_blob::BlobStorageController* const blob_storage_controller_;
39 fileapi::FileSystemContext* const file_system_context_;
36 40
37 DISALLOW_COPY_AND_ASSIGN(MockBlobProtocolHandler); 41 DISALLOW_COPY_AND_ASSIGN(MockBlobProtocolHandler);
38 }; 42 };
39 43
40 } // namespace 44 } // namespace
41 45
42 MockBlobURLRequestContext::MockBlobURLRequestContext() 46 MockBlobURLRequestContext::MockBlobURLRequestContext(
47 fileapi::FileSystemContext* file_system_context)
43 : blob_storage_controller_(new BlobStorageController) { 48 : blob_storage_controller_(new BlobStorageController) {
44 // Job factory owns the protocol handler. 49 // Job factory owns the protocol handler.
45 job_factory_.SetProtocolHandler( 50 job_factory_.SetProtocolHandler(
46 "blob", new MockBlobProtocolHandler(blob_storage_controller_.get())); 51 "blob", new MockBlobProtocolHandler(blob_storage_controller_.get(),
52 file_system_context));
47 set_job_factory(&job_factory_); 53 set_job_factory(&job_factory_);
48 } 54 }
49 55
50 MockBlobURLRequestContext::~MockBlobURLRequestContext() {} 56 MockBlobURLRequestContext::~MockBlobURLRequestContext() {}
51 57
52 ScopedTextBlob::ScopedTextBlob( 58 ScopedTextBlob::ScopedTextBlob(
53 const MockBlobURLRequestContext& request_context, 59 const MockBlobURLRequestContext& request_context,
54 const GURL& blob_url, 60 const GURL& blob_url,
55 const std::string& data) 61 const std::string& data)
56 : blob_url_(blob_url), 62 : blob_url_(blob_url),
57 blob_storage_controller_(request_context.blob_storage_controller()) { 63 blob_storage_controller_(request_context.blob_storage_controller()) {
58 DCHECK(blob_storage_controller_); 64 DCHECK(blob_storage_controller_);
59 scoped_refptr<BlobData> blob_data(new BlobData()); 65 scoped_refptr<BlobData> blob_data(new BlobData());
60 blob_data->AppendData(data); 66 blob_data->AppendData(data);
61 blob_storage_controller_->AddFinishedBlob(blob_url_, blob_data); 67 blob_storage_controller_->AddFinishedBlob(blob_url_, blob_data);
62 } 68 }
63 69
64 ScopedTextBlob::~ScopedTextBlob() { 70 ScopedTextBlob::~ScopedTextBlob() {
65 blob_storage_controller_->RemoveBlob(blob_url_); 71 blob_storage_controller_->RemoveBlob(blob_url_);
66 } 72 }
67 73
68 } // namespace webkit_blob 74 } // namespace webkit_blob
OLDNEW
« no previous file with comments | « webkit/blob/mock_blob_url_request_context.h ('k') | webkit/fileapi/local_file_system_operation_write_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698