15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 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) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This file contains PPB_PDF interface. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum PP_ResourceString{ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFGETPASSWORD = 0, 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFLOADING = 1, 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCESTRING_PDFLOAD_FAILED = 2 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum PP_ResourceImage{ 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTH = 0, 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTH_HOVER = 1, 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTH_PRESSED = 2, 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTW = 3, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTW_HOVER = 4, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_FTW_PRESSED = 5, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN = 6, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_HOVER = 7, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_PRESSED = 8, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT = 9, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_HOVER = 10, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_PRESSED = 11, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_0 = 12, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_1 = 13, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_2 = 14, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_3 = 15, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_4 = 16, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_5 = 17, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_6 = 18, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_7 = 19, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_8 = 20, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_9 = 21, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_NUM_BACKGROUND = 22 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum PP_PrivateFontCharset { 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_ANSI = 0, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_DEFAULT = 1, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_SYMBOL = 2, 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_MAC = 77, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_SHIFTJIS = 128, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_HANGUL = 129, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_JOHAB = 130, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_GB2312 = 134, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_CHINESEBIG5 = 136, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_GREEK = 161, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_TURKISH = 162, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_VIETNAMESE = 163, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_HEBREW = 177, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_ARABIC = 178, 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_BALTIC = 186, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_RUSSIAN = 204, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_THAI = 222, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_EASTEUROPE = 238, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_PRIVATEFONTCHARSET_OEM = 255 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_PrivateFontFileDescription { 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) str_t face; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t weight; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool italic; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_PrivateFindResult { 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t start_index; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t length; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface PPB_PDF_0_1 { 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Returns a localized string. */ 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var GetLocalizedString( 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_ResourceString string_id); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Returns a resource image. */ 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource GetResourceImage( 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance, 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_ResourceImage image_id); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Returns a resource identifying a font file corresponding to the given font 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * request after applying the browser-specific fallback. 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Currently Linux-only. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource GetFontFileWithFallback( 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance, 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_FontDescription_Dev description, 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_PrivateFontCharset charset); 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Given a resource previously returned by GetFontFileWithFallback, returns 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * a pointer to the requested font table. Linux only. 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool GetFontTableForPrivateFontFile( 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Resource font_file, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] uint32_t table, 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [out] mem_t output, 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [out] uint32_t output_length); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Search the given string using ICU. Use PPB_Core's MemFree on results when 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * done. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SearchString( 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance, 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] mem_t string, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] mem_t term, 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Bool case_sensitive, 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [out, size_is(count)] PP_PrivateFindResult[] results, 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [out] int32_t count); 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Since WebFrame doesn't know about PPAPI requests, it'll think the page has 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * finished loading even if there are outstanding requests by the plugin. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Take this out once WebFrame knows about requests by PPAPI plugins. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void DidStartLoading( 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance); 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void DidStopLoading( 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Sets content restriction for a full-page plugin (i.e. can't copy/print). 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The value is a bitfield of ContentRestriction enums. 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetContentRestriction( 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance, 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] int32_t restrictions); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Use UMA so we know average pdf page count. */ 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void HistogramPDFPageCount( 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] int32_t count); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Notifies the browser that the given action has been performed. */ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UserMetricsRecordAction( 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Var action); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Notifies the browser that the PDF has an unsupported feature. */ 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void HasUnsupportedFeature( 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance instance); 141d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 142d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) /* Tells the browser to open a dialog box to receive a password from the 143d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * user, masking input characters. Returns the value entered by the user, or 144d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * an empty string if the user cancels instead. 145d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) */ 146d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_Var ModalPromptForPassword( 147d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) [in] PP_Instance instance, 148d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) [in] PP_Var message); 149f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 150f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) /* Returns PP_TRUE if the plugin is out of process. */ 151f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PP_Bool IsOutOfProcess( 152f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) [in] PP_Instance instance); 1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Sets the selected text of the plugin. If |selected_text| is empty, then no 1555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * text is selected. */ 1565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void SetSelectedText( 1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) [in] PP_Instance instance, 1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) [in] str_t selected_text); 1595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Sets the link under the cursor. If |url| is empty, then no link is under 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * the cursor. */ 1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void SetLinkUnderCursor( 1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) [in] PP_Instance instance, 1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) [in] str_t url); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 166