OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/proxy/ppp_pdf_proxy.h" | 5 #include "ppapi/proxy/ppp_pdf_proxy.h" |
6 | 6 |
7 #include "ppapi/proxy/host_dispatcher.h" | 7 #include "ppapi/proxy/host_dispatcher.h" |
8 #include "ppapi/proxy/ppapi_messages.h" | 8 #include "ppapi/proxy/ppapi_messages.h" |
9 #include "ppapi/shared_impl/proxy_lock.h" | 9 #include "ppapi/shared_impl/proxy_lock.h" |
10 | 10 |
11 namespace ppapi { | 11 namespace ppapi { |
12 namespace proxy { | 12 namespace proxy { |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
16 #if !defined(OS_NACL) | 16 #if !defined(OS_NACL) |
17 PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) { | 17 PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) { |
18 // This isn't implemented in the out of process case. | 18 // This isn't implemented in the out of process case. |
19 return PP_MakeUndefined(); | 19 return PP_MakeUndefined(); |
20 } | 20 } |
21 | 21 |
22 void Transform(PP_Instance instance, PP_PrivatePageTransformType type) { | 22 void Transform(PP_Instance instance, PP_PrivatePageTransformType type) { |
23 bool clockwise = type == PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW; | 23 bool clockwise = type == PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW; |
24 HostDispatcher::GetForInstance(instance)->Send( | 24 HostDispatcher::GetForInstance(instance)->Send( |
25 new PpapiMsg_PPPPdf_Rotate(API_ID_PPP_PDF, instance, clockwise)); | 25 new PpapiMsg_PPPPdf_Rotate(API_ID_PPP_PDF, instance, clockwise)); |
26 } | 26 } |
27 | 27 |
| 28 PP_Bool GetPrintPresetOptionsFromDocument(PP_Instance instance, |
| 29 PP_PrintPresetOptions_Dev* options) { |
| 30 PP_Bool ret = PP_FALSE; |
| 31 HostDispatcher::GetForInstance(instance) |
| 32 ->Send(new PpapiMsg_PPPPdf_PrintPresetOptions( |
| 33 API_ID_PPP_PDF, instance, options, &ret)); |
| 34 return ret; |
| 35 } |
| 36 |
28 const PPP_Pdf ppp_pdf_interface = { | 37 const PPP_Pdf ppp_pdf_interface = { |
29 &GetLinkAtPosition, | 38 &GetLinkAtPosition, |
30 &Transform, | 39 &Transform, |
| 40 &GetPrintPresetOptionsFromDocument |
31 }; | 41 }; |
32 #else | 42 #else |
33 // The NaCl plugin doesn't need the host side interface - stub it out. | 43 // The NaCl plugin doesn't need the host side interface - stub it out. |
34 const PPP_Pdf ppp_pdf_interface = {}; | 44 const PPP_Pdf ppp_pdf_interface = {}; |
35 #endif | 45 #endif |
36 | 46 |
37 } // namespace | 47 } // namespace |
38 | 48 |
39 PPP_Pdf_Proxy::PPP_Pdf_Proxy(Dispatcher* dispatcher) | 49 PPP_Pdf_Proxy::PPP_Pdf_Proxy(Dispatcher* dispatcher) |
40 : InterfaceProxy(dispatcher), | 50 : InterfaceProxy(dispatcher), |
(...skipping 12 matching lines...) Expand all Loading... |
53 return &ppp_pdf_interface; | 63 return &ppp_pdf_interface; |
54 } | 64 } |
55 | 65 |
56 bool PPP_Pdf_Proxy::OnMessageReceived(const IPC::Message& msg) { | 66 bool PPP_Pdf_Proxy::OnMessageReceived(const IPC::Message& msg) { |
57 if (!dispatcher()->IsPlugin()) | 67 if (!dispatcher()->IsPlugin()) |
58 return false; | 68 return false; |
59 | 69 |
60 bool handled = true; | 70 bool handled = true; |
61 IPC_BEGIN_MESSAGE_MAP(PPP_Pdf_Proxy, msg) | 71 IPC_BEGIN_MESSAGE_MAP(PPP_Pdf_Proxy, msg) |
62 IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Rotate, OnPluginMsgRotate) | 72 IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Rotate, OnPluginMsgRotate) |
| 73 IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_PrintPresetOptions, |
| 74 OnPluginMsgPrintPresetOptions) |
63 IPC_MESSAGE_UNHANDLED(handled = false) | 75 IPC_MESSAGE_UNHANDLED(handled = false) |
64 IPC_END_MESSAGE_MAP() | 76 IPC_END_MESSAGE_MAP() |
65 return handled; | 77 return handled; |
66 } | 78 } |
67 | 79 |
68 void PPP_Pdf_Proxy::OnPluginMsgRotate(PP_Instance instance, bool clockwise) { | 80 void PPP_Pdf_Proxy::OnPluginMsgRotate(PP_Instance instance, bool clockwise) { |
69 PP_PrivatePageTransformType type = clockwise ? | 81 PP_PrivatePageTransformType type = clockwise ? |
70 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW : | 82 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW : |
71 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW; | 83 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW; |
72 if (ppp_pdf_) | 84 if (ppp_pdf_) |
73 CallWhileUnlocked(ppp_pdf_->Transform, instance, type); | 85 CallWhileUnlocked(ppp_pdf_->Transform, instance, type); |
74 } | 86 } |
75 | 87 |
| 88 void PPP_Pdf_Proxy::OnPluginMsgPrintPresetOptions( |
| 89 PP_Instance instance, |
| 90 PP_PrintPresetOptions_Dev* options, |
| 91 PP_Bool* result) { |
| 92 if (ppp_pdf_) { |
| 93 *result = CallWhileUnlocked( |
| 94 ppp_pdf_->GetPrintPresetOptionsFromDocument, instance, options); |
| 95 } |
| 96 } |
| 97 |
76 } // namespace proxy | 98 } // namespace proxy |
77 } // namespace ppapi | 99 } // namespace ppapi |
OLD | NEW |