diff options
author | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 00:35:40 +0000 |
---|---|---|
committer | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 00:35:40 +0000 |
commit | ef362466544a6b3007f8ac44cee16a3e1a720dd9 (patch) | |
tree | 7cb5e76c22a284e5d2c2b95ee9aa1ae0ed187214 /ppapi | |
parent | 320eff44dc909bf0fe575b3bff1df08a2fd99736 (diff) | |
download | chromium_src-ef362466544a6b3007f8ac44cee16a3e1a720dd9.zip chromium_src-ef362466544a6b3007f8ac44cee16a3e1a720dd9.tar.gz chromium_src-ef362466544a6b3007f8ac44cee16a3e1a720dd9.tar.bz2 |
Pepper: Generate ppb_flash_clipboard.h from .idl file.
Also, convert the version number for the PPB_Flash_Clipboard interface to the
standard form.
BUG=104001,104184
TEST=(The existing) Pepper Flash still works.
TBR=dmichael@chromium.org
Review URL: http://codereview.chromium.org/8559003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109999 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r-- | ppapi/api/private/ppb_flash_clipboard.idl | 83 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_clipboard.h | 85 | ||||
-rw-r--r-- | ppapi/proxy/interface_list.cc | 20 |
3 files changed, 166 insertions, 22 deletions
diff --git a/ppapi/api/private/ppb_flash_clipboard.idl b/ppapi/api/private/ppb_flash_clipboard.idl new file mode 100644 index 0000000..a84020b --- /dev/null +++ b/ppapi/api/private/ppb_flash_clipboard.idl @@ -0,0 +1,83 @@ +/* Copyright (c) 2011 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 +}; + +#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, + /** The drag clipboard. */ + PP_FLASH_CLIPBOARD_TYPE_DRAG = 2 +}; + +/** + * 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. + * + * TODO(viettrungluu): Support more formats (e.g., HTML).... + */ +[version=3.0] +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); + + /** + * Reads plain text data from the clipboard. + */ + PP_Var ReadPlainText( + [in] PP_Instance instance_id, + [in] PP_Flash_Clipboard_Type clipboard_type); + + /** + * Writes plain text data to the clipboard. If <code>text</code> is too large, + * it will return <code>PP_ERROR_NOSPACE</code> and not write to the + * clipboard. + */ + int32_t WritePlainText( + [in] PP_Instance instance_id, + [in] PP_Flash_Clipboard_Type clipboard_type, + [in] PP_Var text); +}; diff --git a/ppapi/c/private/ppb_flash_clipboard.h b/ppapi/c/private/ppb_flash_clipboard.h index e95e19c..fa897b5 100644 --- a/ppapi/c/private/ppb_flash_clipboard.h +++ b/ppapi/c/private/ppb_flash_clipboard.h @@ -1,45 +1,104 @@ -// Copyright (c) 2011 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. +/* Copyright (c) 2011 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. + */ + +/* From private/ppb_flash_clipboard.idl modified Mon Nov 14 13:36:44 2011. */ #ifndef PPAPI_C_PRIVATE_PPB_FLASH_CLIPBOARD_H_ #define PPAPI_C_PRIVATE_PPB_FLASH_CLIPBOARD_H_ #include "ppapi/c/pp_bool.h" #include "ppapi/c/pp_instance.h" +#include "ppapi/c/pp_macros.h" +#include "ppapi/c/pp_stdint.h" #include "ppapi/c/pp_var.h" -#define PPB_FLASH_CLIPBOARD_INTERFACE "PPB_Flash_Clipboard;3" +#define PPB_FLASH_CLIPBOARD_INTERFACE_3_0 "PPB_Flash_Clipboard;3.0" +#define PPB_FLASH_CLIPBOARD_INTERFACE PPB_FLASH_CLIPBOARD_INTERFACE_3_0 + +/** + * @file + * This file defines the private <code>PPB_Flash_Clipboard</code> API used by + * Pepper Flash for reading and writing to the clipboard. + */ + + +/** + * 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" +/** + * @addtogroup Enums + * @{ + */ +/** + * This enumeration contains the types of clipboards that can be accessed. + * These types correspond to clipboard types in WebKit. + */ typedef enum { + /** The standard clipboard. */ PP_FLASH_CLIPBOARD_TYPE_STANDARD = 0, + /** The selection clipboard (e.g., on Linux). */ PP_FLASH_CLIPBOARD_TYPE_SELECTION = 1, + /** The drag clipboard. */ PP_FLASH_CLIPBOARD_TYPE_DRAG = 2 } PP_Flash_Clipboard_Type; +PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Flash_Clipboard_Type, 4); +/** + * This enumeration contains the supported clipboard data formats. + */ typedef enum { + /** 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 } PP_Flash_Clipboard_Format; +PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Flash_Clipboard_Format, 4); +/** + * @} + */ +/** + * @addtogroup Interfaces + * @{ + */ +/** + * The <code>PPB_Flash_Clipboard</code> interface contains pointers to functions + * used by Pepper Flash to access the clipboard. + * + * TODO(viettrungluu): Support more formats (e.g., HTML).... + */ struct PPB_Flash_Clipboard { - // Returns true if the given format is available from the given 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)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, PP_Flash_Clipboard_Format format); - - // Reads plain text data from the clipboard. + /** + * Reads plain text data from the clipboard. + */ struct PP_Var (*ReadPlainText)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type); - - // Writes plain text data to the clipboard. If |text| is too large, it will - // return |PP_ERROR_NOSPACE| (and not write to the clipboard). + /** + * Writes plain text data to the clipboard. If <code>text</code> is too large, + * it will return <code>PP_ERROR_NOSPACE</code> and not write to the + * clipboard. + */ int32_t (*WritePlainText)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, struct PP_Var text); - - // TODO(vtl): More formats (e.g., HTML).... }; +/** + * @} + */ + +#endif /* PPAPI_C_PRIVATE_PPB_FLASH_CLIPBOARD_H_ */ -#endif // PPAPI_C_PRIVATE_PPB_FLASH_CLIPBOARD_H_ diff --git a/ppapi/proxy/interface_list.cc b/ppapi/proxy/interface_list.cc index c1f1b9f..f855f90 100644 --- a/ppapi/proxy/interface_list.cc +++ b/ppapi/proxy/interface_list.cc @@ -238,10 +238,21 @@ const void* InterfaceList::GetInterfaceForPPP(const std::string& name) const { } void InterfaceList::AddFlashInterfaces() { + AddProxy(API_ID_PPB_FLASH, &ProxyFactory<PPB_Flash_Proxy>); + AddPPB(PPB_FLASH_INTERFACE, API_ID_PPB_FLASH, + PPB_Flash_Proxy::GetInterface()); + AddProxy(API_ID_PPB_FLASH_CLIPBOARD, &ProxyFactory<PPB_Flash_Clipboard_Proxy>); AddPPB(PPB_FLASH_CLIPBOARD_INTERFACE, API_ID_PPB_FLASH_CLIPBOARD, thunk::GetPPB_Flash_Clipboard_Thunk()); + AddPPB(PPB_FLASH_CLIPBOARD_INTERFACE_3_LEGACY, API_ID_PPB_FLASH_CLIPBOARD, + thunk::GetPPB_Flash_Clipboard_Thunk()); + + AddProxy(API_ID_PPB_FLASH_FILE_FILEREF, + &ProxyFactory<PPB_Flash_File_FileRef_Proxy>); + AddPPB(PPB_FLASH_FILE_FILEREF_INTERFACE, API_ID_PPB_FLASH_FILE_FILEREF, + PPB_Flash_File_FileRef_Proxy::GetInterface()); AddProxy(API_ID_PPB_FLASH_FILE_MODULELOCAL, &ProxyFactory<PPB_Flash_File_ModuleLocal_Proxy>); @@ -249,19 +260,10 @@ void InterfaceList::AddFlashInterfaces() { API_ID_PPB_FLASH_FILE_MODULELOCAL, PPB_Flash_File_ModuleLocal_Proxy::GetInterface()); - AddProxy(API_ID_PPB_FLASH_FILE_FILEREF, - &ProxyFactory<PPB_Flash_File_FileRef_Proxy>); - AddPPB(PPB_FLASH_FILE_FILEREF_INTERFACE, API_ID_PPB_FLASH_FILE_FILEREF, - PPB_Flash_File_FileRef_Proxy::GetInterface()); - AddProxy(API_ID_PPB_FLASH_MENU, &ProxyFactory<PPB_Flash_Menu_Proxy>); AddPPB(PPB_FLASH_MENU_INTERFACE, API_ID_PPB_FLASH_MENU, thunk::GetPPB_Flash_Menu_Thunk()); - AddProxy(API_ID_PPB_FLASH, &ProxyFactory<PPB_Flash_Proxy>); - AddPPB(PPB_FLASH_INTERFACE, API_ID_PPB_FLASH, - PPB_Flash_Proxy::GetInterface()); - AddProxy(API_ID_PPB_FLASH_TCPSOCKET, &ProxyFactory<PPB_Flash_TCPSocket_Proxy>); AddPPB(PPB_FLASH_TCPSOCKET_INTERFACE, API_ID_PPB_FLASH_TCPSOCKET, |