OLD | NEW |
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 "ppapi/c/dev/ppb_file_chooser_dev.h" | 5 #include "ppapi/c/dev/ppb_file_chooser_dev.h" |
6 #include "ppapi/c/pp_completion_callback.h" | 6 #include "ppapi/c/pp_completion_callback.h" |
7 #include "ppapi/c/pp_errors.h" | 7 #include "ppapi/c/pp_errors.h" |
8 #include "ppapi/c/trusted/ppb_file_chooser_trusted.h" | 8 #include "ppapi/c/trusted/ppb_file_chooser_trusted.h" |
9 #include "ppapi/shared_impl/var.h" | 9 #include "ppapi/shared_impl/var.h" |
10 #include "ppapi/thunk/enter.h" | 10 #include "ppapi/thunk/enter.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 StringVar::FromPPVar(accept_mime_types); | 27 StringVar::FromPPVar(accept_mime_types); |
28 std::string str = string_var ? string_var->value() : std::string(); | 28 std::string str = string_var ? string_var->value() : std::string(); |
29 return enter.functions()->CreateFileChooser(instance, mode, str.c_str()); | 29 return enter.functions()->CreateFileChooser(instance, mode, str.c_str()); |
30 } | 30 } |
31 | 31 |
32 PP_Bool IsFileChooser(PP_Resource resource) { | 32 PP_Bool IsFileChooser(PP_Resource resource) { |
33 EnterResource<PPB_FileChooser_API> enter(resource, false); | 33 EnterResource<PPB_FileChooser_API> enter(resource, false); |
34 return PP_FromBool(enter.succeeded()); | 34 return PP_FromBool(enter.succeeded()); |
35 } | 35 } |
36 | 36 |
37 int32_t Show(PP_Resource chooser, PP_CompletionCallback callback) { | 37 int32_t Show0_5(PP_Resource chooser, PP_CompletionCallback callback) { |
38 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); | 38 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); |
39 if (enter.failed()) | 39 if (enter.failed()) |
40 return enter.retval(); | 40 return enter.retval(); |
41 return enter.SetResult(enter.object()->Show(callback)); | 41 return enter.SetResult(enter.object()->Show0_5(callback)); |
42 } | 42 } |
43 | 43 |
44 PP_Resource GetNextChosenFile(PP_Resource chooser) { | 44 PP_Resource GetNextChosenFile0_5(PP_Resource chooser) { |
45 EnterResource<PPB_FileChooser_API> enter(chooser, true); | 45 EnterResource<PPB_FileChooser_API> enter(chooser, true); |
46 if (enter.failed()) | 46 if (enter.failed()) |
47 return 0; | 47 return 0; |
48 return enter.object()->GetNextChosenFile(); | 48 return enter.object()->GetNextChosenFile(); |
49 } | 49 } |
50 | 50 |
| 51 int32_t Show(PP_Resource chooser, |
| 52 PP_ArrayOutput output, |
| 53 PP_CompletionCallback callback) { |
| 54 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); |
| 55 if (enter.failed()) |
| 56 return enter.retval(); |
| 57 return enter.SetResult(enter.object()->Show(output, callback)); |
| 58 } |
| 59 |
| 60 |
51 int32_t ShowWithoutUserGesture(PP_Resource chooser, | 61 int32_t ShowWithoutUserGesture(PP_Resource chooser, |
52 PP_Bool save_as, | 62 PP_Bool save_as, |
53 PP_Var suggested_file_name, | 63 PP_Var suggested_file_name, |
| 64 const PP_ArrayOutput* output, |
54 PP_CompletionCallback callback) { | 65 PP_CompletionCallback callback) { |
55 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); | 66 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); |
56 if (enter.failed()) | 67 if (enter.failed()) |
57 return enter.retval(); | 68 return enter.retval(); |
58 scoped_refptr<StringVar> string_var = | |
59 StringVar::FromPPVar(suggested_file_name); | |
60 std::string str = string_var ? string_var->value() : std::string(); | |
61 return enter.SetResult(enter.object()->ShowWithoutUserGesture( | 69 return enter.SetResult(enter.object()->ShowWithoutUserGesture( |
62 save_as == PP_TRUE, str.c_str(), callback)); | 70 save_as, suggested_file_name, *output, callback)); |
63 } | 71 } |
64 | 72 |
65 const PPB_FileChooser_Dev g_ppb_file_chooser_thunk = { | 73 int32_t ShowWithoutUserGesture0_5(PP_Resource chooser, |
| 74 PP_Bool save_as, |
| 75 PP_Var suggested_file_name, |
| 76 PP_CompletionCallback callback) { |
| 77 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); |
| 78 if (enter.failed()) |
| 79 return enter.retval(); |
| 80 return enter.SetResult(enter.object()->ShowWithoutUserGesture0_5( |
| 81 save_as, suggested_file_name, callback)); |
| 82 } |
| 83 |
| 84 int32_t ShowWithoutUserGesture0_6(PP_Resource chooser, |
| 85 PP_Bool save_as, |
| 86 PP_Var suggested_file_name, |
| 87 PP_ArrayOutput output, |
| 88 PP_CompletionCallback callback) { |
| 89 EnterResource<PPB_FileChooser_API> enter(chooser, callback, true); |
| 90 if (enter.failed()) |
| 91 return enter.retval(); |
| 92 return enter.SetResult(enter.object()->ShowWithoutUserGesture( |
| 93 save_as, suggested_file_name, output, callback)); |
| 94 } |
| 95 |
| 96 const PPB_FileChooser_Dev_0_5 g_ppb_file_chooser_0_5_thunk = { |
66 &Create, | 97 &Create, |
67 &IsFileChooser, | 98 &IsFileChooser, |
68 &Show, | 99 &Show0_5, |
69 &GetNextChosenFile | 100 &GetNextChosenFile0_5 |
70 }; | 101 }; |
71 | 102 |
72 const PPB_FileChooserTrusted g_ppb_file_chooser_trusted_thunk = { | 103 const PPB_FileChooser_Dev_0_6 g_ppb_file_chooser_0_6_thunk = { |
73 &ShowWithoutUserGesture | 104 &Create, |
| 105 &IsFileChooser, |
| 106 &Show |
| 107 }; |
| 108 |
| 109 const PPB_FileChooserTrusted_0_5 g_ppb_file_chooser_trusted_0_5_thunk = { |
| 110 &ShowWithoutUserGesture0_5 |
| 111 }; |
| 112 |
| 113 const PPB_FileChooserTrusted_0_6 g_ppb_file_chooser_trusted_0_6_thunk = { |
| 114 &ShowWithoutUserGesture0_6 |
74 }; | 115 }; |
75 | 116 |
76 } // namespace | 117 } // namespace |
77 | 118 |
78 const PPB_FileChooser_Dev_0_5* GetPPB_FileChooser_Dev_0_5_Thunk() { | 119 const PPB_FileChooser_Dev_0_5* GetPPB_FileChooser_Dev_0_5_Thunk() { |
79 return &g_ppb_file_chooser_thunk; | 120 return &g_ppb_file_chooser_0_5_thunk; |
| 121 } |
| 122 |
| 123 const PPB_FileChooser_Dev_0_6* GetPPB_FileChooser_Dev_0_6_Thunk() { |
| 124 return &g_ppb_file_chooser_0_6_thunk; |
80 } | 125 } |
81 | 126 |
82 const PPB_FileChooserTrusted_0_5* GetPPB_FileChooser_Trusted_0_5_Thunk() { | 127 const PPB_FileChooserTrusted_0_5* GetPPB_FileChooser_Trusted_0_5_Thunk() { |
83 return &g_ppb_file_chooser_trusted_thunk; | 128 return &g_ppb_file_chooser_trusted_0_5_thunk; |
| 129 } |
| 130 |
| 131 const PPB_FileChooserTrusted_0_6* GetPPB_FileChooser_Trusted_0_6_Thunk() { |
| 132 return &g_ppb_file_chooser_trusted_0_6_thunk; |
84 } | 133 } |
85 | 134 |
86 } // namespace thunk | 135 } // namespace thunk |
87 } // namespace ppapi | 136 } // namespace ppapi |
OLD | NEW |