Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: ppapi/proxy/ppp_printing_proxy.cc

Issue 11365235: Add PPAPI permissions for file chooser, PDF, testing, video capture, and video decode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/proxy/ppb_video_decoder_proxy.cc ('k') | webkit/plugins/ppapi/plugin_module.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/proxy/ppp_printing_proxy.cc
diff --git a/ppapi/proxy/ppp_printing_proxy.cc b/ppapi/proxy/ppp_printing_proxy.cc
index 32123e87e522aeeeaa85f46db7b57088e7b5a7a5..9fc51546eb3165181ed1be4d89a18e8b4be1a9f5 100644
--- a/ppapi/proxy/ppp_printing_proxy.cc
+++ b/ppapi/proxy/ppp_printing_proxy.cc
@@ -19,7 +19,17 @@ namespace proxy {
namespace {
+bool HasPrintingPermission(PP_Instance instance) {
+ Dispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
+ if (!dispatcher)
+ return false;
+ return dispatcher->permissions().HasPermission(PERMISSION_DEV);
+}
+
uint32_t QuerySupportedFormats(PP_Instance instance) {
+ if (!HasPrintingPermission(instance))
+ return 0;
+
uint32_t result = 0;
HostDispatcher::GetForInstance(instance)->Send(
new PpapiMsg_PPPPrinting_QuerySupportedFormats(API_ID_PPP_PRINTING,
@@ -29,6 +39,9 @@ uint32_t QuerySupportedFormats(PP_Instance instance) {
int32_t Begin(PP_Instance instance,
const struct PP_PrintSettings_Dev* print_settings) {
+ if (!HasPrintingPermission(instance))
+ return 0;
+
// Settings is just serialized as a string.
std::string settings_string;
settings_string.resize(sizeof(*print_settings));
@@ -44,6 +57,9 @@ int32_t Begin(PP_Instance instance,
PP_Resource PrintPages(PP_Instance instance,
const PP_PrintPageNumberRange_Dev* page_ranges,
uint32_t page_range_count) {
+ if (!HasPrintingPermission(instance))
+ return 0;
+
std::vector<PP_PrintPageNumberRange_Dev> pages(
page_ranges, page_ranges + page_range_count);
@@ -65,11 +81,17 @@ PP_Resource PrintPages(PP_Instance instance,
}
void End(PP_Instance instance) {
+ if (!HasPrintingPermission(instance))
+ return;
+
HostDispatcher::GetForInstance(instance)->Send(
new PpapiMsg_PPPPrinting_End(API_ID_PPP_PRINTING, instance));
}
PP_Bool IsScalingDisabled(PP_Instance instance) {
+ if (!HasPrintingPermission(instance))
+ return PP_FALSE;
+
bool result = false;
HostDispatcher::GetForInstance(instance)->Send(
new PpapiMsg_PPPPrinting_IsScalingDisabled(API_ID_PPP_PRINTING,
« no previous file with comments | « ppapi/proxy/ppb_video_decoder_proxy.cc ('k') | webkit/plugins/ppapi/plugin_module.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698