blob: 20e077f346a1386d8b320216e2e353128766bdd1 [file] [log] [blame]
/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* This file contains PPB_PDF interface. */
enum PP_ResourceString{
PP_RESOURCESTRING_PDFGETPASSWORD = 0,
PP_RESOURCESTRING_PDFLOADING = 1,
PP_RESOURCESTRING_PDFLOAD_FAILED = 2
};
enum PP_ResourceImage{
PP_RESOURCEIMAGE_PDF_BUTTON_FTH = 0,
PP_RESOURCEIMAGE_PDF_BUTTON_FTH_HOVER = 1,
PP_RESOURCEIMAGE_PDF_BUTTON_FTH_PRESSED = 2,
PP_RESOURCEIMAGE_PDF_BUTTON_FTW = 3,
PP_RESOURCEIMAGE_PDF_BUTTON_FTW_HOVER = 4,
PP_RESOURCEIMAGE_PDF_BUTTON_FTW_PRESSED = 5,
PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN = 6,
PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_HOVER = 7,
PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_PRESSED = 8,
PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT = 9,
PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_HOVER = 10,
PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_PRESSED = 11,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_0 = 12,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_1 = 13,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_2 = 14,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_3 = 15,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_4 = 16,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_5 = 17,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_6 = 18,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_7 = 19,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_8 = 20,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_9 = 21,
PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_NUM_BACKGROUND = 22
};
enum PP_PrivateFontCharset {
PP_PRIVATEFONTCHARSET_ANSI = 0,
PP_PRIVATEFONTCHARSET_DEFAULT = 1,
PP_PRIVATEFONTCHARSET_SYMBOL = 2,
PP_PRIVATEFONTCHARSET_MAC = 77,
PP_PRIVATEFONTCHARSET_SHIFTJIS = 128,
PP_PRIVATEFONTCHARSET_HANGUL = 129,
PP_PRIVATEFONTCHARSET_JOHAB = 130,
PP_PRIVATEFONTCHARSET_GB2312 = 134,
PP_PRIVATEFONTCHARSET_CHINESEBIG5 = 136,
PP_PRIVATEFONTCHARSET_GREEK = 161,
PP_PRIVATEFONTCHARSET_TURKISH = 162,
PP_PRIVATEFONTCHARSET_VIETNAMESE = 163,
PP_PRIVATEFONTCHARSET_HEBREW = 177,
PP_PRIVATEFONTCHARSET_ARABIC = 178,
PP_PRIVATEFONTCHARSET_BALTIC = 186,
PP_PRIVATEFONTCHARSET_RUSSIAN = 204,
PP_PRIVATEFONTCHARSET_THAI = 222,
PP_PRIVATEFONTCHARSET_EASTEUROPE = 238,
PP_PRIVATEFONTCHARSET_OEM = 255
};
struct PP_PrivateFontFileDescription {
str_t face;
uint32_t weight;
PP_Bool italic;
};
struct PP_PrivateFindResult {
int32_t start_index;
int32_t length;
};
interface PPB_PDF_0_1 {
/* Returns a localized string. */
PP_Var GetLocalizedString(
[in] PP_Instance instance,
[in] PP_ResourceString string_id);
/* Returns a resource image. */
PP_Resource GetResourceImage(
[in] PP_Instance instance,
[in] PP_ResourceImage image_id);
/* Returns a resource identifying a font file corresponding to the given font
* request after applying the browser-specific fallback.
*
* Currently Linux-only.
*/
PP_Resource GetFontFileWithFallback(
[in] PP_Instance instance,
[in] PP_FontDescription_Dev description,
[in] PP_PrivateFontCharset charset);
/* Given a resource previously returned by GetFontFileWithFallback, returns
* a pointer to the requested font table. Linux only.
*/
PP_Bool GetFontTableForPrivateFontFile(
[in] PP_Resource font_file,
[in] uint32_t table,
[out] mem_t output,
[out] uint32_t output_length);
/* Search the given string using ICU. Use PPB_Core's MemFree on results when
* done.
*/
void SearchString(
[in] PP_Instance instance,
[in] mem_t string,
[in] mem_t term,
[in] PP_Bool case_sensitive,
[out, size_is(count)] PP_PrivateFindResult[] results,
[out] int32_t count);
/* Since WebFrame doesn't know about PPAPI requests, it'll think the page has
* finished loading even if there are outstanding requests by the plugin.
* Take this out once WebFrame knows about requests by PPAPI plugins.
*/
void DidStartLoading(
[in] PP_Instance instance);
void DidStopLoading(
[in] PP_Instance instance);
/* Sets content restriction for a full-page plugin (i.e. can't copy/print).
* The value is a bitfield of ContentRestriction enums.
*/
void SetContentRestriction(
[in] PP_Instance instance,
[in] int32_t restrictions);
/* Use UMA so we know average pdf page count. */
void HistogramPDFPageCount(
[in] int32_t count);
/* Notifies the browser that the given action has been performed. */
void UserMetricsRecordAction(
[in] PP_Var action);
/* Notifies the browser that the PDF has an unsupported feature. */
void HasUnsupportedFeature(
[in] PP_Instance instance);
/* Tells the browser to open a dialog box to receive a password from the
* user, masking input characters. Returns the value entered by the user, or
* an empty string if the user cancels instead.
*/
PP_Var ModalPromptForPassword(
[in] PP_Instance instance,
[in] PP_Var message);
/* Returns PP_TRUE if the plugin is out of process. */
PP_Bool IsOutOfProcess(
[in] PP_Instance instance);
/* Sets the selected text of the plugin. If |selected_text| is empty, then no
* text is selected. */
void SetSelectedText(
[in] PP_Instance instance,
[in] str_t selected_text);
/* Sets the link under the cursor. If |url| is empty, then no link is under
* the cursor. */
void SetLinkUnderCursor(
[in] PP_Instance instance,
[in] str_t url);
};