summaryrefslogtreecommitdiffstats
path: root/ui/base/clipboard
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-15 21:14:34 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-15 21:14:34 +0000
commitbf150e4672691674b7da069c13d97d5ea98d187c (patch)
tree40567acfa07958b31a2b031daf0c4c3a78aa0ea9 /ui/base/clipboard
parenta09306f08b6cf570702ea3e28a01b4b727c30607 (diff)
downloadchromium_src-bf150e4672691674b7da069c13d97d5ea98d187c.zip
chromium_src-bf150e4672691674b7da069c13d97d5ea98d187c.tar.gz
chromium_src-bf150e4672691674b7da069c13d97d5ea98d187c.tar.bz2
Revert 256981 "Verify FormatType in ScopedClipboardWriter::Write..."
> Verify FormatType in ScopedClipboardWriter::WritePickledData. > > BUG=352395 > R=tony@chromium.org > TBR=sky@chromium.org > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256974 > > Review URL: https://codereview.chromium.org/199763002 TBR=dcheng@chromium.org Review URL: https://codereview.chromium.org/196943018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257336 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/clipboard')
-rw-r--r--ui/base/clipboard/clipboard.cc31
-rw-r--r--ui/base/clipboard/clipboard.h8
-rw-r--r--ui/base/clipboard/clipboard_android.cc12
-rw-r--r--ui/base/clipboard/clipboard_aura.cc8
-rw-r--r--ui/base/clipboard/clipboard_aurax11.cc8
-rw-r--r--ui/base/clipboard/clipboard_gtk.cc12
-rw-r--r--ui/base/clipboard/clipboard_mac.mm14
-rw-r--r--ui/base/clipboard/clipboard_win.cc6
-rw-r--r--ui/base/clipboard/scoped_clipboard_writer.cc4
9 files changed, 21 insertions, 82 deletions
diff --git a/ui/base/clipboard/clipboard.cc b/ui/base/clipboard/clipboard.cc
index 4c9189a..c71d5b9 100644
--- a/ui/base/clipboard/clipboard.cc
+++ b/ui/base/clipboard/clipboard.cc
@@ -6,7 +6,6 @@
#include <iterator>
#include <limits>
-#include <set>
#include "base/lazy_instance.h"
#include "base/logging.h"
@@ -52,14 +51,6 @@ static base::LazyInstance<ClipboardMap> g_clipboard_map =
static base::LazyInstance<base::Lock>::Leaky
g_clipboard_map_lock = LAZY_INSTANCE_INITIALIZER;
-// Set of registered custom formats.
-static base::LazyInstance<std::set<Clipboard::FormatType> >
- g_registered_formats = LAZY_INSTANCE_INITIALIZER;
-
-// Mutex that controls access to |g_registered_formats|.
-static base::LazyInstance<base::Lock>::Leaky g_registered_formats_lock =
- LAZY_INSTANCE_INITIALIZER;
-
} // namespace
// static
@@ -114,28 +105,6 @@ void Clipboard::DestroyClipboardForCurrentThread() {
}
}
-// static
-Clipboard::FormatType Clipboard::GetFormatType(
- const std::string& format_string) {
- FormatType format = GetFormatTypeInternal(format_string);
- {
- base::AutoLock lock(g_registered_formats_lock.Get());
- g_registered_formats.Get().insert(format);
- }
- return format;
-}
-
-bool Clipboard::IsRegisteredFormatType(const FormatType& format) {
- // Terrible hack to force web/pepper custom types to be registered.
- // TODO(dcheng): There's got to a better way...
- GetWebCustomDataFormatType();
- GetPepperCustomDataFormatType();
-
- base::AutoLock lock(g_registered_formats_lock.Get());
- const std::set<FormatType>& registered_formats = g_registered_formats.Get();
- return registered_formats.find(format) != registered_formats.end();
-}
-
void Clipboard::DispatchObject(ObjectType type, const ObjectMapParams& params) {
// All types apart from CBF_WEBKIT need at least 1 non-empty param.
if (type != CBF_WEBKIT && (params.empty() || params[0].empty()))
diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h
index 9f49230..8926506 100644
--- a/ui/base/clipboard/clipboard.h
+++ b/ui/base/clipboard/clipboard.h
@@ -83,7 +83,10 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
std::string Serialize() const;
static FormatType Deserialize(const std::string& serialization);
+#if defined(OS_WIN) || defined(USE_AURA)
+ // FormatType can be used in a set on some platforms.
bool operator<(const FormatType& other) const;
+#endif
#if defined(OS_WIN)
const FORMATETC& ToFormatEtc() const { return data_; }
@@ -270,9 +273,6 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
// limitiations, |format_string| must never be controlled by the user.
static FormatType GetFormatType(const std::string& format_string);
- // Returns true if the |format| was registered with GetFormatType().
- static bool IsRegisteredFormatType(const FormatType& format);
-
// Get format identifiers for various types.
static const FormatType& GetUrlFormatType();
static const FormatType& GetUrlWFormatType();
@@ -317,8 +317,6 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
Clipboard();
~Clipboard();
- static FormatType GetFormatTypeInternal(const std::string& format_string);
-
void DispatchObject(ObjectType type, const ObjectMapParams& params);
void WriteText(const char* text_data, size_t text_len);
diff --git a/ui/base/clipboard/clipboard_android.cc b/ui/base/clipboard/clipboard_android.cc
index f8feadc..e5e2a96 100644
--- a/ui/base/clipboard/clipboard_android.cc
+++ b/ui/base/clipboard/clipboard_android.cc
@@ -198,10 +198,6 @@ Clipboard::FormatType Clipboard::FormatType::Deserialize(
return FormatType(serialization);
}
-bool Clipboard::FormatType::operator<(const FormatType& other) const {
- return data_ < other.data_;
-}
-
bool Clipboard::FormatType::Equals(const FormatType& other) const {
return data_ == other.data_;
}
@@ -339,7 +335,7 @@ void Clipboard::ReadData(const Clipboard::FormatType& format,
}
// static
-Clipboard::FormatType Clipboard::GetFormatTypeInternal(
+Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {
return FormatType::Deserialize(format_string);
}
@@ -382,15 +378,13 @@ const Clipboard::FormatType& Clipboard::GetBitmapFormatType() {
// static
const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypeWebCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypeWebCustomData));
return type;
}
// static
const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypePepperCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypePepperCustomData));
return type;
}
diff --git a/ui/base/clipboard/clipboard_aura.cc b/ui/base/clipboard/clipboard_aura.cc
index 097d721..30b639a 100644
--- a/ui/base/clipboard/clipboard_aura.cc
+++ b/ui/base/clipboard/clipboard_aura.cc
@@ -601,7 +601,7 @@ void Clipboard::WriteData(const FormatType& format,
}
// static
-Clipboard::FormatType Clipboard::GetFormatTypeInternal(
+Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {
return FormatType::Deserialize(format_string);
}
@@ -665,15 +665,13 @@ const Clipboard::FormatType& Clipboard::GetWebKitSmartPasteFormatType() {
// static
const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypeWebCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypeWebCustomData));
return type;
}
// static
const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypePepperCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypePepperCustomData));
return type;
}
diff --git a/ui/base/clipboard/clipboard_aurax11.cc b/ui/base/clipboard/clipboard_aurax11.cc
index 2ea2729..4588cc9 100644
--- a/ui/base/clipboard/clipboard_aurax11.cc
+++ b/ui/base/clipboard/clipboard_aurax11.cc
@@ -791,7 +791,7 @@ void Clipboard::WriteData(const FormatType& format,
}
// static
-Clipboard::FormatType Clipboard::GetFormatTypeInternal(
+Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {
return FormatType::Deserialize(format_string);
}
@@ -855,15 +855,13 @@ const Clipboard::FormatType& Clipboard::GetWebKitSmartPasteFormatType() {
// static
const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypeWebCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypeWebCustomData));
return type;
}
// static
const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypePepperCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypePepperCustomData));
return type;
}
diff --git a/ui/base/clipboard/clipboard_gtk.cc b/ui/base/clipboard/clipboard_gtk.cc
index fddd86b..8f81911 100644
--- a/ui/base/clipboard/clipboard_gtk.cc
+++ b/ui/base/clipboard/clipboard_gtk.cc
@@ -202,10 +202,6 @@ Clipboard::FormatType Clipboard::FormatType::Deserialize(
return FormatType(serialization);
}
-bool Clipboard::FormatType::operator<(const FormatType& other) const {
- return GdkAtomToString(data_) < GdkAtomToString(other.data_);
-}
-
bool Clipboard::FormatType::Equals(const FormatType& other) const {
return data_ == other.data_;
}
@@ -596,7 +592,7 @@ uint64 Clipboard::GetSequenceNumber(ClipboardType type) {
}
//static
-Clipboard::FormatType Clipboard::GetFormatTypeInternal(
+Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {
return FormatType::Deserialize(format_string);
}
@@ -649,15 +645,13 @@ const Clipboard::FormatType& Clipboard::GetWebKitSmartPasteFormatType() {
// static
const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypeWebCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypeWebCustomData));
return type;
}
// static
const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType(kMimeTypePepperCustomData)));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypePepperCustomData));
return type;
}
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm
index 7da3d2b..0b6d3a7 100644
--- a/ui/base/clipboard/clipboard_mac.mm
+++ b/ui/base/clipboard/clipboard_mac.mm
@@ -88,10 +88,6 @@ Clipboard::FormatType Clipboard::FormatType::Deserialize(
return FormatType(base::SysUTF8ToNSString(serialization));
}
-bool Clipboard::FormatType::operator<(const FormatType& other) const {
- return [data_ compare:other.data_] == NSOrderedAscending;
-}
-
Clipboard::Clipboard() {
DCHECK(CalledOnValidThread());
}
@@ -371,7 +367,7 @@ void Clipboard::ReadData(const FormatType& format, std::string* result) const {
}
// static
-Clipboard::FormatType Clipboard::GetFormatTypeInternal(
+Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {
return FormatType::Deserialize(format_string);
}
@@ -435,17 +431,13 @@ const Clipboard::FormatType& Clipboard::GetWebKitSmartPasteFormatType() {
// static
const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (GetFormatType([kWebCustomDataPboardType UTF8String])));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kWebCustomDataPboardType));
return type;
}
// static
const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType,
- type,
- (GetFormatType([kPepperCustomDataPboardType UTF8String])));
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (kPepperCustomDataPboardType));
return type;
}
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index 22520d8..36d042d 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -681,7 +681,7 @@ void Clipboard::ParseBookmarkClipboardFormat(const base::string16& bookmark,
}
// static
-Clipboard::FormatType Clipboard::GetFormatTypeInternal(
+Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {
return FormatType(
::RegisterClipboardFormat(base::ASCIIToWide(format_string).c_str()));
@@ -806,7 +806,7 @@ const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
CR_DEFINE_STATIC_LOCAL(
FormatType,
type,
- (GetFormatType("Chromium Web Custom MIME Data Format")));
+ (::RegisterClipboardFormat(L"Chromium Web Custom MIME Data Format")));
return type;
}
@@ -815,7 +815,7 @@ const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
CR_DEFINE_STATIC_LOCAL(
FormatType,
type,
- (GetFormatType("Chromium Pepper MIME Data Format")));
+ (::RegisterClipboardFormat(L"Chromium Pepper MIME Data Format")));
return type;
}
diff --git a/ui/base/clipboard/scoped_clipboard_writer.cc b/ui/base/clipboard/scoped_clipboard_writer.cc
index 884e5f7..380b8d2 100644
--- a/ui/base/clipboard/scoped_clipboard_writer.cc
+++ b/ui/base/clipboard/scoped_clipboard_writer.cc
@@ -91,10 +91,6 @@ void ScopedClipboardWriter::WriteWebSmartPaste() {
void ScopedClipboardWriter::WritePickledData(
const Pickle& pickle, const Clipboard::FormatType& format) {
- // |format| may originate from the renderer, so sanity check it.
- if (!Clipboard::IsRegisteredFormatType(format))
- return;
-
std::string format_string = format.Serialize();
Clipboard::ObjectMapParam format_parameter(format_string.begin(),
format_string.end());