| Index: webkit/fileapi/file_system_url_request_job.cc
|
| ===================================================================
|
| --- webkit/fileapi/file_system_url_request_job.cc (revision 82259)
|
| +++ webkit/fileapi/file_system_url_request_job.cc (working copy)
|
| @@ -50,18 +50,17 @@
|
| }
|
|
|
| FileSystemURLRequestJob::FileSystemURLRequestJob(
|
| - URLRequest* request, FileSystemPathManager* path_manager,
|
| + URLRequest* request, FileSystemContext* file_system_context,
|
| scoped_refptr<base::MessageLoopProxy> file_thread_proxy)
|
| - : URLRequestJob(request),
|
| - path_manager_(path_manager),
|
| + : FileSystemURLRequestJobBase(request, file_system_context,
|
| + file_thread_proxy),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(
|
| io_callback_(this, &FileSystemURLRequestJob::DidRead)),
|
| stream_(NULL),
|
| is_directory_(false),
|
| - remaining_bytes_(0),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)),
|
| - file_thread_proxy_(file_thread_proxy) {
|
| + remaining_bytes_(0) {
|
| }
|
|
|
| FileSystemURLRequestJob::~FileSystemURLRequestJob() {
|
| @@ -82,7 +81,6 @@
|
| stream_->Close();
|
| stream_.reset(NULL);
|
| }
|
| -
|
| URLRequestJob::Kill();
|
| callback_factory_.RevokeAll();
|
| }
|
| @@ -148,6 +146,12 @@
|
| }
|
| }
|
|
|
| +void FileSystemURLRequestJob::DidGetLocalPath(const FilePath& local_path) {
|
| + absolute_file_path_ = local_path;
|
| + base::FileUtilProxy::GetFileInfo(file_thread_proxy_, absolute_file_path_,
|
| + callback_factory_.NewCallback(&FileSystemURLRequestJob::DidResolve));
|
| +}
|
| +
|
| void FileSystemURLRequestJob::GetResponseInfo(net::HttpResponseInfo* info) {
|
| if (response_info_.get())
|
| *info = *response_info_;
|
| @@ -159,34 +163,6 @@
|
| return URLRequestJob::GetResponseCode();
|
| }
|
|
|
| -void FileSystemURLRequestJob::StartAsync() {
|
| - GURL origin_url;
|
| - FileSystemType type;
|
| - if (!CrackFileSystemURL(request_->url(), &origin_url, &type,
|
| - &relative_file_path_)) {
|
| - NotifyFailed(net::ERR_INVALID_URL);
|
| - return;
|
| - }
|
| -
|
| - path_manager_->GetFileSystemRootPath(
|
| - origin_url, type, false, // create
|
| - callback_factory_.NewCallback(&FileSystemURLRequestJob::DidGetRootPath));
|
| -}
|
| -
|
| -void FileSystemURLRequestJob::DidGetRootPath(bool success,
|
| - const FilePath& root_path,
|
| - const std::string& name) {
|
| - if (!success) {
|
| - NotifyFailed(net::ERR_FILE_NOT_FOUND);
|
| - return;
|
| - }
|
| -
|
| - absolute_file_path_ = root_path.Append(relative_file_path_);
|
| -
|
| - base::FileUtilProxy::GetFileInfo(file_thread_proxy_, absolute_file_path_,
|
| - callback_factory_.NewCallback(&FileSystemURLRequestJob::DidResolve));
|
| -}
|
| -
|
| void FileSystemURLRequestJob::DidResolve(base::PlatformFileError error_code,
|
| const base::PlatformFileInfo& file_info) {
|
| // We may have been orphaned...
|
| @@ -231,6 +207,9 @@
|
| byte_range_.first_byte_position() + 1;
|
| DCHECK_GE(remaining_bytes_, 0);
|
|
|
| + // TODO(adamk): Please remove this ScopedAllowIO once we support async seek on
|
| + // FileStream.
|
| + base::ThreadRestrictions::ScopedAllowIO allow_io;
|
| // Do the seek at the beginning of the request.
|
| if (remaining_bytes_ > 0 &&
|
| byte_range_.first_byte_position() != 0 &&
|
| @@ -278,8 +257,4 @@
|
| return false;
|
| }
|
|
|
| -void FileSystemURLRequestJob::NotifyFailed(int rv) {
|
| - NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv));
|
| -}
|
| -
|
| } // namespace fileapi
|
|
|