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

Side by Side Diff: ppapi/thunk/ppb_file_ref_api.h

Issue 21966004: Pepper: Move FileRef to the "new" resource proxy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CreateInfo/DetailedInfo rename Created 7 years, 4 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 #ifndef PPAPI_THUNK_PPB_FILE_REF_API_H_ 5 #ifndef PPAPI_THUNK_PPB_FILE_REF_API_H_
6 #define PPAPI_THUNK_PPB_FILE_REF_API_H_ 6 #define PPAPI_THUNK_PPB_FILE_REF_API_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/linked_ptr.h" 10 #include "base/memory/linked_ptr.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "ppapi/c/ppb_file_ref.h" 12 #include "ppapi/c/ppb_file_ref.h"
13 #include "ppapi/shared_impl/file_ref_create_info.h"
13 #include "ppapi/thunk/ppapi_thunk_export.h" 14 #include "ppapi/thunk/ppapi_thunk_export.h"
14 15
15 namespace ppapi { 16 namespace ppapi {
16 17
17 struct PPB_FileRef_CreateInfo; 18 struct PPB_FileRefCreateInfo;
dmichael (off chromium) 2013/08/08 21:24:03 I think this needs to be FileRefCreateInfo (you pr
yzshen1 2013/08/08 23:16:21 Is it FileRefCreateInfo (no PPB_)?
teravest 2013/08/09 02:00:08 Done.
18 class TrackedCallback; 19 class TrackedCallback;
19 20
20 namespace thunk { 21 namespace thunk {
21 22
22 class PPAPI_THUNK_EXPORT PPB_FileRef_API { 23 class PPAPI_THUNK_EXPORT PPB_FileRef_API {
23 public: 24 public:
24 virtual ~PPB_FileRef_API() {} 25 virtual ~PPB_FileRef_API() {}
25 26
26 virtual PP_FileSystemType GetFileSystemType() const = 0; 27 virtual PP_FileSystemType GetFileSystemType() const = 0;
27 virtual PP_Var GetName() const = 0; 28 virtual PP_Var GetName() const = 0;
28 virtual PP_Var GetPath() const = 0; 29 virtual PP_Var GetPath() const = 0;
29 virtual PP_Resource GetParent() = 0; 30 virtual PP_Resource GetParent() = 0;
30 virtual int32_t MakeDirectory(PP_Bool make_ancestors, 31 virtual int32_t MakeDirectory(PP_Bool make_ancestors,
31 scoped_refptr<TrackedCallback> callback) = 0; 32 scoped_refptr<TrackedCallback> callback) = 0;
32 virtual int32_t Touch(PP_Time last_access_time, 33 virtual int32_t Touch(PP_Time last_access_time,
33 PP_Time last_modified_time, 34 PP_Time last_modified_time,
34 scoped_refptr<TrackedCallback> callback) = 0; 35 scoped_refptr<TrackedCallback> callback) = 0;
35 virtual int32_t Delete(scoped_refptr<TrackedCallback> callback) = 0; 36 virtual int32_t Delete(scoped_refptr<TrackedCallback> callback) = 0;
36 virtual int32_t Rename(PP_Resource new_file_ref, 37 virtual int32_t Rename(PP_Resource new_file_ref,
37 scoped_refptr<TrackedCallback> callback) = 0; 38 scoped_refptr<TrackedCallback> callback) = 0;
38 virtual int32_t Query(PP_FileInfo* info, 39 virtual int32_t Query(PP_FileInfo* info,
39 scoped_refptr<TrackedCallback> callback) = 0; 40 scoped_refptr<TrackedCallback> callback) = 0;
40 virtual int32_t ReadDirectoryEntries( 41 virtual int32_t ReadDirectoryEntries(
41 const PP_ArrayOutput& output, 42 const PP_ArrayOutput& output,
42 scoped_refptr<TrackedCallback> callback) = 0; 43 scoped_refptr<TrackedCallback> callback) = 0;
43 // We define variants of Query and ReadDirectoryEntries because
44 // 1. we need to take linked_ptr instead of raw pointers to avoid
45 // use-after-free, and 2. we don't use PP_ArrayOutput for the
46 // communication between renderers and the browser in
47 // ReadDirectoryEntries. The *InHost functions must not be called in
48 // plugins, and Query and ReadDirectoryEntries must not be called in
49 // renderers.
50 // TODO(hamaji): These functions must be removed when we move
51 // FileRef to the new resource design. http://crbug.com/225441
52 virtual int32_t QueryInHost(linked_ptr<PP_FileInfo> info,
53 scoped_refptr<TrackedCallback> callback) = 0;
54 virtual int32_t ReadDirectoryEntriesInHost(
55 linked_ptr<std::vector<ppapi::PPB_FileRef_CreateInfo> > files,
56 linked_ptr<std::vector<PP_FileType> > file_types,
57 scoped_refptr<TrackedCallback> callback) = 0;
58 44
59 // Internal function for use in proxying. Returns the internal CreateInfo 45 // Internal function for use in proxying. Returns the internal CreateInfo
60 // (the contained resource does not carry a ref on behalf of the caller). 46 // (the contained resource does not carry a ref on behalf of the caller).
61 virtual const PPB_FileRef_CreateInfo& GetCreateInfo() const = 0; 47 virtual const FileRefCreateInfo& GetCreateInfo() const = 0;
62 48
63 // Private API 49 // Private API
64 virtual PP_Var GetAbsolutePath() = 0; 50 virtual PP_Var GetAbsolutePath() = 0;
65 }; 51 };
66 52
67 } // namespace thunk 53 } // namespace thunk
68 } // namespace ppapi 54 } // namespace ppapi
69 55
70 #endif // PPAPI_THUNK_PPB_FILE_REF_API_H_ 56 #endif // PPAPI_THUNK_PPB_FILE_REF_API_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698