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

Side by Side Diff: webkit/fileapi/file_system_url_request_job.cc

Issue 9016020: Cleanup FileSystemOperation for preparing for adding FSO-factory method (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 11 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/fileapi/file_system_url_request_job.h" 5 #include "webkit/fileapi/file_system_url_request_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util_proxy.h" 10 #include "base/file_util_proxy.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 std::string cache_control(net::HttpRequestHeaders::kCacheControl); 48 std::string cache_control(net::HttpRequestHeaders::kCacheControl);
49 cache_control.append(": no-cache"); 49 cache_control.append(": no-cache");
50 headers->AddHeader(cache_control); 50 headers->AddHeader(cache_control);
51 51
52 return headers; 52 return headers;
53 } 53 }
54 54
55 class FileSystemURLRequestJob::CallbackDispatcher 55 class FileSystemURLRequestJob::CallbackDispatcher
56 : public FileSystemCallbackDispatcher { 56 : public FileSystemCallbackDispatcher {
57 public: 57 public:
58 explicit CallbackDispatcher(FileSystemURLRequestJob* job) 58 // An instance of this class must be created by Create()
59 : job_(job) { 59 // (so that we do not leak ownerships).
60 DCHECK(job_); 60 static scoped_ptr<FileSystemCallbackDispatcher> Create(
61 FileSystemURLRequestJob* job) {
62 return scoped_ptr<FileSystemCallbackDispatcher>(
63 new CallbackDispatcher(job));
61 } 64 }
62 65
63 // fileapi::FileSystemCallbackDispatcher overrides. 66 // fileapi::FileSystemCallbackDispatcher overrides.
64 virtual void DidSucceed() OVERRIDE { 67 virtual void DidSucceed() OVERRIDE {
65 NOTREACHED(); 68 NOTREACHED();
66 } 69 }
67 70
68 virtual void DidReadMetadata(const base::PlatformFileInfo& file_info, 71 virtual void DidReadMetadata(const base::PlatformFileInfo& file_info,
69 const FilePath& platform_path) OVERRIDE { 72 const FilePath& platform_path) OVERRIDE {
70 job_->DidGetMetadata(file_info, platform_path); 73 job_->DidGetMetadata(file_info, platform_path);
(...skipping 15 matching lines...) Expand all
86 } 89 }
87 90
88 virtual void DidFail(base::PlatformFileError error_code) OVERRIDE { 91 virtual void DidFail(base::PlatformFileError error_code) OVERRIDE {
89 int rv = net::ERR_FILE_NOT_FOUND; 92 int rv = net::ERR_FILE_NOT_FOUND;
90 if (error_code == base::PLATFORM_FILE_ERROR_INVALID_URL) 93 if (error_code == base::PLATFORM_FILE_ERROR_INVALID_URL)
91 rv = net::ERR_INVALID_URL; 94 rv = net::ERR_INVALID_URL;
92 job_->NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv)); 95 job_->NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv));
93 } 96 }
94 97
95 private: 98 private:
99 explicit CallbackDispatcher(FileSystemURLRequestJob* job) : job_(job) {
100 DCHECK(job_);
101 }
102
96 // TODO(adamk): Get rid of the need for refcounting here by 103 // TODO(adamk): Get rid of the need for refcounting here by
97 // allowing FileSystemOperations to be cancelled. 104 // allowing FileSystemOperations to be cancelled.
98 scoped_refptr<FileSystemURLRequestJob> job_; 105 scoped_refptr<FileSystemURLRequestJob> job_;
99 DISALLOW_COPY_AND_ASSIGN(CallbackDispatcher); 106 DISALLOW_COPY_AND_ASSIGN(CallbackDispatcher);
100 }; 107 };
101 108
102 FileSystemURLRequestJob::FileSystemURLRequestJob( 109 FileSystemURLRequestJob::FileSystemURLRequestJob(
103 URLRequest* request, FileSystemContext* file_system_context, 110 URLRequest* request, FileSystemContext* file_system_context,
104 scoped_refptr<base::MessageLoopProxy> file_thread_proxy) 111 scoped_refptr<base::MessageLoopProxy> file_thread_proxy)
105 : URLRequestJob(request), 112 : URLRequestJob(request),
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 } 213 }
207 214
208 int FileSystemURLRequestJob::GetResponseCode() const { 215 int FileSystemURLRequestJob::GetResponseCode() const {
209 if (response_info_.get()) 216 if (response_info_.get())
210 return 200; 217 return 200;
211 return URLRequestJob::GetResponseCode(); 218 return URLRequestJob::GetResponseCode();
212 } 219 }
213 220
214 void FileSystemURLRequestJob::StartAsync() { 221 void FileSystemURLRequestJob::StartAsync() {
215 if (request_) { 222 if (request_) {
216 (new FileSystemOperation(new CallbackDispatcher(this), 223 (new FileSystemOperation(CallbackDispatcher::Create(this),
217 file_thread_proxy_, 224 file_thread_proxy_,
218 file_system_context_) 225 file_system_context_)
219 )->GetMetadata(request_->url()); 226 )->GetMetadata(request_->url());
220 } 227 }
221 } 228 }
222 229
223 void FileSystemURLRequestJob::DidGetMetadata( 230 void FileSystemURLRequestJob::DidGetMetadata(
224 const base::PlatformFileInfo& file_info, 231 const base::PlatformFileInfo& file_info,
225 const FilePath& platform_path) { 232 const FilePath& platform_path) {
226 // We may have been orphaned... 233 // We may have been orphaned...
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 } 313 }
307 314
308 return false; 315 return false;
309 } 316 }
310 317
311 void FileSystemURLRequestJob::NotifyFailed(int rv) { 318 void FileSystemURLRequestJob::NotifyFailed(int rv) {
312 NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv)); 319 NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv));
313 } 320 }
314 321
315 } // namespace fileapi 322 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/fileapi/file_system_test_helper.cc ('k') | webkit/fileapi/file_system_url_request_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698