| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/filesystem/util.h" | 5 #include "components/filesystem/util.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <fcntl.h> | 8 #include <fcntl.h> |
| 9 #include <sys/stat.h> | 9 #include <sys/stat.h> |
| 10 #include <time.h> | 10 #include <time.h> |
| 11 | 11 |
| 12 #include <limits> | 12 #include <limits> |
| 13 | 13 |
| 14 #include "base/logging.h" | 14 #include "base/logging.h" |
| 15 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
| 16 #include "build/build_config.h" |
| 16 #include "mojo/public/cpp/bindings/string.h" | 17 #include "mojo/public/cpp/bindings/string.h" |
| 17 | 18 |
| 18 #if defined(OS_WIN) | 19 #if defined(OS_WIN) |
| 19 #include "base/strings/utf_string_conversions.h" | 20 #include "base/strings/utf_string_conversions.h" |
| 20 #endif | 21 #endif |
| 21 | 22 |
| 22 // module filesystem has various constants which must line up with enum values | 23 // module filesystem has various constants which must line up with enum values |
| 23 // in base::File::Flags. | 24 // in base::File::Flags. |
| 24 static_assert(filesystem::kFlagOpen == | 25 static_assert(filesystem::kFlagOpen == |
| 25 static_cast<uint32>(base::File::FLAG_OPEN), | 26 static_cast<uint32_t>(base::File::FLAG_OPEN), |
| 26 ""); | 27 ""); |
| 27 static_assert(filesystem::kFlagCreate == | 28 static_assert(filesystem::kFlagCreate == |
| 28 static_cast<uint32>(base::File::FLAG_CREATE), | 29 static_cast<uint32_t>(base::File::FLAG_CREATE), |
| 29 ""); | 30 ""); |
| 30 static_assert(filesystem::kFlagOpenAlways == | 31 static_assert(filesystem::kFlagOpenAlways == |
| 31 static_cast<uint32>(base::File::FLAG_OPEN_ALWAYS), | 32 static_cast<uint32_t>(base::File::FLAG_OPEN_ALWAYS), |
| 32 ""); | 33 ""); |
| 33 static_assert(filesystem::kCreateAlways == | 34 static_assert(filesystem::kCreateAlways == |
| 34 static_cast<uint32>(base::File::FLAG_CREATE_ALWAYS), | 35 static_cast<uint32_t>(base::File::FLAG_CREATE_ALWAYS), |
| 35 ""); | 36 ""); |
| 36 static_assert(filesystem::kFlagOpenTruncated == | 37 static_assert(filesystem::kFlagOpenTruncated == |
| 37 static_cast<uint32>(base::File::FLAG_OPEN_TRUNCATED), | 38 static_cast<uint32_t>(base::File::FLAG_OPEN_TRUNCATED), |
| 38 ""); | 39 ""); |
| 39 static_assert(filesystem::kFlagRead == | 40 static_assert(filesystem::kFlagRead == |
| 40 static_cast<uint32>(base::File::FLAG_READ), | 41 static_cast<uint32_t>(base::File::FLAG_READ), |
| 41 ""); | 42 ""); |
| 42 static_assert(filesystem::kFlagWrite == | 43 static_assert(filesystem::kFlagWrite == |
| 43 static_cast<uint32>(base::File::FLAG_WRITE), | 44 static_cast<uint32_t>(base::File::FLAG_WRITE), |
| 44 ""); | 45 ""); |
| 45 static_assert(filesystem::kFlagAppend == | 46 static_assert(filesystem::kFlagAppend == |
| 46 static_cast<uint32>(base::File::FLAG_APPEND), | 47 static_cast<uint32_t>(base::File::FLAG_APPEND), |
| 47 ""); | 48 ""); |
| 48 | 49 |
| 49 // filesystem.Error in types.mojom must be the same as base::File::Error. | 50 // filesystem.Error in types.mojom must be the same as base::File::Error. |
| 50 static_assert(static_cast<int>(filesystem::FILE_ERROR_OK) == | 51 static_assert(static_cast<int>(filesystem::FILE_ERROR_OK) == |
| 51 static_cast<int>(base::File::FILE_OK), | 52 static_cast<int>(base::File::FILE_OK), |
| 52 ""); | 53 ""); |
| 53 static_assert(static_cast<int>(filesystem::FILE_ERROR_FAILED) == | 54 static_assert(static_cast<int>(filesystem::FILE_ERROR_FAILED) == |
| 54 static_cast<int>(base::File::FILE_ERROR_FAILED), | 55 static_cast<int>(base::File::FILE_ERROR_FAILED), |
| 55 ""); | 56 ""); |
| 56 static_assert(static_cast<int>(filesystem::FILE_ERROR_IN_USE) == | 57 static_assert(static_cast<int>(filesystem::FILE_ERROR_IN_USE) == |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 if (full_path.ReferencesParent()) { | 165 if (full_path.ReferencesParent()) { |
| 165 // TODO(erg): For now, if it references a parent, we'll consider this bad. | 166 // TODO(erg): For now, if it references a parent, we'll consider this bad. |
| 166 return FILE_ERROR_ACCESS_DENIED; | 167 return FILE_ERROR_ACCESS_DENIED; |
| 167 } | 168 } |
| 168 | 169 |
| 169 *out = full_path; | 170 *out = full_path; |
| 170 return FILE_ERROR_OK; | 171 return FILE_ERROR_OK; |
| 171 } | 172 } |
| 172 | 173 |
| 173 } // namespace filesystem | 174 } // namespace filesystem |
| OLD | NEW |