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

Unified Diff: webkit/plugins/ppapi/ppb_file_chooser_impl.cc

Issue 7006022: Revert 87415 - Convert more interfaces to the new thunk system. This goes up to and including (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 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 | « webkit/plugins/ppapi/ppb_file_chooser_impl.h ('k') | webkit/plugins/ppapi/ppb_file_io_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/ppb_file_chooser_impl.cc
===================================================================
--- webkit/plugins/ppapi/ppb_file_chooser_impl.cc (revision 87436)
+++ webkit/plugins/ppapi/ppb_file_chooser_impl.cc (working copy)
@@ -25,7 +25,6 @@
#include "webkit/plugins/ppapi/resource_tracker.h"
#include "webkit/glue/webkit_glue.h"
-using ppapi::thunk::PPB_FileChooser_API;
using WebKit::WebCString;
using WebKit::WebFileChooserCompletion;
using WebKit::WebFileChooserParams;
@@ -37,6 +36,53 @@
namespace {
+PP_Resource Create(PP_Instance instance_id,
+ const PP_FileChooserOptions_Dev* options) {
+ PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
+ if (!instance)
+ return 0;
+
+ if ((options->mode != PP_FILECHOOSERMODE_OPEN) &&
+ (options->mode != PP_FILECHOOSERMODE_OPENMULTIPLE))
+ return 0;
+
+ PPB_FileChooser_Impl* chooser = new PPB_FileChooser_Impl(instance, options);
+ return chooser->GetReference();
+}
+
+PP_Bool IsFileChooser(PP_Resource resource) {
+ return BoolToPPBool(!!Resource::GetAs<PPB_FileChooser_Impl>(resource));
+}
+
+int32_t Show(PP_Resource chooser_id, PP_CompletionCallback callback) {
+ scoped_refptr<PPB_FileChooser_Impl> chooser(
+ Resource::GetAs<PPB_FileChooser_Impl>(chooser_id));
+ if (!chooser)
+ return PP_ERROR_BADRESOURCE;
+
+ return chooser->Show(callback);
+}
+
+PP_Resource GetNextChosenFile(PP_Resource chooser_id) {
+ scoped_refptr<PPB_FileChooser_Impl> chooser(
+ Resource::GetAs<PPB_FileChooser_Impl>(chooser_id));
+ if (!chooser)
+ return 0;
+
+ scoped_refptr<PPB_FileRef_Impl> file_ref(chooser->GetNextChosenFile());
+ if (!file_ref)
+ return 0;
+
+ return file_ref->GetReference();
+}
+
+const PPB_FileChooser_Dev ppb_filechooser = {
+ &Create,
+ &IsFileChooser,
+ &Show,
+ &GetNextChosenFile
+};
+
class FileChooserCompletionImpl : public WebFileChooserCompletion {
public:
FileChooserCompletionImpl(PPB_FileChooser_Impl* file_chooser)
@@ -74,29 +120,14 @@
}
// static
-PP_Resource PPB_FileChooser_Impl::Create(
- PP_Instance pp_instance,
- const PP_FileChooserOptions_Dev* options) {
- PluginInstance* instance = ResourceTracker::Get()->GetInstance(pp_instance);
- if (!instance)
- return 0;
-
- if ((options->mode != PP_FILECHOOSERMODE_OPEN) &&
- (options->mode != PP_FILECHOOSERMODE_OPENMULTIPLE))
- return 0;
-
- PPB_FileChooser_Impl* chooser = new PPB_FileChooser_Impl(instance, options);
- return chooser->GetReference();
+const PPB_FileChooser_Dev* PPB_FileChooser_Impl::GetInterface() {
+ return &ppb_filechooser;
}
PPB_FileChooser_Impl* PPB_FileChooser_Impl::AsPPB_FileChooser_Impl() {
return this;
}
-PPB_FileChooser_API* PPB_FileChooser_Impl::AsPPB_FileChooser_API() {
- return this;
-}
-
void PPB_FileChooser_Impl::StoreChosenFiles(
const std::vector<std::string>& files) {
chosen_files_.clear();
@@ -145,7 +176,7 @@
callback->Run(result); // Will complete abortively if necessary.
}
-int32_t PPB_FileChooser_Impl::Show(PP_CompletionCallback callback) {
+int32_t PPB_FileChooser_Impl::Show(const PP_CompletionCallback& callback) {
int32_t rv = ValidateCallback(callback);
if (rv != PP_OK)
return rv;
@@ -166,11 +197,11 @@
return PP_OK_COMPLETIONPENDING;
}
-PP_Resource PPB_FileChooser_Impl::GetNextChosenFile() {
+scoped_refptr<PPB_FileRef_Impl> PPB_FileChooser_Impl::GetNextChosenFile() {
if (next_chosen_file_index_ >= chosen_files_.size())
- return 0;
+ return NULL;
- return chosen_files_[next_chosen_file_index_++]->GetReference();
+ return chosen_files_[next_chosen_file_index_++];
}
} // namespace ppapi
« no previous file with comments | « webkit/plugins/ppapi/ppb_file_chooser_impl.h ('k') | webkit/plugins/ppapi/ppb_file_io_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698