blob: bedb77ac4eca5fa4e7b8c29578bff27342ab1de9 [file] [log] [blame]
// Copyright (c) 2011 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.
#ifndef PPAPI_C_PRIVATE_PPB_PDF_H_
#define PPAPI_C_PRIVATE_PPB_PDF_H_
#include "ppapi/c/dev/ppb_font_dev.h"
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_var.h"
#include "ppapi/c/private/pp_private_font_charset.h"
#define PPB_PDF_INTERFACE "PPB_PDF;1"
// From the public PPB_Font_Dev file.
struct PP_FontDescription_Dev;
typedef enum {
PP_RESOURCESTRING_PDFGETPASSWORD = 0,
PP_RESOURCESTRING_PDFLOADING = 1,
PP_RESOURCESTRING_PDFLOAD_FAILED = 2,
PP_RESOURCESTRING_PDFPROGRESSLOADING = 3
} PP_ResourceString;
typedef enum {
PP_PDFFEATURE_HIDPI = 0,
PP_PDFFEATURE_PRINTING = 1
} PP_PDFFeature;
struct PP_PrivateFontFileDescription {
const char* face;
uint32_t weight;
bool italic;
};
struct PP_PrivateFindResult {
int start_index;
int length;
};
struct PPB_PDF {
// Returns a localized string.
struct PP_Var (*GetLocalizedString)(PP_Instance instance,
PP_ResourceString string_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)(
PP_Instance instance,
const struct PP_BrowserFont_Trusted_Description* description,
PP_PrivateFontCharset charset);
// Given a resource previously returned by GetFontFileWithFallback, returns
// a pointer to the requested font table. Linux only.
bool (*GetFontTableForPrivateFontFile)(PP_Resource font_file,
uint32_t table,
void* output,
uint32_t* output_length);
// Search the given string using ICU. Use PPB_Core's MemFree on results when
// done.
void (*SearchString)(
PP_Instance instance,
const unsigned short* string,
const unsigned short* term,
bool case_sensitive,
struct PP_PrivateFindResult** results,
int* 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)(PP_Instance instance);
void (*DidStopLoading)(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)(PP_Instance instance, int restrictions);
// Notifies the browser that the given action has been performed.
void (*UserMetricsRecordAction)(PP_Instance instance, struct PP_Var action);
// Notifies the browser that the PDF has an unsupported feature.
void (*HasUnsupportedFeature)(PP_Instance instance);
// Invoke SaveAs... dialog, similar to the right-click or wrench menu.
void (*SaveAs)(PP_Instance instance);
// Invoke Print dialog for plugin.
void (*Print)(PP_Instance instance);
PP_Bool(*IsFeatureEnabled)(PP_Instance instance, PP_PDFFeature feature);
// Sets the selected text of the plugin.
void(*SetSelectedText)(PP_Instance instance, const char* selected_text);
// Sets the link currently under the cursor.
void (*SetLinkUnderCursor)(PP_Instance instance, const char* url);
// Gets pointers to both the mmap'd V8 snapshot files and their sizes.
// This is needed when loading V8's initial snapshot from external files.
void (*GetV8ExternalSnapshotData)(PP_Instance instance,
const char** natives_data_out,
int* natives_size_out,
const char** snapshot_data_out,
int* snapshot_size_out);
};
#endif // PPAPI_C_PRIVATE_PPB_PDF_H_