blob: 70073a9f465e462d8ee0803d021a3c36a4717cc8 [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 defines the private <code>PPB_Flash_Clipboard</code> API used by
* Pepper Flash for reading and writing to the clipboard.
*/
label Chrome {
M17 = 3.0,
M19 = 4.0
};
#inline c
/**
* The old version string for this interface, equivalent to version 3.0.
* TODO(viettrungluu): Remove this when enough time has passed. crbug.com/104184
*/
#define PPB_FLASH_CLIPBOARD_INTERFACE_3_LEGACY "PPB_Flash_Clipboard;3"
#endinl
/**
* This enumeration contains the types of clipboards that can be accessed.
* These types correspond to clipboard types in WebKit.
*/
[assert_size(4)]
enum PP_Flash_Clipboard_Type {
/** The standard clipboard. */
PP_FLASH_CLIPBOARD_TYPE_STANDARD = 0,
/** The selection clipboard (e.g., on Linux). */
PP_FLASH_CLIPBOARD_TYPE_SELECTION = 1
};
/**
* This enumeration contains the supported clipboard data formats.
*/
[assert_size(4)]
enum PP_Flash_Clipboard_Format {
/** Indicates an invalid or unsupported clipboard data format. */
PP_FLASH_CLIPBOARD_FORMAT_INVALID = 0,
/** Indicates plain text clipboard data. */
PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT = 1,
/** Indicates HTML clipboard data. */
PP_FLASH_CLIPBOARD_FORMAT_HTML = 2
};
/**
* The <code>PPB_Flash_Clipboard</code> interface contains pointers to functions
* used by Pepper Flash to access the clipboard.
*
*/
interface PPB_Flash_Clipboard {
/**
* Checks whether a given data format is available from the given clipboard.
* Returns true if the given format is available from the given clipboard.
*/
PP_Bool IsFormatAvailable(
[in] PP_Instance instance_id,
[in] PP_Flash_Clipboard_Type clipboard_type,
[in] PP_Flash_Clipboard_Format format);
/**
* Deprecated in 4.0.
*/
[version=3.0, deprecate=4.0]
PP_Var ReadPlainText(
[in] PP_Instance instance_id,
[in] PP_Flash_Clipboard_Type clipboard_type);
/**
* Deprecated in 4.0.
*/
[version=3.0, deprecate=4.0]
int32_t WritePlainText(
[in] PP_Instance instance_id,
[in] PP_Flash_Clipboard_Type clipboard_type,
[in] PP_Var text);
/**
* Reads data in the given <code>format</code> from the clipboard. An
* undefined <code>PP_Var</code> is returned if there is an error in reading
* the clipboard data and a null <code>PP_Var</code> is returned if there is
* no data of the specified <code>format</code> to read.
*/
[version=4.0]
PP_Var ReadData([in] PP_Instance instance_id,
[in] PP_Flash_Clipboard_Type clipboard_type,
[in] PP_Flash_Clipboard_Format format);
/**
* Writes the given array of data items to the clipboard. All existing
* clipboard data in any format is erased before writing this data. Thus,
* passing an array of size 0 has the effect of clearing the clipboard without
* writing any data. Each data item in the array should have a different
* <code>PP_Flash_Clipboard_Format</code>. If multiple data items have the
* same format, only the last item with that format will be written.
* If there is an error writing any of the items in the array to the
* clipboard, none will be written and an error code is returned.
* The error code will be <code>PP_ERROR_NOSPACE</code> if the value is
* too large to be written, <code>PP_ERROR_BADARGUMENT</code> if a PP_Var
* cannot be converted into the format supplied or <code>PP_FAILED</code>
* if the format is not supported.
*/
[version=4.0]
int32_t WriteData([in] PP_Instance instance_id,
[in] PP_Flash_Clipboard_Type clipboard_type,
[in] uint32_t data_item_count,
[in, size_is(data_item_count)] PP_Flash_Clipboard_Format[] formats,
[in, size_is(data_item_count)] PP_Var[] data_items);
};