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 "base/numerics/safe_conversions.h" |
9 #include "ppapi/c/dev/ppp_printing_dev.h" | 10 #include "ppapi/c/dev/ppp_printing_dev.h" |
10 #include "ppapi/proxy/host_dispatcher.h" | 11 #include "ppapi/proxy/host_dispatcher.h" |
11 #include "ppapi/proxy/plugin_dispatcher.h" | 12 #include "ppapi/proxy/plugin_dispatcher.h" |
12 #include "ppapi/proxy/ppapi_messages.h" | 13 #include "ppapi/proxy/ppapi_messages.h" |
13 #include "ppapi/shared_impl/ppapi_globals.h" | 14 #include "ppapi/shared_impl/ppapi_globals.h" |
14 #include "ppapi/shared_impl/proxy_lock.h" | 15 #include "ppapi/shared_impl/proxy_lock.h" |
15 #include "ppapi/shared_impl/resource_tracker.h" | 16 #include "ppapi/shared_impl/resource_tracker.h" |
16 | 17 |
17 namespace ppapi { | 18 namespace ppapi { |
18 namespace proxy { | 19 namespace proxy { |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 | 174 |
174 void PPP_Printing_Proxy::OnPluginMsgPrintPages( | 175 void PPP_Printing_Proxy::OnPluginMsgPrintPages( |
175 PP_Instance instance, | 176 PP_Instance instance, |
176 const std::vector<PP_PrintPageNumberRange_Dev>& pages, | 177 const std::vector<PP_PrintPageNumberRange_Dev>& pages, |
177 HostResource* result) { | 178 HostResource* result) { |
178 if (!ppp_printing_impl_ || pages.empty()) | 179 if (!ppp_printing_impl_ || pages.empty()) |
179 return; | 180 return; |
180 | 181 |
181 PP_Resource plugin_resource = CallWhileUnlocked( | 182 PP_Resource plugin_resource = CallWhileUnlocked( |
182 ppp_printing_impl_->PrintPages, | 183 ppp_printing_impl_->PrintPages, |
183 instance, &pages[0], pages.size()); | 184 instance, &pages[0], base::checked_cast<uint32_t>(pages.size())); |
184 ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker(); | 185 ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker(); |
185 Resource* resource_object = resource_tracker->GetResource(plugin_resource); | 186 Resource* resource_object = resource_tracker->GetResource(plugin_resource); |
186 if (!resource_object) | 187 if (!resource_object) |
187 return; | 188 return; |
188 | 189 |
189 *result = resource_object->host_resource(); | 190 *result = resource_object->host_resource(); |
190 | 191 |
191 // See PrintPages above for how refcounting works. | 192 // See PrintPages above for how refcounting works. |
192 resource_tracker->ReleaseResourceSoon(plugin_resource); | 193 resource_tracker->ReleaseResourceSoon(plugin_resource); |
193 } | 194 } |
194 | 195 |
195 void PPP_Printing_Proxy::OnPluginMsgEnd(PP_Instance instance) { | 196 void PPP_Printing_Proxy::OnPluginMsgEnd(PP_Instance instance) { |
196 if (ppp_printing_impl_) | 197 if (ppp_printing_impl_) |
197 CallWhileUnlocked(ppp_printing_impl_->End, instance); | 198 CallWhileUnlocked(ppp_printing_impl_->End, instance); |
198 } | 199 } |
199 | 200 |
200 void PPP_Printing_Proxy::OnPluginMsgIsScalingDisabled(PP_Instance instance, | 201 void PPP_Printing_Proxy::OnPluginMsgIsScalingDisabled(PP_Instance instance, |
201 bool* result) { | 202 bool* result) { |
202 if (ppp_printing_impl_) { | 203 if (ppp_printing_impl_) { |
203 *result = PP_ToBool(CallWhileUnlocked(ppp_printing_impl_->IsScalingDisabled, | 204 *result = PP_ToBool(CallWhileUnlocked(ppp_printing_impl_->IsScalingDisabled, |
204 instance)); | 205 instance)); |
205 } else { | 206 } else { |
206 *result = false; | 207 *result = false; |
207 } | 208 } |
208 } | 209 } |
209 | 210 |
210 } // namespace proxy | 211 } // namespace proxy |
211 } // namespace ppapi | 212 } // namespace ppapi |
OLD | NEW |