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/proxy/ppp_printing_proxy.h" | 5 #include "ppapi/proxy/ppp_printing_proxy.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include "ppapi/c/dev/ppp_printing_dev.h" | 9 #include "ppapi/c/dev/ppp_printing_dev.h" |
10 #include "ppapi/proxy/host_dispatcher.h" | 10 #include "ppapi/proxy/host_dispatcher.h" |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 void PPP_Printing_Proxy::OnPluginMsgBegin(PP_Instance instance, | 160 void PPP_Printing_Proxy::OnPluginMsgBegin(PP_Instance instance, |
161 const std::string& settings_string, | 161 const std::string& settings_string, |
162 int32_t* result) { | 162 int32_t* result) { |
163 *result = 0; | 163 *result = 0; |
164 | 164 |
165 PP_PrintSettings_Dev settings; | 165 PP_PrintSettings_Dev settings; |
166 if (settings_string.size() != sizeof(settings)) | 166 if (settings_string.size() != sizeof(settings)) |
167 return; | 167 return; |
168 memcpy(&settings, &settings_string[0], sizeof(settings)); | 168 memcpy(&settings, &settings_string[0], sizeof(settings)); |
169 | 169 |
170 if (ppp_printing_impl_) { | 170 if (ppp_printing_impl_) |
171 *result = CallWhileUnlocked(ppp_printing_impl_->Begin, | 171 *result = CallWhileUnlocked(ppp_printing_impl_->Begin, instance, &settings); |
172 instance, | |
173 const_cast<const PP_PrintSettings_Dev*>(&settings)); | |
174 } | |
175 } | 172 } |
176 | 173 |
177 void PPP_Printing_Proxy::OnPluginMsgPrintPages( | 174 void PPP_Printing_Proxy::OnPluginMsgPrintPages( |
178 PP_Instance instance, | 175 PP_Instance instance, |
179 const std::vector<PP_PrintPageNumberRange_Dev>& pages, | 176 const std::vector<PP_PrintPageNumberRange_Dev>& pages, |
180 HostResource* result) { | 177 HostResource* result) { |
181 if (!ppp_printing_impl_ || pages.empty()) | 178 if (!ppp_printing_impl_ || pages.empty()) |
182 return; | 179 return; |
183 | 180 |
184 PP_Resource plugin_resource = CallWhileUnlocked( | 181 PP_Resource plugin_resource = CallWhileUnlocked( |
185 ppp_printing_impl_->PrintPages, | 182 ppp_printing_impl_->PrintPages, |
186 instance, &pages[0], static_cast<uint32_t>(pages.size())); | 183 instance, &pages[0], pages.size()); |
187 ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker(); | 184 ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker(); |
188 Resource* resource_object = resource_tracker->GetResource(plugin_resource); | 185 Resource* resource_object = resource_tracker->GetResource(plugin_resource); |
189 if (!resource_object) | 186 if (!resource_object) |
190 return; | 187 return; |
191 | 188 |
192 *result = resource_object->host_resource(); | 189 *result = resource_object->host_resource(); |
193 | 190 |
194 // See PrintPages above for how refcounting works. | 191 // See PrintPages above for how refcounting works. |
195 resource_tracker->ReleaseResourceSoon(plugin_resource); | 192 resource_tracker->ReleaseResourceSoon(plugin_resource); |
196 } | 193 } |
197 | 194 |
198 void PPP_Printing_Proxy::OnPluginMsgEnd(PP_Instance instance) { | 195 void PPP_Printing_Proxy::OnPluginMsgEnd(PP_Instance instance) { |
199 if (ppp_printing_impl_) | 196 if (ppp_printing_impl_) |
200 CallWhileUnlocked(ppp_printing_impl_->End, instance); | 197 CallWhileUnlocked(ppp_printing_impl_->End, instance); |
201 } | 198 } |
202 | 199 |
203 void PPP_Printing_Proxy::OnPluginMsgIsScalingDisabled(PP_Instance instance, | 200 void PPP_Printing_Proxy::OnPluginMsgIsScalingDisabled(PP_Instance instance, |
204 bool* result) { | 201 bool* result) { |
205 if (ppp_printing_impl_) { | 202 if (ppp_printing_impl_) { |
206 *result = PP_ToBool(CallWhileUnlocked(ppp_printing_impl_->IsScalingDisabled, | 203 *result = PP_ToBool(CallWhileUnlocked(ppp_printing_impl_->IsScalingDisabled, |
207 instance)); | 204 instance)); |
208 } else { | 205 } else { |
209 *result = false; | 206 *result = false; |
210 } | 207 } |
211 } | 208 } |
212 | 209 |
213 } // namespace proxy | 210 } // namespace proxy |
214 } // namespace ppapi | 211 } // namespace ppapi |
OLD | NEW |