15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PRIVATE_PPB_PDF_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PRIVATE_PPB_PDF_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/dev/ppb_font_dev.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_var.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/private/pp_private_font_charset.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_PDF_INTERFACE "PPB_PDF;1" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// From the public PPB_Font_Dev file. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_FontDescription_Dev; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFGETPASSWORD = 0, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFLOADING = 1, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFLOAD_FAILED = 2, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFPROGRESSLOADING = 3 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_ResourceString; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTP = 0, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTP_HOVER = 1, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTP_PRESSED = 2, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTW = 3, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTW_HOVER = 4, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTW_PRESSED = 5, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN = 6, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_HOVER = 7, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_PRESSED = 8, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT = 9, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_HOVER = 10, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_PRESSED = 11, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_0 = 12, 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_1 = 13, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_2 = 14, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_3 = 15, 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_4 = 16, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_5 = 17, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_6 = 18, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_7 = 19, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_8 = 20, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_9 = 21, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_NUM_BACKGROUND = 22, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_0 = 23, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_1 = 24, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_2 = 25, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_3 = 26, 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_4 = 27, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_5 = 28, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_6 = 29, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_7 = 30, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_8 = 31, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PROGRESS_BAR_BACKGROUND = 32, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PAGE_DROPSHADOW = 33, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_SAVE = 34, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_SAVE_HOVER = 35, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_SAVE_PRESSED = 36, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_PRINT = 37, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_HOVER = 38, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_PRESSED = 39, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_END = 40, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_END_HOVER = 41, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_END_PRESSED = 42, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_PAN_SCROLL_ICON = 43, 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_RESOURCEIMAGE_PDF_PAGE_INDICATOR_BACKGROUND = 44, 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_DISABLED = 45 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_ResourceImage; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_PDFFEATURE_HIDPI = 0, 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_PDFFEATURE_PRINTING = 1 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_PDFFeature; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_PrivateFontFileDescription { 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* face; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t weight; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool italic; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_PrivateFindResult { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int start_index; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int length; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_PDF { 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a localized string. 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetLocalizedString)(PP_Instance instance, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_ResourceString string_id); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a resource image. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource (*GetResourceImage)(PP_Instance instance, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_ResourceImage image_id); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a resource identifying a font file corresponding to the given font 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // request after applying the browser-specific fallback. 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Currently Linux-only. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource (*GetFontFileWithFallback)( 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const struct PP_BrowserFont_Trusted_Description* description, 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PrivateFontCharset charset); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Given a resource previously returned by GetFontFileWithFallback, returns 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a pointer to the requested font table. Linux only. 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool (*GetFontTableForPrivateFontFile)(PP_Resource font_file, 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t table, 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void* output, 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t* output_length); 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Search the given string using ICU. Use PPB_Core's MemFree on results when 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // done. 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SearchString)( 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const unsigned short* string, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const unsigned short* term, 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool case_sensitive, 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_PrivateFindResult** results, 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* count); 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Since WebFrame doesn't know about PPAPI requests, it'll think the page has 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // finished loading even if there are outstanding requests by the plugin. 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Take this out once WebFrame knows about requests by PPAPI plugins. 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*DidStartLoading)(PP_Instance instance); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*DidStopLoading)(PP_Instance instance); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sets content restriction for a full-page plugin (i.e. can't copy/print). 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The value is a bitfield of ContentRestriction enums. 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetContentRestriction)(PP_Instance instance, int restrictions); 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Use UMA so we know average pdf page count. 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*HistogramPDFPageCount)(PP_Instance instance, int count); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Notifies the browser that the given action has been performed. 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*UserMetricsRecordAction)(PP_Instance instance, struct PP_Var action); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Notifies the browser that the PDF has an unsupported feature. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*HasUnsupportedFeature)(PP_Instance instance); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoke SaveAs... dialog, similar to the right-click or wrench menu. 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SaveAs)(PP_Instance instance); 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoke Print dialog for plugin. 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*Print)(PP_Instance instance); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool(*IsFeatureEnabled)(PP_Instance instance, PP_PDFFeature feature); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a resource image appropriate for a device with |scale| density. 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns 0 (NULL resource) if there is no resource at that scale 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource (*GetResourceImageForScale)(PP_Instance instance, 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_ResourceImage image_id, 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float scale); 159d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 160d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // Invoke password dialog for plugin. 1611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci struct PP_Var (*ModalPromptForPassword)(PP_Instance instance, 1621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci struct PP_Var message); 163f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns PP_TRUE if the plugin is out of process. 1651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_Bool (*IsOutOfProcess)(PP_Instance instance); 1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sets the selected text of the plugin. 1685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void(*SetSelectedText)(PP_Instance instance, const char* selected_text); 1695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sets the link currently under the cursor. 1715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void (*SetLinkUnderCursor)(PP_Instance instance, const char* url); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // PPAPI_C_PRIVATE_PPB_PDF_H_ 175