Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc |
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
index 0c42e1d8764bc17df40aad4090d64ae2eb2b7a72..1f49191c806e94413d8e1d9c476dc45c06c85efd 100644 |
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
@@ -121,6 +121,7 @@ using WebKit::WebFrame; |
using WebKit::WebInputEvent; |
using WebKit::WebPlugin; |
using WebKit::WebPluginContainer; |
+using WebKit::WebPrintScalingOption; |
using WebKit::WebScopedUserGesture; |
using WebKit::WebString; |
using WebKit::WebURLRequest; |
@@ -163,6 +164,11 @@ const ui::TextInputType kPluginDefaultTextInputType = ui::TEXT_INPUT_TYPE_TEXT; |
== static_cast<int>(np_name), \ |
mismatching_enums) |
+#define COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM(webkit_name, pp_name) \ |
+ COMPILE_ASSERT(static_cast<int>(webkit_name) \ |
+ == static_cast<int>(pp_name), \ |
+ mismatching_enums) |
+ |
// <embed>/<object> attributes. |
const char kWidth[] = "width"; |
const char kHeight[] = "height"; |
@@ -232,6 +238,14 @@ COMPILE_ASSERT_MATCHING_ENUM(TypeGrabbing, PP_MOUSECURSOR_TYPE_GRABBING); |
// Do not assert WebCursorInfo::TypeCustom == PP_CURSORTYPE_CUSTOM; |
// PP_CURSORTYPE_CUSTOM is pinned to allow new cursor types. |
+COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM(WebKit::WebPrintScaleNone, |
+ PP_PRINTSCALINGOPTION_NONE); |
+COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM( |
+ WebKit::WebPrintFitToPrintableArea, |
+ PP_PRINTSCALINGOPTION_FIT_TO_PRINTABLE_AREA); |
+COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM(WebKit::WebPrintSourceSize, |
+ PP_PRINTSCALINGOPTION_SOURCE_SIZE); |
+ |
// Sets |*security_origin| to be the WebKit security origin associated with the |
// document containing the given plugin instance. On success, returns true. If |
// the instance is invalid, returns false and |*security_origin| will be |
@@ -1135,7 +1149,10 @@ bool PluginInstance::IsPrintScalingDisabled() { |
return plugin_print_interface_->IsScalingDisabled(pp_instance()) == PP_TRUE; |
} |
-int PluginInstance::PrintBegin(const gfx::Rect& printable_area, |
+int PluginInstance::PrintBegin(const gfx::Rect& content_area, |
+ const gfx::Rect& printable_area, |
+ const gfx::Size& paper_size, |
+ WebPrintScalingOption print_scaling_option, |
int printer_dpi) { |
// Keep a reference on the stack. See NOTE above. |
scoped_refptr<PluginInstance> ref(this); |
@@ -1146,13 +1163,16 @@ int PluginInstance::PrintBegin(const gfx::Rect& printable_area, |
NOTREACHED(); |
return 0; |
} |
- |
int num_pages = 0; |
PP_PrintSettings_Dev print_settings; |
print_settings.printable_area = PP_FromGfxRect(printable_area); |
+ print_settings.content_area = PP_FromGfxRect(content_area); |
+ print_settings.paper_size = PP_FromGfxSize(paper_size); |
print_settings.dpi = printer_dpi; |
print_settings.orientation = PP_PRINTORIENTATION_NORMAL; |
print_settings.grayscale = PP_FALSE; |
+ print_settings.print_scaling_option = static_cast<PP_PrintScalingOption_Dev>( |
+ print_scaling_option); |
print_settings.format = format; |
num_pages = plugin_print_interface_->Begin(pp_instance(), |
&print_settings); |