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, |