summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppb_flash_clipboard_proxy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy/ppb_flash_clipboard_proxy.cc')
-rw-r--r--ppapi/proxy/ppb_flash_clipboard_proxy.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/ppapi/proxy/ppb_flash_clipboard_proxy.cc b/ppapi/proxy/ppb_flash_clipboard_proxy.cc
index 268a8e4..73b987e 100644
--- a/ppapi/proxy/ppb_flash_clipboard_proxy.cc
+++ b/ppapi/proxy/ppb_flash_clipboard_proxy.cc
@@ -29,7 +29,8 @@ bool IsValidClipboardType(PP_Flash_Clipboard_Type clipboard_type) {
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;
+ format == PP_FLASH_CLIPBOARD_FORMAT_HTML ||
+ format == PP_FLASH_CLIPBOARD_FORMAT_RTF;
}
} // namespace
@@ -86,6 +87,11 @@ int32_t PPB_Flash_Clipboard_Proxy::WriteData(
if (!IsValidClipboardType(clipboard_type))
return PP_ERROR_BADARGUMENT;
+ for (size_t i = 0; i < data_item_count; ++i) {
+ if (!IsValidClipboardFormat(formats[i]))
+ return PP_ERROR_BADARGUMENT;
+ }
+
std::vector<int> formats_vector(formats, formats + data_item_count);
std::vector<SerializedVar> data_items_vector;