diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 20:01:24 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 20:01:24 +0000 |
commit | 4c3fe4ae337c8661c6370099bea9a5bcf5faf270 (patch) | |
tree | f9c7bc1c8eb0d775bef8b9bd3f0f3e3b74d196e8 /net/base/upload_data.h | |
parent | f8ba0bdf8fcf7dd46d3dd987685d727b3149467a (diff) | |
download | chromium_src-4c3fe4ae337c8661c6370099bea9a5bcf5faf270.zip chromium_src-4c3fe4ae337c8661c6370099bea9a5bcf5faf270.tar.gz chromium_src-4c3fe4ae337c8661c6370099bea9a5bcf5faf270.tar.bz2 |
Revert "Fix the case where the browser livelocks if we cannot open a file."
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40291 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/upload_data.h')
-rw-r--r-- | net/base/upload_data.h | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/net/base/upload_data.h b/net/base/upload_data.h index d01b435..3aab835 100644 --- a/net/base/upload_data.h +++ b/net/base/upload_data.h @@ -9,7 +9,6 @@ #include "base/basictypes.h" #include "base/file_path.h" -#include "base/platform_file.h" #include "base/ref_counted.h" #include "testing/gtest/include/gtest/gtest_prod.h" @@ -27,8 +26,7 @@ class UploadData : public base::RefCounted<UploadData> { class Element { public: Element() : type_(TYPE_BYTES), file_range_offset_(0), - file_range_length_(0), - file_(base::kInvalidPlatformFileValue), + file_range_length_(kuint64max), override_content_length_(false) { } @@ -47,42 +45,19 @@ class UploadData : public base::RefCounted<UploadData> { SetToFilePathRange(path, 0, kuint64max); } - void SetToFilePathRange(const FilePath& path, uint64 offset, uint64 length); + void SetToFilePathRange(const FilePath& path, + uint64 offset, uint64 length) { + type_ = TYPE_FILE; + file_path_ = path; + file_range_offset_ = offset; + file_range_length_ = length; + } // Returns the byte-length of the element. For files that do not exist, 0 // is returned. This is done for consistency with Mozilla. - uint64 GetContentLength() const { - if (override_content_length_) - return content_length_; - - if (type_ == TYPE_BYTES) { - return bytes_.size(); - } else { - return file_range_length_; - } - } - - // For a TYPE_FILE, return a handle to the file. The caller does not take - // ownership and should not close the file handle. - base::PlatformFile platform_file() const; - - // For a TYPE_FILE, this closes the file handle. It's a fatal error to call - // platform_file() after this. - void Close(); + uint64 GetContentLength() const; private: - // type_ == TYPE_BYTES: - // bytes_ is valid - // type_ == TYPE_FILE: - // file_path_ should always be valid. - // - // platform_file() may be invalid, in which case file_range_* are 0 and - // file_ is invalid. This occurs when we cannot open the requested file. - // - // Else, then file_range_* are within range of the length of the file - // that we found when opening the file. Also, the sum of offset and - // length will not overflow a uint64. file_ will be handle to the file. - // Allows tests to override the result of GetContentLength. void SetContentLength(uint64 content_length) { override_content_length_ = true; @@ -94,7 +69,6 @@ class UploadData : public base::RefCounted<UploadData> { FilePath file_path_; uint64 file_range_offset_; uint64 file_range_length_; - base::PlatformFile file_; bool override_content_length_; uint64 content_length_; @@ -135,9 +109,6 @@ class UploadData : public base::RefCounted<UploadData> { elements_.swap(*elements); } - // CloseFiles closes the file handles of all Elements of type TYPE_FILE. - void CloseFiles(); - // Identifies a particular upload instance, which is used by the cache to // formulate a cache key. This value should be unique across browser // sessions. A value of 0 is used to indicate an unspecified identifier. |