| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #ifndef WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ | 5 #ifndef WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ | 
| 6 #define WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ | 6 #define WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ | 
| 7 | 7 | 
| 8 #include <map> | 8 #include <map> | 
| 9 #include <set> | 9 #include <set> | 
| 10 #include <string> | 10 #include <string> | 
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 299   // (see has_webkit_focus_ below). | 299   // (see has_webkit_focus_ below). | 
| 300   bool PluginHasFocus() const; | 300   bool PluginHasFocus() const; | 
| 301 | 301 | 
| 302   // Reports the current plugin geometry to the plugin by calling | 302   // Reports the current plugin geometry to the plugin by calling | 
| 303   // DidChangeView. | 303   // DidChangeView. | 
| 304   void ReportGeometry(); | 304   void ReportGeometry(); | 
| 305 | 305 | 
| 306   // Queries the plugin for supported print formats and sets |format| to the | 306   // Queries the plugin for supported print formats and sets |format| to the | 
| 307   // best format to use. Returns false if the plugin does not support any | 307   // best format to use. Returns false if the plugin does not support any | 
| 308   // print format that we can handle (we can handle raster and PDF). | 308   // print format that we can handle (we can handle raster and PDF). | 
| 309   bool GetPreferredPrintOutputFormat(PP_PrintOutputFormat_Dev_0_4* format); | 309   bool GetPreferredPrintOutputFormat(PP_PrintOutputFormat_Dev* format); | 
| 310   bool PrintPDFOutput(PP_Resource print_output, WebKit::WebCanvas* canvas); | 310   bool PrintPDFOutput(PP_Resource print_output, WebKit::WebCanvas* canvas); | 
| 311   bool PrintRasterOutput(PP_Resource print_output, WebKit::WebCanvas* canvas); | 311   bool PrintRasterOutput(PP_Resource print_output, WebKit::WebCanvas* canvas); | 
| 312 #if defined(OS_WIN) | 312 #if defined(OS_WIN) | 
| 313   bool DrawJPEGToPlatformDC(const SkBitmap& bitmap, | 313   bool DrawJPEGToPlatformDC(const SkBitmap& bitmap, | 
| 314                             const gfx::Rect& printable_area, | 314                             const gfx::Rect& printable_area, | 
| 315                             WebKit::WebCanvas* canvas); | 315                             WebKit::WebCanvas* canvas); | 
| 316 #elif defined(OS_MACOSX) && !defined(USE_SKIA) | 316 #elif defined(OS_MACOSX) && !defined(USE_SKIA) | 
| 317   // Draws the given kARGB_8888_Config bitmap to the specified canvas starting | 317   // Draws the given kARGB_8888_Config bitmap to the specified canvas starting | 
| 318   // at the specified destination rect. | 318   // at the specified destination rect. | 
| 319   void DrawSkBitmapToCanvas(const SkBitmap& bitmap, WebKit::WebCanvas* canvas, | 319   void DrawSkBitmapToCanvas(const SkBitmap& bitmap, WebKit::WebCanvas* canvas, | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 394   const PPP_Selection_Dev* plugin_selection_interface_; | 394   const PPP_Selection_Dev* plugin_selection_interface_; | 
| 395   const PPP_Zoom_Dev* plugin_zoom_interface_; | 395   const PPP_Zoom_Dev* plugin_zoom_interface_; | 
| 396 | 396 | 
| 397   // Flags indicating whether we have asked this plugin instance for the | 397   // Flags indicating whether we have asked this plugin instance for the | 
| 398   // corresponding interfaces, so that we can ask only once. | 398   // corresponding interfaces, so that we can ask only once. | 
| 399   bool checked_for_plugin_input_event_interface_; | 399   bool checked_for_plugin_input_event_interface_; | 
| 400   bool checked_for_plugin_messaging_interface_; | 400   bool checked_for_plugin_messaging_interface_; | 
| 401 | 401 | 
| 402   // This is only valid between a successful PrintBegin call and a PrintEnd | 402   // This is only valid between a successful PrintBegin call and a PrintEnd | 
| 403   // call. | 403   // call. | 
| 404   PP_PrintSettings_Dev_0_4 current_print_settings_; | 404   PP_PrintSettings_Dev current_print_settings_; | 
| 405 #if defined(OS_MACOSX) | 405 #if defined(OS_MACOSX) | 
| 406   // On the Mac, when we draw the bitmap to the PDFContext, it seems necessary | 406   // On the Mac, when we draw the bitmap to the PDFContext, it seems necessary | 
| 407   // to keep the pixels valid until CGContextEndPage is called. We use this | 407   // to keep the pixels valid until CGContextEndPage is called. We use this | 
| 408   // variable to hold on to the pixels. | 408   // variable to hold on to the pixels. | 
| 409   scoped_refptr<PPB_ImageData_Impl> last_printed_page_; | 409   scoped_refptr<PPB_ImageData_Impl> last_printed_page_; | 
| 410 #endif  // defined(OS_MACOSX) | 410 #endif  // defined(OS_MACOSX) | 
| 411 #if defined(OS_LINUX) || defined(OS_WIN) | 411 #if defined(OS_LINUX) || defined(OS_WIN) | 
| 412   // When printing to PDF (print preview, Linux) the entire document goes into | 412   // When printing to PDF (print preview, Linux) the entire document goes into | 
| 413   // one metafile.  However, when users print only a subset of all the pages, | 413   // one metafile.  However, when users print only a subset of all the pages, | 
| 414   // it is impossible to know if a call to PrintPage() is the last call. | 414   // it is impossible to know if a call to PrintPage() is the last call. | 
| 415   // Thus in PrintPage(), just store the page number in |ranges_|. | 415   // Thus in PrintPage(), just store the page number in |ranges_|. | 
| 416   // The hack is in PrintEnd(), where a valid |canvas_| is preserved in | 416   // The hack is in PrintEnd(), where a valid |canvas_| is preserved in | 
| 417   // PrintWebViewHelper::PrintPages. This makes it possible to generate the | 417   // PrintWebViewHelper::PrintPages. This makes it possible to generate the | 
| 418   // entire PDF given the variables below: | 418   // entire PDF given the variables below: | 
| 419   // | 419   // | 
| 420   // The most recently used WebCanvas, guaranteed to be valid. | 420   // The most recently used WebCanvas, guaranteed to be valid. | 
| 421   SkRefPtr<WebKit::WebCanvas> canvas_; | 421   SkRefPtr<WebKit::WebCanvas> canvas_; | 
| 422   // An array of page ranges. | 422   // An array of page ranges. | 
| 423   std::vector<PP_PrintPageNumberRange_Dev> ranges_; | 423   std::vector<PP_PrintPageNumberRange_Dev> ranges_; | 
| 424 #endif  // OS_LINUX || OS_WIN | 424 #endif  // OS_LINUX || OS_WIN | 
| 425 | 425 | 
| 426   // The plugin print interface.  This nested struct adds functions needed for | 426   // The plugin print interface. | 
| 427   // backwards compatibility. | 427   const PPP_Printing_Dev* plugin_print_interface_; | 
| 428   struct PPP_Printing_Dev_Combined : public PPP_Printing_Dev_0_4 { |  | 
| 429     // Conversion constructor for the most current interface.  Sets all old |  | 
| 430     // functions to NULL, so we know not to try to use them. |  | 
| 431     PPP_Printing_Dev_Combined(const PPP_Printing_Dev_0_4& base_if) |  | 
| 432         : PPP_Printing_Dev_0_4(base_if), |  | 
| 433           QuerySupportedFormats_0_3(NULL), |  | 
| 434           Begin_0_3(NULL) {} |  | 
| 435 |  | 
| 436     // Conversion constructor for version 0.3.  Sets unsupported functions to |  | 
| 437     // NULL, so we know not to try to use them. |  | 
| 438     PPP_Printing_Dev_Combined(const PPP_Printing_Dev_0_3& old_if) |  | 
| 439         : PPP_Printing_Dev_0_4(),  // NOTE: The parens are important, to zero- |  | 
| 440                                    // initialize the struct. |  | 
| 441                                    // Except older version of g++ doesn't! |  | 
| 442                                    // So do it explicitly in the ctor. |  | 
| 443           QuerySupportedFormats_0_3(old_if.QuerySupportedFormats), |  | 
| 444           Begin_0_3(old_if.Begin) { |  | 
| 445       QuerySupportedFormats = NULL; |  | 
| 446       Begin = NULL; |  | 
| 447       PrintPages = old_if.PrintPages; |  | 
| 448       End = old_if.End; |  | 
| 449     } |  | 
| 450 |  | 
| 451     // The 0.3 version of 'QuerySupportedFormats'. |  | 
| 452     PP_PrintOutputFormat_Dev_0_3* (*QuerySupportedFormats_0_3)( |  | 
| 453         PP_Instance instance, uint32_t* format_count); |  | 
| 454     // The 0.3 version of 'Begin'. |  | 
| 455     int32_t (*Begin_0_3)(PP_Instance instance, |  | 
| 456                          const PP_PrintSettings_Dev_0_3* print_settings); |  | 
| 457   }; |  | 
| 458   scoped_ptr<PPP_Printing_Dev_Combined> plugin_print_interface_; |  | 
| 459 | 428 | 
| 460   // The plugin 3D interface. | 429   // The plugin 3D interface. | 
| 461   const PPP_Graphics3D_Dev* plugin_graphics_3d_interface_; | 430   const PPP_Graphics3D_Dev* plugin_graphics_3d_interface_; | 
| 462 | 431 | 
| 463   // Contains the cursor if it's set by the plugin. | 432   // Contains the cursor if it's set by the plugin. | 
| 464   scoped_ptr<WebKit::WebCursorInfo> cursor_; | 433   scoped_ptr<WebKit::WebCursorInfo> cursor_; | 
| 465 | 434 | 
| 466   // Set to true if this plugin thinks it will always be on top. This allows us | 435   // Set to true if this plugin thinks it will always be on top. This allows us | 
| 467   // to use a more optimized painting path in some cases. | 436   // to use a more optimized painting path in some cases. | 
| 468   bool always_on_top_; | 437   bool always_on_top_; | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 490   uint32_t input_event_mask_; | 459   uint32_t input_event_mask_; | 
| 491   uint32_t filtered_input_event_mask_; | 460   uint32_t filtered_input_event_mask_; | 
| 492 | 461 | 
| 493   DISALLOW_COPY_AND_ASSIGN(PluginInstance); | 462   DISALLOW_COPY_AND_ASSIGN(PluginInstance); | 
| 494 }; | 463 }; | 
| 495 | 464 | 
| 496 }  // namespace ppapi | 465 }  // namespace ppapi | 
| 497 }  // namespace webkit | 466 }  // namespace webkit | 
| 498 | 467 | 
| 499 #endif  // WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ | 468 #endif  // WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ | 
| OLD | NEW | 
|---|