1 /* Copyright (c) 2012 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 6 /** 7 * This file defines the private <code>PPB_Flash_Clipboard</code> API used by 8 * Pepper Flash for reading and writing to the clipboard. 9 */ 10 11 label Chrome { 12 M19 = 4.0, 13 M24 = 5.0 14 }; 15 16 /** 17 * This enumeration contains the types of clipboards that can be accessed. 18 * These types correspond to clipboard types in WebKit. 19 */ 20 [assert_size(4)] 21 enum PP_Flash_Clipboard_Type { 22 /** The standard clipboard. */ 23 PP_FLASH_CLIPBOARD_TYPE_STANDARD = 0, 24 /** The selection clipboard (e.g., on Linux). */ 25 PP_FLASH_CLIPBOARD_TYPE_SELECTION = 1 26 }; 27 28 /** 29 * This enumeration contains the predefined clipboard data formats. 30 */ 31 [assert_size(4)] 32 enum PP_Flash_Clipboard_Format { 33 /** Indicates an invalid or unsupported clipboard data format. */ 34 PP_FLASH_CLIPBOARD_FORMAT_INVALID = 0, 35 /** 36 * Indicates plaintext clipboard data. The format expected/returned is a 37 * <code>PP_VARTYPE_STRING</code>. 38 */ 39 PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT = 1, 40 /** 41 * Indicates HTML clipboard data. The format expected/returned is a 42 * <code>PP_VARTYPE_STRING</code>. 43 */ 44 PP_FLASH_CLIPBOARD_FORMAT_HTML = 2, 45 /** 46 * Indicates RTF clipboard data. The format expected/returned is a 47 * <code>PP_VARTYPE_ARRAY_BUFFER</code>. 48 */ 49 PP_FLASH_CLIPBOARD_FORMAT_RTF = 3 50 }; 51 52 /** 53 * The <code>PPB_Flash_Clipboard</code> interface contains pointers to functions 54 * used by Pepper Flash to access the clipboard. 55 * 56 */ 57 interface PPB_Flash_Clipboard { 58 /** 59 * Deprecated in 5.0. 60 */ 61 [version=4.0, deprecate=5.0] 62 PP_Bool IsFormatAvailable( 63 [in] PP_Instance instance_id, 64 [in] PP_Flash_Clipboard_Type clipboard_type, 65 [in] PP_Flash_Clipboard_Format format); 66 67 /** 68 * Deprecated in 5.0. 69 */ 70 [version=4.0, deprecate=5.0] 71 PP_Var ReadData([in] PP_Instance instance_id, 72 [in] PP_Flash_Clipboard_Type clipboard_type, 73 [in] PP_Flash_Clipboard_Format format); 74 75 /** 76 * Deprecated in 5.0. 77 */ 78 [version=4.0, deprecate=5.0] 79 int32_t WriteData([in] PP_Instance instance_id, 80 [in] PP_Flash_Clipboard_Type clipboard_type, 81 [in] uint32_t data_item_count, 82 [in, size_is(data_item_count)] PP_Flash_Clipboard_Format[] formats, 83 [in, size_is(data_item_count)] PP_Var[] data_items); 84 85 /** 86 * Registers a custom clipboard format. The format is identified by a 87 * string. An id identifying the format will be returned if the format is 88 * successfully registered, which can be used to read/write data of that 89 * format. If the format has already been registered, the id associated with 90 * that format will be returned. If the format fails to be registered 91 * <code>PP_FLASH_CLIPBOARD_FORMAT_INVALID</code> will be returned. 92 * 93 * All custom data should be read/written as <code>PP_Var</code> array 94 * buffers. The clipboard format is pepper-specific meaning that although the 95 * data will be stored on the system clipboard, it can only be accessed in a 96 * sensible way by using the pepper API. Data stored in custom formats can 97 * be safely shared between different applications that use pepper. 98 */ 99 [version=5.0] 100 uint32_t RegisterCustomFormat( 101 [in] PP_Instance instance_id, 102 [in] str_t format_name); 103 104 /** 105 * Checks whether a given data format is available from the given clipboard. 106 * Returns true if the given format is available from the given clipboard. 107 */ 108 [version=5.0] 109 PP_Bool IsFormatAvailable( 110 [in] PP_Instance instance_id, 111 [in] PP_Flash_Clipboard_Type clipboard_type, 112 [in] uint32_t format); 113 114 /** 115 * Reads data in the given <code>format</code> from the clipboard. An 116 * undefined <code>PP_Var</code> is returned if there is an error in reading 117 * the clipboard data and a null <code>PP_Var</code> is returned if there is 118 * no data of the specified <code>format</code> to read. 119 */ 120 [version=5.0] 121 PP_Var ReadData([in] PP_Instance instance_id, 122 [in] PP_Flash_Clipboard_Type clipboard_type, 123 [in] uint32_t format); 124 125 /** 126 * Writes the given array of data items to the clipboard. All existing 127 * clipboard data in any format is erased before writing this data. Thus, 128 * passing an array of size 0 has the effect of clearing the clipboard without 129 * writing any data. Each data item in the array should have a different 130 * <code>PP_Flash_Clipboard_Format</code>. If multiple data items have the 131 * same format, only the last item with that format will be written. 132 * If there is an error writing any of the items in the array to the 133 * clipboard, none will be written and an error code is returned. 134 * The error code will be <code>PP_ERROR_NOSPACE</code> if the value is 135 * too large to be written, <code>PP_ERROR_BADARGUMENT</code> if a PP_Var 136 * cannot be converted into the format supplied or <code>PP_FAILED</code> 137 * if the format is not supported. 138 */ 139 [version=5.0] 140 int32_t WriteData([in] PP_Instance instance_id, 141 [in] PP_Flash_Clipboard_Type clipboard_type, 142 [in] uint32_t data_item_count, 143 [in, size_is(data_item_count)] uint32_t[] formats, 144 [in, size_is(data_item_count)] PP_Var[] data_items); 145 }; 146