Index: ui/base/clipboard/clipboard_aurax11.cc |
diff --git a/ui/base/clipboard/clipboard_aurax11.cc b/ui/base/clipboard/clipboard_aurax11.cc |
index 39e864738f682bd38aa41e3fe66bb17392796d10..3def226d17c4c2fefd71691c7b4218b4412573ad 100644 |
--- a/ui/base/clipboard/clipboard_aurax11.cc |
+++ b/ui/base/clipboard/clipboard_aurax11.cc |
@@ -34,7 +34,6 @@ |
#include "ui/events/platform/platform_event_source.h" |
#include "ui/gfx/codec/png_codec.h" |
#include "ui/gfx/geometry/size.h" |
-#include "ui/gfx/x/x11_atom_cache.h" |
namespace ui { |
@@ -46,19 +45,6 @@ const char kMimeTypeFilename[] = "chromium/filename"; |
const char kSaveTargets[] = "SAVE_TARGETS"; |
const char kTargets[] = "TARGETS"; |
-const char* kAtomsToCache[] = {kClipboard, |
- kClipboardManager, |
- Clipboard::kMimeTypePNG, |
- kMimeTypeFilename, |
- Clipboard::kMimeTypeMozillaURL, |
- Clipboard::kMimeTypeWebkitSmartPaste, |
- kSaveTargets, |
- kString, |
- kTargets, |
- kText, |
- kUtf8String, |
- nullptr}; |
- |
/////////////////////////////////////////////////////////////////////////////// |
// Uses the XFixes API to provide sequence numbers for GetSequenceNumber(). |
@@ -96,7 +82,7 @@ SelectionChangeObserver::SelectionChangeObserver() |
primary_sequence_number_(0) { |
int ignored; |
if (XFixesQueryExtension(gfx::GetXDisplay(), &event_base_, &ignored)) { |
- clipboard_atom_ = XInternAtom(gfx::GetXDisplay(), kClipboard, false); |
+ clipboard_atom_ = GetAtom(kClipboard); |
XFixesSelectSelectionInput(gfx::GetXDisplay(), GetX11RootWindow(), |
clipboard_atom_, |
XFixesSetSelectionOwnerNotifyMask | |
@@ -145,7 +131,7 @@ class TargetList { |
public: |
typedef std::vector< ::Atom> AtomVector; |
- TargetList(const AtomVector& target_list, X11AtomCache* atom_cache); |
+ explicit TargetList(const AtomVector& target_list); |
const AtomVector& target_list() { return target_list_; } |
@@ -155,17 +141,13 @@ class TargetList { |
private: |
AtomVector target_list_; |
- X11AtomCache* atom_cache_; |
}; |
-TargetList::TargetList(const AtomVector& target_list, |
- X11AtomCache* atom_cache) |
- : target_list_(target_list), |
- atom_cache_(atom_cache) { |
-} |
+TargetList::TargetList(const AtomVector& target_list) |
+ : target_list_(target_list) {} |
bool TargetList::ContainsText() const { |
- std::vector< ::Atom> atoms = GetTextAtomsFrom(atom_cache_); |
+ std::vector<::Atom> atoms = GetTextAtomsFrom(); |
for (std::vector< ::Atom>::const_iterator it = atoms.begin(); |
it != atoms.end(); ++it) { |
if (ContainsAtom(*it)) |
@@ -177,7 +159,7 @@ bool TargetList::ContainsText() const { |
bool TargetList::ContainsFormat( |
const Clipboard::FormatType& format_type) const { |
- ::Atom atom = atom_cache_->GetAtom(format_type.ToString().c_str()); |
+ ::Atom atom = GetAtom(format_type.ToString().c_str()); |
return ContainsAtom(atom); |
} |
@@ -233,8 +215,6 @@ class ClipboardAuraX11::AuraX11Details : public PlatformEventDispatcher { |
AuraX11Details(); |
~AuraX11Details() override; |
- X11AtomCache* atom_cache() { return &atom_cache_; } |
- |
// Returns the X11 type that we pass to various XSelection functions for the |
// given type. |
::Atom LookupSelectionForClipboardType(ClipboardType type) const; |
@@ -305,8 +285,6 @@ class ClipboardAuraX11::AuraX11Details : public PlatformEventDispatcher { |
// Events selected on |x_window_|. |
std::unique_ptr<XScopedEventSelector> x_window_events_; |
- X11AtomCache atom_cache_; |
- |
// Object which requests and receives selection data. |
SelectionRequestor selection_requestor_; |
@@ -335,13 +313,9 @@ ClipboardAuraX11::AuraX11Details::AuraX11Details() |
CopyFromParent, // visual |
0, |
NULL)), |
- atom_cache_(x_display_, kAtomsToCache), |
selection_requestor_(x_display_, x_window_, this), |
- clipboard_owner_(x_display_, x_window_, atom_cache_.GetAtom(kClipboard)), |
+ clipboard_owner_(x_display_, x_window_, GetAtom(kClipboard)), |
primary_owner_(x_display_, x_window_, XA_PRIMARY) { |
- // We don't know all possible MIME types at compile time. |
- atom_cache_.allow_uncached_atoms(); |
- |
XStoreName(x_display_, x_window_, "Chromium clipboard"); |
x_window_events_.reset( |
new XScopedEventSelector(x_window_, PropertyChangeMask)); |
@@ -366,7 +340,7 @@ ClipboardAuraX11::AuraX11Details::~AuraX11Details() { |
} |
::Atom ClipboardAuraX11::AuraX11Details::GetCopyPasteSelection() const { |
- return atom_cache_.GetAtom(kClipboard); |
+ return GetAtom(kClipboard); |
} |
const SelectionFormatMap& |
@@ -385,7 +359,7 @@ void ClipboardAuraX11::AuraX11Details::CreateNewClipboardData() { |
void ClipboardAuraX11::AuraX11Details::InsertMapping( |
const std::string& key, |
const scoped_refptr<base::RefCountedMemory>& memory) { |
- ::Atom atom_key = atom_cache_.GetAtom(key.c_str()); |
+ ::Atom atom_key = GetAtom(key.c_str()); |
clipboard_data_.Insert(atom_key, memory); |
} |
@@ -443,13 +417,10 @@ TargetList ClipboardAuraX11::AuraX11Details::WaitAndGetTargetsList( |
::Atom out_type = None; |
if (selection_requestor_.PerformBlockingConvertSelection( |
- selection_name, |
- atom_cache_.GetAtom(kTargets), |
- &data, |
- &out_data_items, |
+ selection_name, GetAtom(kTargets), &data, &out_data_items, |
&out_type)) { |
// Some apps return an |out_type| of "TARGETS". (crbug.com/377893) |
- if (out_type == XA_ATOM || out_type == atom_cache_.GetAtom(kTargets)) { |
+ if (out_type == XA_ATOM || out_type == GetAtom(kTargets)) { |
const ::Atom* atom_array = |
reinterpret_cast<const ::Atom*>(data->front()); |
for (size_t i = 0; i < out_data_items; ++i) |
@@ -478,17 +449,17 @@ TargetList ClipboardAuraX11::AuraX11Details::WaitAndGetTargetsList( |
} |
} |
- return TargetList(out, &atom_cache_); |
+ return TargetList(out); |
} |
std::vector<::Atom> ClipboardAuraX11::AuraX11Details::GetTextAtoms() const { |
- return GetTextAtomsFrom(&atom_cache_); |
+ return GetTextAtomsFrom(); |
} |
std::vector<::Atom> ClipboardAuraX11::AuraX11Details::GetAtomsForFormat( |
const Clipboard::FormatType& format) { |
std::vector< ::Atom> atoms; |
- atoms.push_back(atom_cache_.GetAtom(format.ToString().c_str())); |
+ atoms.push_back(GetAtom(format.ToString().c_str())); |
return atoms; |
} |
@@ -504,7 +475,7 @@ void ClipboardAuraX11::AuraX11Details::StoreCopyPasteDataAndWait() { |
if (XGetSelectionOwner(x_display_, selection) != x_window_) |
return; |
- ::Atom clipboard_manager_atom = atom_cache_.GetAtom(kClipboardManager); |
+ ::Atom clipboard_manager_atom = GetAtom(kClipboardManager); |
if (XGetSelectionOwner(x_display_, clipboard_manager_atom) == None) |
return; |
@@ -515,9 +486,7 @@ void ClipboardAuraX11::AuraX11Details::StoreCopyPasteDataAndWait() { |
base::TimeTicks start = base::TimeTicks::Now(); |
selection_requestor_.PerformBlockingConvertSelectionWithParameter( |
- atom_cache_.GetAtom(kClipboardManager), |
- atom_cache_.GetAtom(kSaveTargets), |
- targets); |
+ GetAtom(kClipboardManager), GetAtom(kSaveTargets), targets); |
UMA_HISTOGRAM_TIMES("Clipboard.X11StoreCopyPasteDuration", |
base::TimeTicks::Now() - start); |
} |