diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-26 00:19:08 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-26 00:19:08 +0000 |
commit | 00c81625339bc701bf56a8626b5c41806a2d4b1b (patch) | |
tree | 9ecf6141302d41aed286d0aee3f8ba75dffbc325 /net/url_request/url_request_file_job.cc | |
parent | 26b937eb54b83dfe627000f11ddd9791f5996ccd (diff) | |
download | chromium_src-00c81625339bc701bf56a8626b5c41806a2d4b1b.zip chromium_src-00c81625339bc701bf56a8626b5c41806a2d4b1b.tar.gz chromium_src-00c81625339bc701bf56a8626b5c41806a2d4b1b.tar.bz2 |
Revert 63801 (broke chromeos bots) - Restrict file protocol on chromeos to certain whitelisted directories.
BUG=cros-3412
TEST=Access file: directories on chromeos
Review URL: http://codereview.chromium.org/3999005
TBR=achuith@chromium.org
Review URL: http://codereview.chromium.org/4140002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63821 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request/url_request_file_job.cc')
-rw-r--r-- | net/url_request/url_request_file_job.cc | 40 |
1 files changed, 4 insertions, 36 deletions
diff --git a/net/url_request/url_request_file_job.cc b/net/url_request/url_request_file_job.cc index c396049..f9c6559 100644 --- a/net/url_request/url_request_file_job.cc +++ b/net/url_request/url_request_file_job.cc @@ -33,7 +33,6 @@ #include "net/base/net_util.h" #include "net/http/http_util.h" #include "net/url_request/url_request.h" -#include "net/url_request/url_request_error_job.h" #include "net/url_request/url_request_file_dir_job.h" #if defined(OS_WIN) @@ -41,8 +40,8 @@ #endif #if defined(OS_WIN) -class URLRequestFileJob::AsyncResolver - : public base::RefCountedThreadSafe<URLRequestFileJob::AsyncResolver> { +class URLRequestFileJob::AsyncResolver : + public base::RefCountedThreadSafe<URLRequestFileJob::AsyncResolver> { public: explicit AsyncResolver(URLRequestFileJob* owner) : owner_(owner), owner_loop_(MessageLoop::current()) { @@ -85,15 +84,7 @@ class URLRequestFileJob::AsyncResolver // static URLRequestJob* URLRequestFileJob::Factory( URLRequest* request, const std::string& scheme) { - FilePath file_path; - net::FileURLToFilePath(request->url(), &file_path); - -#if defined(OS_CHROMEOS) - // Check file access. - if (AccessDisabled(file_path)) - return new URLRequestErrorJob(request, net::ERR_ACCESS_DENIED); -#endif // We need to decide whether to create URLRequestFileJob for file access or // URLRequestFileDirJob for directory access. To avoid accessing the @@ -101,7 +92,8 @@ URLRequestJob* URLRequestFileJob::Factory( // The code in the URLRequestFileJob::Start() method discovers that a path, // which doesn't end with a slash, should really be treated as a directory, // and it then redirects to the URLRequestFileDirJob. - if (file_util::EndsWithSeparator(file_path) && + if (net::FileURLToFilePath(request->url(), &file_path) && + file_util::EndsWithSeparator(file_path) && file_path.IsAbsolute()) return new URLRequestFileDirJob(request, file_path); @@ -346,27 +338,3 @@ bool URLRequestFileJob::IsRedirectResponse(GURL* location, return false; #endif } - -#if defined(OS_CHROMEOS) -static const char* const kLocalAccessWhiteList[] = { - "/home/chronos/user/Downloads", - "/mnt/partner_partition", - "/usr/share/chromeos-assets", - "/tmp", - "/var/log", -}; - -// static -bool URLRequestFileJob::AccessDisabled(const FilePath& file_path) { - for (size_t i = 0; i < arraysize(kLocalAccessWhiteList); ++i) { - const FilePath white_listed_path(kLocalAccessWhiteList[i]); - // FilePath::operator== should probably handle trailing seperators. - if (white_listed_path == file_path.StripTrailingSeparators() || - white_listed_path.IsParent(file_path)) { - return false; - } - } - return true; -} -#endif - |