| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "chrome/browser/dom_ui/chrome_url_data_manager.h" | 5 #include "chrome/browser/dom_ui/chrome_url_data_manager.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 char* pending_buf_; | 76 char* pending_buf_; |
| 77 int pending_buf_size_; | 77 int pending_buf_size_; |
| 78 std::string mime_type_; | 78 std::string mime_type_; |
| 79 | 79 |
| 80 DISALLOW_EVIL_CONSTRUCTORS(URLRequestChromeJob); | 80 DISALLOW_EVIL_CONSTRUCTORS(URLRequestChromeJob); |
| 81 }; | 81 }; |
| 82 | 82 |
| 83 // URLRequestChromeFileJob is a URLRequestJob that acts like a file:// URL | 83 // URLRequestChromeFileJob is a URLRequestJob that acts like a file:// URL |
| 84 class URLRequestChromeFileJob : public URLRequestFileJob { | 84 class URLRequestChromeFileJob : public URLRequestFileJob { |
| 85 public: | 85 public: |
| 86 URLRequestChromeFileJob(URLRequest* request, const std::wstring& path); | 86 URLRequestChromeFileJob(URLRequest* request, const FilePath& path); |
| 87 virtual ~URLRequestChromeFileJob(); | 87 virtual ~URLRequestChromeFileJob(); |
| 88 | 88 |
| 89 private: | 89 private: |
| 90 DISALLOW_EVIL_CONSTRUCTORS(URLRequestChromeFileJob); | 90 DISALLOW_EVIL_CONSTRUCTORS(URLRequestChromeFileJob); |
| 91 }; | 91 }; |
| 92 | 92 |
| 93 void RegisterURLRequestChromeJob() { | 93 void RegisterURLRequestChromeJob() { |
| 94 // Being a standard scheme allows us to resolve relative paths | 94 // Being a standard scheme allows us to resolve relative paths |
| 95 url_util::AddStandardScheme(kChromeURLScheme); | 95 url_util::AddStandardScheme(kChromeURLScheme); |
| 96 | 96 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 &ChromeURLDataManager::DataAvailable, | 237 &ChromeURLDataManager::DataAvailable, |
| 238 request_id, scoped_refptr<RefCountedBytes>(bytes))); | 238 request_id, scoped_refptr<RefCountedBytes>(bytes))); |
| 239 } | 239 } |
| 240 | 240 |
| 241 // static | 241 // static |
| 242 URLRequestJob* ChromeURLDataManager::Factory(URLRequest* request, | 242 URLRequestJob* ChromeURLDataManager::Factory(URLRequest* request, |
| 243 const std::string& scheme) { | 243 const std::string& scheme) { |
| 244 // Try first with a file handler | 244 // Try first with a file handler |
| 245 std::wstring path; | 245 std::wstring path; |
| 246 if (ChromeURLDataManager::URLToFilePath(request->url(), &path)) | 246 if (ChromeURLDataManager::URLToFilePath(request->url(), &path)) |
| 247 return new URLRequestChromeFileJob(request, path); | 247 return new URLRequestChromeFileJob(request, |
| 248 FilePath::FromWStringHack(path)); |
| 248 | 249 |
| 249 // Fall back to using a custom handler | 250 // Fall back to using a custom handler |
| 250 return new URLRequestChromeJob(request); | 251 return new URLRequestChromeJob(request); |
| 251 } | 252 } |
| 252 | 253 |
| 253 URLRequestChromeJob::URLRequestChromeJob(URLRequest* request) | 254 URLRequestChromeJob::URLRequestChromeJob(URLRequest* request) |
| 254 : URLRequestJob(request), data_offset_(0), pending_buf_(NULL) {} | 255 : URLRequestJob(request), data_offset_(0), pending_buf_(NULL) {} |
| 255 | 256 |
| 256 URLRequestChromeJob::~URLRequestChromeJob() { | 257 URLRequestChromeJob::~URLRequestChromeJob() { |
| 257 } | 258 } |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 | 323 |
| 323 if (chrome_url_data_manager.StartRequest(request_->url(), this)) { | 324 if (chrome_url_data_manager.StartRequest(request_->url(), this)) { |
| 324 NotifyHeadersComplete(); | 325 NotifyHeadersComplete(); |
| 325 } else { | 326 } else { |
| 326 NotifyStartError(URLRequestStatus(URLRequestStatus::FAILED, | 327 NotifyStartError(URLRequestStatus(URLRequestStatus::FAILED, |
| 327 net::ERR_INVALID_URL)); | 328 net::ERR_INVALID_URL)); |
| 328 } | 329 } |
| 329 } | 330 } |
| 330 | 331 |
| 331 URLRequestChromeFileJob::URLRequestChromeFileJob(URLRequest* request, | 332 URLRequestChromeFileJob::URLRequestChromeFileJob(URLRequest* request, |
| 332 const std::wstring& path) | 333 const FilePath& path) |
| 333 : URLRequestFileJob(request) { | 334 : URLRequestFileJob(request, path) { |
| 334 // set URLRequestFileJob::file_path_ | |
| 335 this->file_path_ = FilePath::FromWStringHack(path); | |
| 336 } | 335 } |
| 337 | 336 |
| 338 URLRequestChromeFileJob::~URLRequestChromeFileJob() { } | 337 URLRequestChromeFileJob::~URLRequestChromeFileJob() { } |
| 339 | 338 |
| OLD | NEW |