| OLD | NEW |
| 1 // Copyright (c) 20010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 20010 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/blob_url_request_job.h" | 5 #include "webkit/blob/blob_url_request_job.h" |
| 6 | 6 |
| 7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/file_util_proxy.h" | 9 #include "base/file_util_proxy.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 base::FileUtilProxy::GetFileInfo( | 98 base::FileUtilProxy::GetFileInfo( |
| 99 file_thread_proxy_, | 99 file_thread_proxy_, |
| 100 file_path, | 100 file_path, |
| 101 callback_factory_.NewCallback(&BlobURLRequestJob::DidResolve)); | 101 callback_factory_.NewCallback(&BlobURLRequestJob::DidResolve)); |
| 102 return; | 102 return; |
| 103 } | 103 } |
| 104 | 104 |
| 105 // Otherwise, we use current thread, i.e. IO thread, as this is the case when | 105 // Otherwise, we use current thread, i.e. IO thread, as this is the case when |
| 106 // we run the unittest or test shell. | 106 // we run the unittest or test shell. |
| 107 // TODO(jianli): Consider using the proxy of current thread. | 107 // TODO(jianli): Consider using the proxy of current thread. |
| 108 file_util::FileInfo file_info; | 108 base::PlatformFileInfo file_info; |
| 109 bool exists = file_util::GetFileInfo(file_path, &file_info); | 109 bool exists = file_util::GetFileInfo(file_path, &file_info); |
| 110 | 110 |
| 111 // Continue asynchronously. | 111 // Continue asynchronously. |
| 112 MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( | 112 MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( |
| 113 this, &BlobURLRequestJob::DidResolve, | 113 this, &BlobURLRequestJob::DidResolve, |
| 114 (exists ? base::PLATFORM_FILE_OK : base::PLATFORM_FILE_ERROR_NOT_FOUND), | 114 (exists ? base::PLATFORM_FILE_OK : base::PLATFORM_FILE_ERROR_NOT_FOUND), |
| 115 file_info)); | 115 file_info)); |
| 116 } | 116 } |
| 117 | 117 |
| 118 void BlobURLRequestJob::DidResolve(base::PlatformFileError rv, | 118 void BlobURLRequestJob::DidResolve(base::PlatformFileError rv, |
| 119 const file_util::FileInfo& file_info) { | 119 const base::PlatformFileInfo& file_info) { |
| 120 // We may have been orphaned... | 120 // We may have been orphaned... |
| 121 if (!request_) | 121 if (!request_) |
| 122 return; | 122 return; |
| 123 | 123 |
| 124 // If an error occured, bail out. | 124 // If an error occured, bail out. |
| 125 if (rv == base::PLATFORM_FILE_ERROR_NOT_FOUND) { | 125 if (rv == base::PLATFORM_FILE_ERROR_NOT_FOUND) { |
| 126 NotifyFailure(net::ERR_FILE_NOT_FOUND); | 126 NotifyFailure(net::ERR_FILE_NOT_FOUND); |
| 127 return; | 127 return; |
| 128 } else if (rv != base::PLATFORM_FILE_OK) { | 128 } else if (rv != base::PLATFORM_FILE_OK) { |
| 129 NotifyFailure(net::ERR_FAILED); | 129 NotifyFailure(net::ERR_FAILED); |
| (...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 // We don't support multiple range requests in one single URL request, | 532 // We don't support multiple range requests in one single URL request, |
| 533 // because we need to do multipart encoding here. | 533 // because we need to do multipart encoding here. |
| 534 // TODO(jianli): Support multipart byte range requests. | 534 // TODO(jianli): Support multipart byte range requests. |
| 535 NotifyFailure(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE); | 535 NotifyFailure(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE); |
| 536 } | 536 } |
| 537 } | 537 } |
| 538 } | 538 } |
| 539 } | 539 } |
| 540 | 540 |
| 541 } // namespace webkit_blob | 541 } // namespace webkit_blob |
| OLD | NEW |