summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-19 22:01:59 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-19 22:01:59 +0000
commit51a4c029715cf5bd6bd7659186ce7a368fbb40a7 (patch)
tree9e8eef378667d21a733fa73a8185079b6f7c26a0 /base
parent0fecda62ce784048c032bbe31c7aeaeb8d5cdeab (diff)
downloadchromium_src-51a4c029715cf5bd6bd7659186ce7a368fbb40a7.zip
chromium_src-51a4c029715cf5bd6bd7659186ce7a368fbb40a7.tar.gz
chromium_src-51a4c029715cf5bd6bd7659186ce7a368fbb40a7.tar.bz2
Revert 42152 - Fix the case where the browser livelocks if we cannot open a file.
If one tries to upload a file that one doesn't have read access to, the browser livelocks. It tries to read from the file, gets nothing but spins forever because it knows that it hasn't finished reading. To address this, firstly we add a check at stat() time to make sure that we can read the file. However, this doesn't take care of the case where the access() call was incorrect, or the permissions have changed under us. In this case, we replace the missing file with NULs. BUG=30850 Review URL: http://codereview.chromium.org/541022 TBR=vandebo@chromium.org Review URL: http://codereview.chromium.org/1145004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42154 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r--base/platform_file.h6
-rw-r--r--base/platform_file_posix.cc8
-rw-r--r--base/platform_file_win.cc8
3 files changed, 0 insertions, 22 deletions
diff --git a/base/platform_file.h b/base/platform_file.h
index 46ff0cc..0dbf4e4 100644
--- a/base/platform_file.h
+++ b/base/platform_file.h
@@ -6,8 +6,6 @@
#define BASE_PLATFORM_FILE_H_
#include "build/build_config.h"
-#include "base/basictypes.h"
-
#if defined(OS_WIN)
#include <windows.h>
#endif
@@ -55,10 +53,6 @@ PlatformFile CreatePlatformFile(const std::wstring& name,
// Closes a file handle
bool ClosePlatformFile(PlatformFile file);
-// Get the length of an underlying file. Returns false on error. Otherwise
-// *size is set to the length of the file, in bytes.
-bool GetPlatformFileSize(PlatformFile file, uint64* size);
-
} // namespace base
#endif // BASE_PLATFORM_FILE_H_
diff --git a/base/platform_file_posix.cc b/base/platform_file_posix.cc
index bfd40e9..46039b9 100644
--- a/base/platform_file_posix.cc
+++ b/base/platform_file_posix.cc
@@ -77,12 +77,4 @@ bool ClosePlatformFile(PlatformFile file) {
return close(file);
}
-bool GetPlatformFileSize(PlatformFile file, uint64* out_size) {
- struct stat st;
- if (fstat(file, &st))
- return false;
- *out_size = st.st_size;
- return true;
-}
-
} // namespace base
diff --git a/base/platform_file_win.cc b/base/platform_file_win.cc
index ccaee1e..1143487 100644
--- a/base/platform_file_win.cc
+++ b/base/platform_file_win.cc
@@ -75,12 +75,4 @@ bool ClosePlatformFile(PlatformFile file) {
return (CloseHandle(file) == 0);
}
-bool GetPlatformFileSize(PlatformFile file, uint64* out_size) {
- LARGE_INTEGER size;
- if (!GetFileSizeEx(file, &size))
- return false;
- *out_size = size.QuadPart;
- return true;
-}
-
} // namespace disk_cache