/* 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 the <code>PPB_Flash_FontFile</code> interface.
 */

[generate_thunk]

label Chrome {
  M24 = 0.1,
  M48 = 0.2
};

interface PPB_Flash_FontFile {
  /* Returns a resource identifying a font file corresponding to the given font
   * request after applying the browser-specific fallback.
   */
  PP_Resource Create(
      [in] PP_Instance instance,
      [in] PP_BrowserFont_Trusted_Description description,
      [in] PP_PrivateFontCharset charset);

  /* Determines if a given resource is Flash font file.
   */
  PP_Bool IsFlashFontFile([in] PP_Resource resource);

  /* Returns the requested font table.
   * |output_length| should pass in the size of |output|. And it will return
   * the actual length of returned data. |output| could be NULL in order to
   * query the size of the buffer size needed. In that case, the input value of
   * |output_length| is ignored.
   * Note: it is Linux only and fails directly on other platforms.
   */
  PP_Bool GetFontTable(
      [in] PP_Resource font_file,
      [in] uint32_t table,
      [out] mem_t output,
      [out] uint32_t output_length);

  /**
   * Returns whether <code>PPB_Flash_FontFile</code> is supported on Windows.
   */
  [version=0.2]
  PP_Bool IsSupportedForWindows();

};

