summaryrefslogtreecommitdiffstats
path: root/net/base/upload_data.h
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-01 20:01:24 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-01 20:01:24 +0000
commit4c3fe4ae337c8661c6370099bea9a5bcf5faf270 (patch)
treef9c7bc1c8eb0d775bef8b9bd3f0f3e3b74d196e8 /net/base/upload_data.h
parentf8ba0bdf8fcf7dd46d3dd987685d727b3149467a (diff)
downloadchromium_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.h47
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.