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( |
| 29 PP_Instance instance, |
| 30 PP_PdfPrintPresetOptions_Dev* options) { |
| 31 PP_Bool ret = PP_FALSE; |
| 32 HostDispatcher::GetForInstance(instance) |
| 33 ->Send(new PpapiMsg_PPPPdf_PrintPresetOptions( |
| 34 API_ID_PPP_PDF, instance, options, &ret)); |
| 35 return ret; |
| 36 } |
| 37 |
28 const PPP_Pdf ppp_pdf_interface = { | 38 const PPP_Pdf ppp_pdf_interface = { |
29 &GetLinkAtPosition, | 39 &GetLinkAtPosition, |
30 &Transform, | 40 &Transform, |
| 41 &GetPrintPresetOptionsFromDocument |
31 }; | 42 }; |
32 #else | 43 #else |
33 // The NaCl plugin doesn't need the host side interface - stub it out. | 44 // The NaCl plugin doesn't need the host side interface - stub it out. |
34 const PPP_Pdf ppp_pdf_interface = {}; | 45 const PPP_Pdf ppp_pdf_interface = {}; |
35 #endif | 46 #endif |
36 | 47 |
37 } // namespace | 48 } // namespace |
38 | 49 |
39 PPP_Pdf_Proxy::PPP_Pdf_Proxy(Dispatcher* dispatcher) | 50 PPP_Pdf_Proxy::PPP_Pdf_Proxy(Dispatcher* dispatcher) |
40 : InterfaceProxy(dispatcher), | 51 : InterfaceProxy(dispatcher), |
(...skipping 12 matching lines...) Expand all Loading... |
53 return &ppp_pdf_interface; | 64 return &ppp_pdf_interface; |
54 } | 65 } |
55 | 66 |
56 bool PPP_Pdf_Proxy::OnMessageReceived(const IPC::Message& msg) { | 67 bool PPP_Pdf_Proxy::OnMessageReceived(const IPC::Message& msg) { |
57 if (!dispatcher()->IsPlugin()) | 68 if (!dispatcher()->IsPlugin()) |
58 return false; | 69 return false; |
59 | 70 |
60 bool handled = true; | 71 bool handled = true; |
61 IPC_BEGIN_MESSAGE_MAP(PPP_Pdf_Proxy, msg) | 72 IPC_BEGIN_MESSAGE_MAP(PPP_Pdf_Proxy, msg) |
62 IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Rotate, OnPluginMsgRotate) | 73 IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Rotate, OnPluginMsgRotate) |
| 74 IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_PrintPresetOptions, |
| 75 OnPluginMsgPrintPresetOptions) |
63 IPC_MESSAGE_UNHANDLED(handled = false) | 76 IPC_MESSAGE_UNHANDLED(handled = false) |
64 IPC_END_MESSAGE_MAP() | 77 IPC_END_MESSAGE_MAP() |
65 return handled; | 78 return handled; |
66 } | 79 } |
67 | 80 |
68 void PPP_Pdf_Proxy::OnPluginMsgRotate(PP_Instance instance, bool clockwise) { | 81 void PPP_Pdf_Proxy::OnPluginMsgRotate(PP_Instance instance, bool clockwise) { |
69 PP_PrivatePageTransformType type = clockwise ? | 82 PP_PrivatePageTransformType type = clockwise ? |
70 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW : | 83 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW : |
71 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW; | 84 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW; |
72 if (ppp_pdf_) | 85 if (ppp_pdf_) |
73 CallWhileUnlocked(ppp_pdf_->Transform, instance, type); | 86 CallWhileUnlocked(ppp_pdf_->Transform, instance, type); |
74 } | 87 } |
75 | 88 |
| 89 void PPP_Pdf_Proxy::OnPluginMsgPrintPresetOptions( |
| 90 PP_Instance instance, |
| 91 PP_PdfPrintPresetOptions_Dev* options, |
| 92 PP_Bool* result) { |
| 93 if (ppp_pdf_) { |
| 94 *result = CallWhileUnlocked( |
| 95 ppp_pdf_->GetPrintPresetOptionsFromDocument, instance, options); |
| 96 } |
| 97 } |
| 98 |
76 } // namespace proxy | 99 } // namespace proxy |
77 } // namespace ppapi | 100 } // namespace ppapi |
OLD | NEW |