| Index: ppapi/proxy/ppb_flash_clipboard_proxy.cc
|
| diff --git a/ppapi/proxy/ppb_flash_clipboard_proxy.cc b/ppapi/proxy/ppb_flash_clipboard_proxy.cc
|
| index a8490716c3dece5bf9c96d246db9bc490297b716..efe1df3665c82e29f3e8629d72a5426af1ef2923 100644
|
| --- a/ppapi/proxy/ppb_flash_clipboard_proxy.cc
|
| +++ b/ppapi/proxy/ppb_flash_clipboard_proxy.cc
|
| @@ -21,6 +21,32 @@ bool IsValidClipboardType(PP_Flash_Clipboard_Type clipboard_type) {
|
| clipboard_type == PP_FLASH_CLIPBOARD_TYPE_DRAG;
|
| }
|
|
|
| +bool IsValidClipboardFormat(PP_Flash_Clipboard_Format format) {
|
| + // Purposely excludes |PP_FLASH_CLIPBOARD_FORMAT_INVALID|.
|
| + return format == PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT ||
|
| + format == PP_FLASH_CLIPBOARD_FORMAT_HTML;
|
| +}
|
| +
|
| +PP_Bool IsFormatAvailable(PP_Instance instance_id,
|
| + PP_Flash_Clipboard_Type clipboard_type,
|
| + PP_Flash_Clipboard_Format format) {
|
| + PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
|
| + if (!dispatcher)
|
| + return PP_FALSE;
|
| +
|
| + if (!IsValidClipboardType(clipboard_type) || !IsValidClipboardFormat(format))
|
| + return PP_FALSE;
|
| +
|
| + bool result = false;
|
| + dispatcher->Send(new PpapiHostMsg_PPBFlashClipboard_IsFormatAvailable(
|
| + INTERFACE_ID_PPB_FLASH_CLIPBOARD,
|
| + instance_id,
|
| + static_cast<int>(clipboard_type),
|
| + static_cast<int>(format),
|
| + &result));
|
| + return BoolToPPBool(result);
|
| +}
|
| +
|
| PP_Var ReadPlainText(PP_Instance instance_id,
|
| PP_Flash_Clipboard_Type clipboard_type) {
|
| PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
|
| @@ -57,6 +83,7 @@ int32_t WritePlainText(PP_Instance instance_id,
|
| }
|
|
|
| const PPB_Flash_Clipboard flash_clipboard_interface = {
|
| + &IsFormatAvailable,
|
| &ReadPlainText,
|
| &WritePlainText
|
| };
|
| @@ -91,6 +118,8 @@ const InterfaceProxy::Info* PPB_Flash_Clipboard_Proxy::GetInfo() {
|
| bool PPB_Flash_Clipboard_Proxy::OnMessageReceived(const IPC::Message& msg) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(PPB_Flash_Clipboard_Proxy, msg)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlashClipboard_IsFormatAvailable,
|
| + OnMsgIsFormatAvailable)
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlashClipboard_ReadPlainText,
|
| OnMsgReadPlainText)
|
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlashClipboard_WritePlainText,
|
| @@ -100,6 +129,17 @@ bool PPB_Flash_Clipboard_Proxy::OnMessageReceived(const IPC::Message& msg) {
|
| return handled;
|
| }
|
|
|
| +void PPB_Flash_Clipboard_Proxy::OnMsgIsFormatAvailable(
|
| + PP_Instance instance_id,
|
| + int clipboard_type,
|
| + int format,
|
| + bool* result) {
|
| + *result = PPBoolToBool(ppb_flash_clipboard_target()->IsFormatAvailable(
|
| + instance_id,
|
| + static_cast<PP_Flash_Clipboard_Type>(clipboard_type),
|
| + static_cast<PP_Flash_Clipboard_Format>(format)));
|
| +}
|
| +
|
| void PPB_Flash_Clipboard_Proxy::OnMsgReadPlainText(
|
| PP_Instance instance_id,
|
| int clipboard_type,
|
|
|