Home | History | Annotate | Download | only in private
      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 
     12 struct PP_BrowserFont_Trusted_Description;
     13 
     14 namespace pp {
     15 
     16 class ImageData;
     17 class InstanceHandle;
     18 class Var;
     19 
     20 class 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 };
     69 
     70 }  // namespace pp
     71 
     72 #endif  // PPAPI_CPP_PRIVATE_PDF_H_
     73