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

Side by Side Diff: ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_file_ref.cc

Issue 9253011: Pepper SRPC proxy style and type nits (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix bad license to pass presubmit check Created 8 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "native_client/src/shared/ppapi_proxy/plugin_ppb_file_ref.h" 5 #include "native_client/src/shared/ppapi_proxy/plugin_ppb_file_ref.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 #include <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 10
(...skipping 13 matching lines...) Expand all
24 bool IsDirectoryTraversal(const std::string& path) { 24 bool IsDirectoryTraversal(const std::string& path) {
25 bool is_directory_traversal = true; 25 bool is_directory_traversal = true;
26 // TODO(sanga): Do we need to guard against percent encoded strings as well? 26 // TODO(sanga): Do we need to guard against percent encoded strings as well?
27 if (path.find("../") == std::string::npos) 27 if (path.find("../") == std::string::npos)
28 is_directory_traversal = false; 28 is_directory_traversal = false;
29 return is_directory_traversal; 29 return is_directory_traversal;
30 } 30 }
31 31
32 PP_Resource Create(PP_Resource file_system, 32 PP_Resource Create(PP_Resource file_system,
33 const char* path) { 33 const char* path) {
34 DebugPrintf("PPB_FileRef::Create: file_system=%"NACL_PRIu32", path=%s\n", 34 DebugPrintf("PPB_FileRef::Create: file_system=%"NACL_PRId32", path=%s\n",
35 file_system, path); 35 file_system, path);
36 36
37 PP_Resource resource = kInvalidResourceId; 37 PP_Resource resource = kInvalidResourceId;
38 38
39 if (IsDirectoryTraversal(path)) 39 if (IsDirectoryTraversal(path))
40 return kInvalidResourceId; 40 return kInvalidResourceId;
41 41
42 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Create( 42 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Create(
43 GetMainSrpcChannel(), 43 GetMainSrpcChannel(),
44 file_system, 44 file_system,
45 strlen(path) + 1, // Add 1 to preserve terminating '\0' 45 strlen(path) + 1, // Add 1 to preserve terminating '\0'
46 const_cast<char*>(path), 46 const_cast<char*>(path),
47 &resource); 47 &resource);
48 DebugPrintf("PPB_FileRef::Create: %s\n", NaClSrpcErrorString(srpc_result)); 48 DebugPrintf("PPB_FileRef::Create: %s\n", NaClSrpcErrorString(srpc_result));
49 49
50 if (srpc_result == NACL_SRPC_RESULT_OK) 50 if (srpc_result == NACL_SRPC_RESULT_OK)
51 return resource; 51 return resource;
52 return kInvalidResourceId; 52 return kInvalidResourceId;
53 } 53 }
54 54
55 PP_Bool IsFileRef(PP_Resource file_ref) { 55 PP_Bool IsFileRef(PP_Resource file_ref) {
56 DebugPrintf("PPB_FileRef::IsFileRef: file_ref=%"NACL_PRIu32"\n", file_ref); 56 DebugPrintf("PPB_FileRef::IsFileRef: file_ref=%"NACL_PRId32"\n", file_ref);
57 57
58 int32_t is_file_ref = 0; 58 int32_t is_file_ref = 0;
59 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_IsFileRef( 59 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_IsFileRef(
60 GetMainSrpcChannel(), 60 GetMainSrpcChannel(),
61 file_ref, 61 file_ref,
62 &is_file_ref); 62 &is_file_ref);
63 DebugPrintf("PPB_FileRef::IsFileRef: %s\n", NaClSrpcErrorString(srpc_result)); 63 DebugPrintf("PPB_FileRef::IsFileRef: %s\n", NaClSrpcErrorString(srpc_result));
64 64
65 if ((srpc_result == NACL_SRPC_RESULT_OK) && is_file_ref) 65 if ((srpc_result == NACL_SRPC_RESULT_OK) && is_file_ref)
66 return PP_TRUE; 66 return PP_TRUE;
67 return PP_FALSE; 67 return PP_FALSE;
68 } 68 }
69 69
70 PP_FileSystemType GetFileSystemType(PP_Resource file_ref) { 70 PP_FileSystemType GetFileSystemType(PP_Resource file_ref) {
71 DebugPrintf("PPB_FileRef::GetFileSystemType: file_ref=%"NACL_PRIu32"\n", 71 DebugPrintf("PPB_FileRef::GetFileSystemType: file_ref=%"NACL_PRId32"\n",
72 file_ref); 72 file_ref);
73 73
74 int32_t file_system_type = PP_FILESYSTEMTYPE_INVALID; 74 int32_t file_system_type = PP_FILESYSTEMTYPE_INVALID;
75 NaClSrpcError srpc_result = 75 NaClSrpcError srpc_result =
76 PpbFileRefRpcClient::PPB_FileRef_GetFileSystemType( 76 PpbFileRefRpcClient::PPB_FileRef_GetFileSystemType(
77 GetMainSrpcChannel(), 77 GetMainSrpcChannel(),
78 file_ref, 78 file_ref,
79 &file_system_type); 79 &file_system_type);
80 DebugPrintf("PPB_FileRef::GetFileSystemType: %s\n", 80 DebugPrintf("PPB_FileRef::GetFileSystemType: %s\n",
81 NaClSrpcErrorString(srpc_result)); 81 NaClSrpcErrorString(srpc_result));
82 82
83 if (srpc_result == NACL_SRPC_RESULT_OK) 83 if (srpc_result == NACL_SRPC_RESULT_OK)
84 return static_cast<PP_FileSystemType>(file_system_type); 84 return static_cast<PP_FileSystemType>(file_system_type);
85 return PP_FILESYSTEMTYPE_INVALID; 85 return PP_FILESYSTEMTYPE_INVALID;
86 } 86 }
87 87
88 PP_Var GetName(PP_Resource file_ref) { 88 PP_Var GetName(PP_Resource file_ref) {
89 DebugPrintf("PPB_FileRef::GetName: file_ref=%"NACL_PRIu32"\n", file_ref); 89 DebugPrintf("PPB_FileRef::GetName: file_ref=%"NACL_PRId32"\n", file_ref);
90 90
91 PP_Var name = PP_MakeUndefined(); 91 PP_Var name = PP_MakeUndefined();
92 nacl_abi_size_t length = kMaxReturnVarSize; 92 nacl_abi_size_t length = kMaxReturnVarSize;
93 nacl::scoped_array<char> name_bytes(new char[length]); 93 nacl::scoped_array<char> name_bytes(new char[length]);
94 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_GetName( 94 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_GetName(
95 GetMainSrpcChannel(), 95 GetMainSrpcChannel(),
96 file_ref, 96 file_ref,
97 &length, 97 &length,
98 name_bytes.get()); 98 name_bytes.get());
99 DebugPrintf("PPB_FileRef::GetName: %s\n", NaClSrpcErrorString(srpc_result)); 99 DebugPrintf("PPB_FileRef::GetName: %s\n", NaClSrpcErrorString(srpc_result));
100 100
101 if (srpc_result == NACL_SRPC_RESULT_OK) { 101 if (srpc_result == NACL_SRPC_RESULT_OK) {
102 if (DeserializeTo(name_bytes.get(), length, 1 /* argc */, &name)) 102 if (DeserializeTo(name_bytes.get(), length, 1 /* argc */, &name))
103 return name; 103 return name;
104 } 104 }
105 return PP_MakeUndefined(); 105 return PP_MakeUndefined();
106 } 106 }
107 107
108 PP_Var GetPath(PP_Resource file_ref) { 108 PP_Var GetPath(PP_Resource file_ref) {
109 DebugPrintf("PPB_FileRef::GetPath: file_ref=%"NACL_PRIu32"\n", file_ref); 109 DebugPrintf("PPB_FileRef::GetPath: file_ref=%"NACL_PRId32"\n", file_ref);
110 110
111 PP_Var path = PP_MakeUndefined(); 111 PP_Var path = PP_MakeUndefined();
112 nacl_abi_size_t length = kMaxReturnVarSize; 112 nacl_abi_size_t length = kMaxReturnVarSize;
113 nacl::scoped_array<char> path_bytes(new char[length]); 113 nacl::scoped_array<char> path_bytes(new char[length]);
114 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_GetPath( 114 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_GetPath(
115 GetMainSrpcChannel(), 115 GetMainSrpcChannel(),
116 file_ref, 116 file_ref,
117 &length, 117 &length,
118 path_bytes.get()); 118 path_bytes.get());
119 DebugPrintf("PPB_FileRef::GetPath: %s\n", 119 DebugPrintf("PPB_FileRef::GetPath: %s\n",
120 NaClSrpcErrorString(srpc_result)); 120 NaClSrpcErrorString(srpc_result));
121 121
122 if (srpc_result == NACL_SRPC_RESULT_OK && 122 if (srpc_result == NACL_SRPC_RESULT_OK &&
123 DeserializeTo(path_bytes.get(), length, 1 /* argc */, &path)) { 123 DeserializeTo(path_bytes.get(), length, 1 /* argc */, &path)) {
124 return path; 124 return path;
125 } 125 }
126 return PP_MakeUndefined(); 126 return PP_MakeUndefined();
127 } 127 }
128 128
129 PP_Resource GetParent(PP_Resource file_ref) { 129 PP_Resource GetParent(PP_Resource file_ref) {
130 DebugPrintf("PPB_FileRef::GetParent: file_ref=%"NACL_PRIu32"\n", file_ref); 130 DebugPrintf("PPB_FileRef::GetParent: file_ref=%"NACL_PRId32"\n", file_ref);
131 131
132 PP_Resource parent = kInvalidResourceId; 132 PP_Resource parent = kInvalidResourceId;
133 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_GetParent( 133 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_GetParent(
134 GetMainSrpcChannel(), 134 GetMainSrpcChannel(),
135 file_ref, 135 file_ref,
136 &parent); 136 &parent);
137 DebugPrintf("PPB_FileRef::GetParent: %s\n", 137 DebugPrintf("PPB_FileRef::GetParent: %s\n",
138 NaClSrpcErrorString(srpc_result)); 138 NaClSrpcErrorString(srpc_result));
139 139
140 if (srpc_result == NACL_SRPC_RESULT_OK) 140 if (srpc_result == NACL_SRPC_RESULT_OK)
141 return parent; 141 return parent;
142 return kInvalidResourceId; 142 return kInvalidResourceId;
143 } 143 }
144 144
145 int32_t MakeDirectory(PP_Resource directory_ref, 145 int32_t MakeDirectory(PP_Resource directory_ref,
146 PP_Bool make_ancestors, 146 PP_Bool make_ancestors,
147 struct PP_CompletionCallback callback) { 147 struct PP_CompletionCallback callback) {
148 DebugPrintf("PPB_FileRef::MakeDirectory: directory_ref=%"NACL_PRIu32", " 148 DebugPrintf("PPB_FileRef::MakeDirectory: directory_ref=%"NACL_PRId32", "
149 "make_ancestors=%s\n", directory_ref, 149 "make_ancestors=%s\n", directory_ref,
150 (make_ancestors ? "true" : "false")); 150 (make_ancestors ? "true" : "false"));
151 151
152 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback); 152 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback);
153 int32_t pp_error = PP_ERROR_FAILED; 153 int32_t pp_error = PP_ERROR_FAILED;
154 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_MakeDirectory( 154 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_MakeDirectory(
155 GetMainSrpcChannel(), 155 GetMainSrpcChannel(),
156 directory_ref, 156 directory_ref,
157 make_ancestors, 157 make_ancestors,
158 callback_id, 158 callback_id,
159 &pp_error); 159 &pp_error);
160 DebugPrintf("PPB_FileRef::MakeDirectory: %s\n", 160 DebugPrintf("PPB_FileRef::MakeDirectory: %s\n",
161 NaClSrpcErrorString(srpc_result)); 161 NaClSrpcErrorString(srpc_result));
162 162
163 if (srpc_result == NACL_SRPC_RESULT_OK) 163 if (srpc_result == NACL_SRPC_RESULT_OK)
164 return MayForceCallback(callback, pp_error); 164 return MayForceCallback(callback, pp_error);
165 return PP_ERROR_FAILED; 165 return PP_ERROR_FAILED;
166 } 166 }
167 167
168 int32_t Touch(PP_Resource file_ref, 168 int32_t Touch(PP_Resource file_ref,
169 PP_Time last_access_time, 169 PP_Time last_access_time,
170 PP_Time last_modified_time, 170 PP_Time last_modified_time,
171 struct PP_CompletionCallback callback) { 171 struct PP_CompletionCallback callback) {
172 DebugPrintf("PPB_FileRef::Touch: file_ref=%"NACL_PRIu32", " 172 DebugPrintf("PPB_FileRef::Touch: file_ref=%"NACL_PRId32", "
173 "last_access_time=%lf, last_modified_time=%lf\n", 173 "last_access_time=%lf, last_modified_time=%lf\n",
174 file_ref, last_access_time, last_modified_time); 174 file_ref, last_access_time, last_modified_time);
175 175
176 if (std::isnan(last_access_time) || 176 if (std::isnan(last_access_time) ||
177 std::isnan(last_modified_time)) { 177 std::isnan(last_modified_time)) {
178 return PP_ERROR_FAILED; 178 return PP_ERROR_FAILED;
179 } 179 }
180 180
181 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback); 181 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback);
182 int32_t pp_error = PP_ERROR_FAILED; 182 int32_t pp_error = PP_ERROR_FAILED;
183 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Touch( 183 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Touch(
184 GetMainSrpcChannel(), 184 GetMainSrpcChannel(),
185 file_ref, 185 file_ref,
186 last_access_time, 186 last_access_time,
187 last_modified_time, 187 last_modified_time,
188 callback_id, 188 callback_id,
189 &pp_error); 189 &pp_error);
190 DebugPrintf("PPB_FileRef::Touch: %s\n", NaClSrpcErrorString(srpc_result)); 190 DebugPrintf("PPB_FileRef::Touch: %s\n", NaClSrpcErrorString(srpc_result));
191 191
192 if (srpc_result == NACL_SRPC_RESULT_OK) 192 if (srpc_result == NACL_SRPC_RESULT_OK)
193 return MayForceCallback(callback, pp_error); 193 return MayForceCallback(callback, pp_error);
194 return PP_ERROR_FAILED; 194 return PP_ERROR_FAILED;
195 } 195 }
196 196
197 int32_t Delete(PP_Resource file_ref, 197 int32_t Delete(PP_Resource file_ref,
198 struct PP_CompletionCallback callback) { 198 struct PP_CompletionCallback callback) {
199 DebugPrintf("PPB_FileRef::Delete: file_ref=%"NACL_PRIu32"\n", file_ref); 199 DebugPrintf("PPB_FileRef::Delete: file_ref=%"NACL_PRId32"\n", file_ref);
200 200
201 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback); 201 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback);
202 int32_t pp_error = PP_ERROR_FAILED; 202 int32_t pp_error = PP_ERROR_FAILED;
203 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Delete( 203 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Delete(
204 GetMainSrpcChannel(), 204 GetMainSrpcChannel(),
205 file_ref, 205 file_ref,
206 callback_id, 206 callback_id,
207 &pp_error); 207 &pp_error);
208 DebugPrintf("PPB_FileRef::Delete: %s\n", NaClSrpcErrorString(srpc_result)); 208 DebugPrintf("PPB_FileRef::Delete: %s\n", NaClSrpcErrorString(srpc_result));
209 209
210 if (srpc_result == NACL_SRPC_RESULT_OK) 210 if (srpc_result == NACL_SRPC_RESULT_OK)
211 return MayForceCallback(callback, pp_error); 211 return MayForceCallback(callback, pp_error);
212 return PP_ERROR_FAILED; 212 return PP_ERROR_FAILED;
213 } 213 }
214 214
215 int32_t Rename(PP_Resource file_ref, 215 int32_t Rename(PP_Resource file_ref,
216 PP_Resource new_file_ref, 216 PP_Resource new_file_ref,
217 struct PP_CompletionCallback callback) { 217 struct PP_CompletionCallback callback) {
218 DebugPrintf("PPB_FileRef::Rename: file_ref=%"NACL_PRIu32", " 218 DebugPrintf("PPB_FileRef::Rename: file_ref=%"NACL_PRId32", "
219 "new_file_ref=%"NACL_PRIu32"\n", file_ref, new_file_ref); 219 "new_file_ref=%"NACL_PRId32"\n", file_ref, new_file_ref);
220 220
221 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback); 221 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback);
222 int32_t pp_error = PP_ERROR_FAILED; 222 int32_t pp_error = PP_ERROR_FAILED;
223 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Rename( 223 NaClSrpcError srpc_result = PpbFileRefRpcClient::PPB_FileRef_Rename(
224 GetMainSrpcChannel(), 224 GetMainSrpcChannel(),
225 file_ref, 225 file_ref,
226 new_file_ref, 226 new_file_ref,
227 callback_id, 227 callback_id,
228 &pp_error); 228 &pp_error);
229 DebugPrintf("PPB_FileRef::Rename: %s\n", NaClSrpcErrorString(srpc_result)); 229 DebugPrintf("PPB_FileRef::Rename: %s\n", NaClSrpcErrorString(srpc_result));
(...skipping 13 matching lines...) Expand all
243 GetPath, 243 GetPath,
244 GetParent, 244 GetParent,
245 MakeDirectory, 245 MakeDirectory,
246 Touch, 246 Touch,
247 Delete, 247 Delete,
248 Rename 248 Rename
249 }; 249 };
250 return &file_ref_interface; 250 return &file_ref_interface;
251 } 251 }
252 } // namespace ppapi_proxy 252 } // namespace ppapi_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698