Commit ab0d15e8 authored by Darwin Huang's avatar Darwin Huang Committed by Commit Bot

Clipboard: Restrict Raw Clipboard formats.

Bug: 1146245
Change-Id: Icabb754484ffd570fa754021cea672d0e4553fb3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2522671
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825614}
parent 7f72fc62
...@@ -23,35 +23,37 @@ const base::flat_map<UINT, std::string>& PredefinedFormatToNameMap() { ...@@ -23,35 +23,37 @@ const base::flat_map<UINT, std::string>& PredefinedFormatToNameMap() {
static const base::NoDestructor<base::flat_map<UINT, std::string>> static const base::NoDestructor<base::flat_map<UINT, std::string>>
format_to_name({ format_to_name({
{CF_TEXT, "CF_TEXT"}, {CF_TEXT, "CF_TEXT"},
{CF_BITMAP, "CF_BITMAP"},
{CF_METAFILEPICT, "CF_METAFILEPICT"},
{CF_SYLK, "CF_SYLK"},
{CF_DIF, "CF_DIF"}, {CF_DIF, "CF_DIF"},
{CF_TIFF, "CF_TIFF"}, {CF_TIFF, "CF_TIFF"},
{CF_OEMTEXT, "CF_OEMTEXT"}, {CF_OEMTEXT, "CF_OEMTEXT"},
{CF_DIB, "CF_DIB"}, {CF_DIB, "CF_DIB"},
{CF_PALETTE, "CF_PALETTE"},
{CF_PENDATA, "CF_PENDATA"}, {CF_PENDATA, "CF_PENDATA"},
{CF_RIFF, "CF_RIFF"}, {CF_RIFF, "CF_RIFF"},
{CF_WAVE, "CF_WAVE"}, {CF_WAVE, "CF_WAVE"},
{CF_UNICODETEXT, "CF_UNICODETEXT"}, {CF_UNICODETEXT, "CF_UNICODETEXT"},
{CF_ENHMETAFILE, "CF_ENHMETAFILE"},
{CF_HDROP, "CF_HDROP"},
{CF_LOCALE, "CF_LOCALE"},
{CF_DIBV5, "CF_DIBV5"}, {CF_DIBV5, "CF_DIBV5"},
{CF_OWNERDISPLAY, "CF_OWNERDISPLAY"}, {CF_OWNERDISPLAY, "CF_OWNERDISPLAY"},
{CF_DSPTEXT, "CF_DSPTEXT"},
{CF_DSPBITMAP, "CF_DSPBITMAP"}, // These formats are predefined but explicitly blocked from use,
{CF_DSPMETAFILEPICT, "CF_DSPMETAFILEPICT"}, // either due to passing along handles, or concerns regarding exposing
{CF_DSPENHMETAFILE, "CF_DSPENHMETAFILE"}, // private information.
// {CF_MAX, "CF_MAX"},
// These formats are predefined but explicitly blocked from use. // {CF_PRIVATEFIRST, "CF_PRIVATEFIRST"},
// TODO(huangdarwin): Which other formats should always be disallowed? // {CF_PRIVATELAST, "CF_PRIVATELAST"},
// {CF_MAX, "CF_MAX"}, // {CF_GDIOBJFIRST, "CF_GDIOBJFIRST"},
// {CF_PRIVATEFIRST, "CF_PRIVATEFIRST"}, // {CF_GDIOBJLAST, "CF_GDIOBJLAST"},
// {CF_PRIVATELAST, "CF_PRIVATELAST"}, // {CF_BITMAP, "CF_BITMAP"},
// {CF_GDIOBJFIRST, "CF_GDIOBJFIRST"}, // {CF_SYLK, "CF_SYLK"},
// {CF_GDIOBJLAST, "CF_GDIOBJLAST"}, // {CF_METAFILEPICT, "CF_METAFILEPICT"},
// {CF_DSPTEXT, "CF_DSPTEXT"},
// {CF_DSPBITMAP, "CF_DSPBITMAP"},
// {CF_DSPMETAFILEPICT, "CF_DSPMETAFILEPICT"},
// {CF_DSPENHMETAFILE, "CF_DSPENHMETAFILE"},
// {CF_ENHMETAFILE, "CF_ENHMETAFILE"},
// {CF_HDROP, "CF_HDROP"},
// {CF_LOCALE, "CF_LOCALE"},
// {CF_PALETTE, "CF_PALETTE"},
}); });
return *format_to_name; return *format_to_name;
} }
......
...@@ -828,9 +828,8 @@ TYPED_TEST(ClipboardTest, ReadAvailablePlatformSpecificFormatNamesTest) { ...@@ -828,9 +828,8 @@ TYPED_TEST(ClipboardTest, ReadAvailablePlatformSpecificFormatNamesTest) {
#elif defined(OS_WIN) #elif defined(OS_WIN)
EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_UNICODETEXT"))); EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_UNICODETEXT")));
EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_TEXT"))); EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_TEXT")));
EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_LOCALE")));
EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_OEMTEXT"))); EXPECT_THAT(raw_types, Contains(ASCIIToUTF16("CF_OEMTEXT")));
EXPECT_EQ(raw_types.size(), static_cast<uint64_t>(4)); EXPECT_EQ(raw_types.size(), static_cast<uint64_t>(3));
#elif defined(USE_AURA) || defined(OS_ANDROID) #elif defined(USE_AURA) || defined(OS_ANDROID)
EXPECT_THAT(raw_types, Contains(ASCIIToUTF16(kMimeTypeText))); EXPECT_THAT(raw_types, Contains(ASCIIToUTF16(kMimeTypeText)));
EXPECT_EQ(raw_types.size(), static_cast<uint64_t>(1)); EXPECT_EQ(raw_types.size(), static_cast<uint64_t>(1));
......
...@@ -117,7 +117,6 @@ TestClipboard::ReadAvailablePlatformSpecificFormatNames( ...@@ -117,7 +117,6 @@ TestClipboard::ReadAvailablePlatformSpecificFormatNames(
types.push_back(base::ASCIIToUTF16("STRING")); types.push_back(base::ASCIIToUTF16("STRING"));
types.push_back(base::ASCIIToUTF16("UTF8_STRING")); types.push_back(base::ASCIIToUTF16("UTF8_STRING"));
#elif defined(OS_WIN) #elif defined(OS_WIN)
types.push_back(base::ASCIIToUTF16("CF_LOCALE"));
types.push_back(base::ASCIIToUTF16("CF_OEMTEXT")); types.push_back(base::ASCIIToUTF16("CF_OEMTEXT"));
#elif defined(OS_APPLE) #elif defined(OS_APPLE)
types.push_back(base::ASCIIToUTF16("NSStringPboardType")); types.push_back(base::ASCIIToUTF16("NSStringPboardType"));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment