| Index: ppapi/proxy/printing_resource.cc
|
| diff --git a/ppapi/proxy/printing_resource.cc b/ppapi/proxy/printing_resource.cc
|
| index 9fd8fde3e369dbb5bdd0a09df7a098c36d1e574c..22950c21ecf081b05e4e4cf4de66ee4a01b4e501 100644
|
| --- a/ppapi/proxy/printing_resource.cc
|
| +++ b/ppapi/proxy/printing_resource.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "ppapi/proxy/printing_resource.h"
|
|
|
| +#include "base/bind.h"
|
| #include "ipc/ipc_message.h"
|
| #include "ppapi/c/pp_errors.h"
|
| #include "ppapi/proxy/dispatch_reply_message.h"
|
| @@ -12,10 +13,8 @@
|
| namespace ppapi {
|
| namespace proxy {
|
|
|
| -PrintingResource::PrintingResource(Connection connection,
|
| - PP_Instance instance)
|
| - : PluginResource(connection, instance),
|
| - print_settings_(NULL) {
|
| +PrintingResource::PrintingResource(Connection connection, PP_Instance instance)
|
| + : PluginResource(connection, instance) {
|
| }
|
|
|
| PrintingResource::~PrintingResource() {
|
| @@ -31,39 +30,26 @@ int32_t PrintingResource::GetDefaultPrintSettings(
|
| if (!print_settings)
|
| return PP_ERROR_BADARGUMENT;
|
|
|
| - if (TrackedCallback::IsPending(callback_))
|
| - return PP_ERROR_INPROGRESS;
|
| -
|
| if (!sent_create_to_browser())
|
| SendCreateToBrowser(PpapiHostMsg_Printing_Create());
|
|
|
| - DCHECK(!print_settings_);
|
| - print_settings_ = print_settings;
|
| - callback_ = callback;
|
| -
|
| - CallBrowser(PpapiHostMsg_Printing_GetDefaultPrintSettings());
|
| + CallBrowser<PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply>(
|
| + PpapiHostMsg_Printing_GetDefaultPrintSettings(),
|
| + base::Bind(&PrintingResource::OnPluginMsgGetDefaultPrintSettingsReply,
|
| + this, print_settings, callback));
|
| return PP_OK_COMPLETIONPENDING;
|
| }
|
|
|
| -void PrintingResource::OnReplyReceived(
|
| - const ResourceMessageReplyParams& params,
|
| - const IPC::Message& msg) {
|
| - IPC_BEGIN_MESSAGE_MAP(PrintingResource, msg)
|
| - PPAPI_DISPATCH_RESOURCE_REPLY(
|
| - PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply,
|
| - OnPluginMsgGetDefaultPrintSettingsReply)
|
| - IPC_END_MESSAGE_MAP()
|
| -}
|
| -
|
| void PrintingResource::OnPluginMsgGetDefaultPrintSettingsReply(
|
| + PP_PrintSettings_Dev* settings_out,
|
| + scoped_refptr<TrackedCallback> callback,
|
| const ResourceMessageReplyParams& params,
|
| const PP_PrintSettings_Dev& settings) {
|
| if (params.result() == PP_OK)
|
| - *print_settings_ = settings;
|
| - print_settings_ = NULL;
|
| + *settings_out = settings;
|
|
|
| // Notify the plugin of the new data.
|
| - TrackedCallback::ClearAndRun(&callback_, params.result());
|
| + TrackedCallback::ClearAndRun(&callback, params.result());
|
| // DANGER: May delete |this|!
|
| }
|
|
|
|
|