summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_file_job.cc
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-26 00:19:08 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-26 00:19:08 +0000
commit00c81625339bc701bf56a8626b5c41806a2d4b1b (patch)
tree9ecf6141302d41aed286d0aee3f8ba75dffbc325 /net/url_request/url_request_file_job.cc
parent26b937eb54b83dfe627000f11ddd9791f5996ccd (diff)
downloadchromium_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.cc40
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
-