pdf.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef PPAPI_CPP_PRIVATE_PDF_H_
6#define PPAPI_CPP_PRIVATE_PDF_H_
7
8#include <string>
9
10#include "ppapi/c/private/ppb_pdf.h"
11
12struct PP_BrowserFont_Trusted_Description;
13
14namespace pp {
15
16class ImageData;
17class InstanceHandle;
18class Var;
19
20class PDF {
21 public:
22  // Returns true if the required interface is available.
23  static bool IsAvailable();
24
25  static Var GetLocalizedString(const InstanceHandle& instance,
26                                PP_ResourceString string_id);
27  static ImageData GetResourceImage(const InstanceHandle& instance,
28                                    PP_ResourceImage image_id);
29  // TODO(raymes): Remove this version when the PDF code is changed to use
30  // PP_BrowserFont_Trusted_Description.
31  static PP_Resource GetFontFileWithFallback(
32      const InstanceHandle& instance,
33      const PP_FontDescription_Dev* description,
34      PP_PrivateFontCharset charset);
35  static PP_Resource GetFontFileWithFallback(
36      const InstanceHandle& instance,
37      const PP_BrowserFont_Trusted_Description* description,
38      PP_PrivateFontCharset charset);
39  static bool GetFontTableForPrivateFontFile(PP_Resource font_file,
40                                             uint32_t table,
41                                             void* output,
42                                             uint32_t* output_length);
43  static void SearchString(const InstanceHandle& instance,
44                           const unsigned short* string,
45                           const unsigned short* term,
46                           bool case_sensitive,
47                           PP_PrivateFindResult** results,
48                           int* count);
49  static void DidStartLoading(const InstanceHandle& instance);
50  static void DidStopLoading(const InstanceHandle& instance);
51  static void SetContentRestriction(const InstanceHandle& instance,
52                                    int restrictions);
53  static void HistogramPDFPageCount(const InstanceHandle& instance,
54                                    int count);
55  static void UserMetricsRecordAction(const InstanceHandle& instance,
56                                      const Var& action);
57  static void HasUnsupportedFeature(const InstanceHandle& instance);
58  static void SaveAs(const InstanceHandle& instance);
59  static void Print(const InstanceHandle& instance);
60  static bool IsFeatureEnabled(const InstanceHandle& instance,
61                               PP_PDFFeature feature);
62  static ImageData GetResourceImageForScale(const InstanceHandle& instance,
63                                            PP_ResourceImage image_id,
64                                            float scale);
65  static Var ModalPromptForPassword(const InstanceHandle& instance,
66                                    Var message);
67  static bool IsOutOfProcess(const InstanceHandle& instance);
68  static void SetSelectedText(const InstanceHandle& instance,
69                              const char* selected_text);
70  static void SetLinkUnderCursor(const InstanceHandle& instance,
71                                 const char* url);
72};
73
74}  // namespace pp
75
76#endif  // PPAPI_CPP_PRIVATE_PDF_H_
77