summaryrefslogtreecommitdiffstats
path: root/net/url_request
diff options
context:
space:
mode:
authorpinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-10 19:07:49 +0000
committerpinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-10 19:07:49 +0000
commita10cc906886dfd4f68d9ebcdf1611e973354c90b (patch)
treed99eba758a2ffe3692d8a2f8de205ca465b3f11c /net/url_request
parent5fa5f68d0674a1029658f7eef6317ccda370492a (diff)
downloadchromium_src-a10cc906886dfd4f68d9ebcdf1611e973354c90b.zip
chromium_src-a10cc906886dfd4f68d9ebcdf1611e973354c90b.tar.gz
chromium_src-a10cc906886dfd4f68d9ebcdf1611e973354c90b.tar.bz2
add file:// handling to mac and linux builds
Review URL: http://codereview.chromium.org/7230 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3232 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request')
-rw-r--r--net/url_request/url_request_file_job.cc20
-rw-r--r--net/url_request/url_request_job_manager.cc4
2 files changed, 15 insertions, 9 deletions
diff --git a/net/url_request/url_request_file_job.cc b/net/url_request/url_request_file_job.cc
index 6139827..de3e6fa 100644
--- a/net/url_request/url_request_file_job.cc
+++ b/net/url_request/url_request_file_job.cc
@@ -28,7 +28,9 @@
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
#include "net/url_request/url_request.h"
+#if defined(OS_WIN)
#include "net/url_request/url_request_file_dir_job.h"
+#endif
#if defined(OS_WIN)
class URLRequestFileJob::AsyncResolver :
@@ -74,8 +76,10 @@ URLRequestJob* URLRequestFileJob::Factory(
std::wstring file_path;
if (net::FileURLToFilePath(request->url(), &file_path)) {
if (file_path[file_path.size() - 1] == file_util::kPathSeparator) {
+#if defined(OS_WIN)
// Only directories have trailing slashes.
return new URLRequestFileDirJob(request, file_path);
+#endif
}
}
@@ -100,20 +104,22 @@ URLRequestFileJob::~URLRequestFileJob() {
}
void URLRequestFileJob::Start() {
+#if defined(OS_WIN)
// Resolve UNC paths on a background thread.
if (!file_path_.compare(0, 2, L"\\\\")) {
DCHECK(!async_resolver_);
async_resolver_ = new AsyncResolver(this);
WorkerPool::PostTask(FROM_HERE, NewRunnableMethod(
async_resolver_.get(), &AsyncResolver::Resolve, file_path_), true);
- } else {
- file_util::FileInfo file_info;
- bool exists = file_util::GetFileInfo(file_path_, &file_info);
-
- // Continue asynchronously.
- MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod(
- this, &URLRequestFileJob::DidResolve, exists, file_info));
+ return;
}
+#endif
+ file_util::FileInfo file_info;
+ bool exists = file_util::GetFileInfo(file_path_, &file_info);
+
+ // Continue asynchronously.
+ MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod(
+ this, &URLRequestFileJob::DidResolve, exists, file_info));
}
void URLRequestFileJob::Kill() {
diff --git a/net/url_request/url_request_job_manager.cc b/net/url_request/url_request_job_manager.cc
index e4c44e9..3dd7929 100644
--- a/net/url_request/url_request_job_manager.cc
+++ b/net/url_request/url_request_job_manager.cc
@@ -11,8 +11,8 @@
#include "net/base/load_flags.h"
#include "net/url_request/url_request_about_job.h"
#include "net/url_request/url_request_error_job.h"
-#if defined(OS_WIN)
#include "net/url_request/url_request_file_job.h"
+#if defined(OS_WIN)
#include "net/url_request/url_request_ftp_job.h"
#else
// TODO(playmobil): Implement on non-windows platforms.
@@ -33,8 +33,8 @@ struct SchemeToFactory {
static const SchemeToFactory kBuiltinFactories[] = {
{ "http", URLRequestHttpJob::Factory },
{ "https", URLRequestHttpJob::Factory },
-#if defined(OS_WIN)
{ "file", URLRequestFileJob::Factory },
+#if defined(OS_WIN)
{ "ftp", URLRequestFtpJob::Factory },
#else
// TODO(playmobil): Implement on non-windows platforms.