Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1260)

Unified Diff: webrtc/base/win32filesystem.cc

Issue 2445733002: Delete unused features of rtc::FilesystemInterface. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/win32filesystem.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/win32filesystem.cc
diff --git a/webrtc/base/win32filesystem.cc b/webrtc/base/win32filesystem.cc
index 84574032e6892ad0f09bf7989be412cb9e47bc33..ac49c640752a52a3b7a0c632fda97ec611723291 100644
--- a/webrtc/base/win32filesystem.cc
+++ b/webrtc/base/win32filesystem.cc
@@ -72,114 +72,6 @@ FileStream *Win32Filesystem::OpenFile(const Pathname &filename,
return fs;
}
-bool Win32Filesystem::CreatePrivateFile(const Pathname &filename) {
- // To make the file private to the current user, we first must construct a
- // SECURITY_DESCRIPTOR specifying an ACL. This code is mostly based upon
- // http://msdn.microsoft.com/en-us/library/ms707085%28VS.85%29.aspx
-
- // Get the current process token.
- HANDLE process_token = INVALID_HANDLE_VALUE;
- if (!::OpenProcessToken(::GetCurrentProcess(),
- TOKEN_QUERY,
- &process_token)) {
- LOG_ERR(LS_ERROR) << "OpenProcessToken() failed";
- return false;
- }
-
- // Get the size of its TOKEN_USER structure. Return value is not checked
- // because we expect it to fail.
- DWORD token_user_size = 0;
- (void)::GetTokenInformation(process_token,
- TokenUser,
- NULL,
- 0,
- &token_user_size);
-
- // Get the TOKEN_USER structure.
- std::unique_ptr<char[]> token_user_bytes(new char[token_user_size]);
- PTOKEN_USER token_user = reinterpret_cast<PTOKEN_USER>(
- token_user_bytes.get());
- memset(token_user, 0, token_user_size);
- BOOL success = ::GetTokenInformation(process_token,
- TokenUser,
- token_user,
- token_user_size,
- &token_user_size);
- // We're now done with this.
- ::CloseHandle(process_token);
- if (!success) {
- LOG_ERR(LS_ERROR) << "GetTokenInformation() failed";
- return false;
- }
-
- if (!IsValidSid(token_user->User.Sid)) {
- LOG_ERR(LS_ERROR) << "Current process has invalid user SID";
- return false;
- }
-
- // Compute size needed for an ACL that allows access to just this user.
- int acl_size = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD) +
- GetLengthSid(token_user->User.Sid);
-
- // Allocate it.
- std::unique_ptr<char[]> acl_bytes(new char[acl_size]);
- PACL acl = reinterpret_cast<PACL>(acl_bytes.get());
- memset(acl, 0, acl_size);
- if (!::InitializeAcl(acl, acl_size, ACL_REVISION)) {
- LOG_ERR(LS_ERROR) << "InitializeAcl() failed";
- return false;
- }
-
- // Allow access to only the current user.
- if (!::AddAccessAllowedAce(acl,
- ACL_REVISION,
- GENERIC_READ | GENERIC_WRITE | STANDARD_RIGHTS_ALL,
- token_user->User.Sid)) {
- LOG_ERR(LS_ERROR) << "AddAccessAllowedAce() failed";
- return false;
- }
-
- // Now make the security descriptor.
- SECURITY_DESCRIPTOR security_descriptor;
- if (!::InitializeSecurityDescriptor(&security_descriptor,
- SECURITY_DESCRIPTOR_REVISION)) {
- LOG_ERR(LS_ERROR) << "InitializeSecurityDescriptor() failed";
- return false;
- }
-
- // Put the ACL in it.
- if (!::SetSecurityDescriptorDacl(&security_descriptor,
- TRUE,
- acl,
- FALSE)) {
- LOG_ERR(LS_ERROR) << "SetSecurityDescriptorDacl() failed";
- return false;
- }
-
- // Finally create the file.
- SECURITY_ATTRIBUTES security_attributes;
- security_attributes.nLength = sizeof(security_attributes);
- security_attributes.lpSecurityDescriptor = &security_descriptor;
- security_attributes.bInheritHandle = FALSE;
- HANDLE handle = ::CreateFile(
- ToUtf16(filename.pathname()).c_str(),
- GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
- &security_attributes,
- CREATE_NEW,
- 0,
- NULL);
- if (INVALID_HANDLE_VALUE == handle) {
- LOG_ERR(LS_ERROR) << "CreateFile() failed";
- return false;
- }
- if (!::CloseHandle(handle)) {
- LOG_ERR(LS_ERROR) << "CloseFile() failed";
- // Continue.
- }
- return true;
-}
-
bool Win32Filesystem::DeleteFile(const Pathname &filename) {
LOG(LS_INFO) << "Deleting file " << filename.pathname();
if (!IsFile(filename)) {
@@ -241,28 +133,6 @@ bool Win32Filesystem::MoveFile(const Pathname &old_path,
ToUtf16(new_path.pathname()).c_str()) != 0;
}
-bool Win32Filesystem::MoveFolder(const Pathname &old_path,
- const Pathname &new_path) {
- if (!IsFolder(old_path)) {
- ASSERT(IsFolder(old_path));
- return false;
- }
- LOG(LS_INFO) << "Moving " << old_path.pathname()
- << " to " << new_path.pathname();
- if (::MoveFile(ToUtf16(old_path.pathname()).c_str(),
- ToUtf16(new_path.pathname()).c_str()) == 0) {
- if (::GetLastError() != ERROR_NOT_SAME_DEVICE) {
- LOG_GLE(LS_ERROR) << "Failed to move file";
- return false;
- }
- if (!CopyFolder(old_path, new_path))
- return false;
- if (!DeleteFolderAndContents(old_path))
- return false;
- }
- return true;
-}
-
bool Win32Filesystem::IsFolder(const Pathname &path) {
WIN32_FILE_ATTRIBUTE_DATA data = {0};
if (0 == ::GetFileAttributesEx(ToUtf16(path.pathname()).c_str(),
@@ -423,41 +293,4 @@ bool Win32Filesystem::GetDiskFreeSpace(const Pathname& path,
}
}
-Pathname Win32Filesystem::GetCurrentDirectory() {
- Pathname cwd;
- int path_len = 0;
- std::unique_ptr<wchar_t[]> path;
- do {
- int needed = ::GetCurrentDirectory(path_len, path.get());
- if (needed == 0) {
- // Error.
- LOG_GLE(LS_ERROR) << "::GetCurrentDirectory() failed";
- return cwd; // returns empty pathname
- }
- if (needed <= path_len) {
- // It wrote successfully.
- break;
- }
- // Else need to re-alloc for "needed".
- path.reset(new wchar_t[needed]);
- path_len = needed;
- } while (true);
- cwd.SetFolder(ToUtf8(path.get()));
- return cwd;
-}
-
-// TODO: Consider overriding DeleteFolderAndContents for speed and potentially
-// better OS integration (recycle bin?)
-/*
- std::wstring temp_path16 = ToUtf16(temp_path.pathname());
- temp_path16.append(1, '*');
- temp_path16.append(1, '\0');
-
- SHFILEOPSTRUCT file_op = { 0 };
- file_op.wFunc = FO_DELETE;
- file_op.pFrom = temp_path16.c_str();
- file_op.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT;
- return (0 == SHFileOperation(&file_op));
-*/
-
} // namespace rtc
« no previous file with comments | « webrtc/base/win32filesystem.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698