Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: ui/base/clipboard/clipboard_chromeos.cc

Issue 12041078: Clear the clipboard closing Incognito window (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Removed includes + style changes Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/base/clipboard/clipboard_chromeos.cc
diff --git a/ui/base/clipboard/clipboard_chromeos.cc b/ui/base/clipboard/clipboard_chromeos.cc
index d810c6fe27ea74a8ca7808dc197420f880e081dc..1fb7e3bec24e8977efcaa8e8805f3333c51f94c0 100644
--- a/ui/base/clipboard/clipboard_chromeos.cc
+++ b/ui/base/clipboard/clipboard_chromeos.cc
@@ -34,6 +34,7 @@ enum AuraClipboardFormat {
BITMAP = 1 << 4,
CUSTOM = 1 << 5,
WEB = 1 << 6,
+ SOURCETAG = 1 << 7,
};
// ClipboardData contains data copied to the Clipboard for a variety of formats.
@@ -42,6 +43,7 @@ class ClipboardData {
public:
ClipboardData()
: bitmap_data_(),
+ source_tag_(),
web_smart_paste_(false),
format_(0) {}
@@ -118,6 +120,12 @@ class ClipboardData {
format_ |= WEB;
}
+ Clipboard::SourceTag source_tag() const { return source_tag_; }
+ void set_source_tag(Clipboard::SourceTag tag) {
+ source_tag_ = tag;
+ format_ |= SOURCETAG;
+ }
+
private:
// Plain text in UTF8 format.
std::string text_;
@@ -144,6 +152,9 @@ class ClipboardData {
std::string custom_data_format_;
std::string custom_data_data_;
+ // SourceTag.
+ Clipboard::SourceTag source_tag_;
+
// WebKit smart paste data.
bool web_smart_paste_;
@@ -296,6 +307,13 @@ class AuraClipboard {
*result = data->custom_data_data();
}
+ Clipboard::SourceTag ReadSourceTag() const {
+ if (!HasFormat(SOURCETAG))
+ return Clipboard::SourceTag();
+ const ClipboardData* data = GetData();
+ return data->source_tag();
+ }
+
// Writes |data| to the top of the clipboard stack.
void WriteData(ClipboardData* data) {
DCHECK(data);
@@ -399,6 +417,11 @@ class ClipboardDataBuilder {
data->SetCustomData(format, std::string(data_data, data_len));
}
+ static void WriteSourceTag(Clipboard::SourceTag tag) {
+ ClipboardData* data = GetCurrentData();
+ data->set_source_tag(tag);
+ }
+
private:
static ClipboardData* GetCurrentData() {
if (!current_data_)
@@ -448,13 +471,16 @@ Clipboard::~Clipboard() {
DeleteClipboard();
}
-void Clipboard::WriteObjects(Buffer buffer, const ObjectMap& objects) {
+void Clipboard::WriteObjectsImpl(Buffer buffer,
+ const ObjectMap& objects,
+ SourceTag tag) {
DCHECK(CalledOnValidThread());
DCHECK(IsValidBuffer(buffer));
for (ObjectMap::const_iterator iter = objects.begin();
iter != objects.end(); ++iter) {
DispatchObject(static_cast<ObjectType>(iter->first), iter->second);
}
+ WriteSourceTag(tag);
ClipboardDataBuilder::CommitToClipboard();
}
@@ -561,6 +587,11 @@ void Clipboard::ReadData(const FormatType& format, std::string* result) const {
GetClipboard()->ReadData(format.ToString(), result);
}
+Clipboard::SourceTag Clipboard::ReadSourceTag() const {
dcheng 2013/02/06 22:31:40 Can we just use ReadData() and WriteData() like th
vasilii 2013/02/07 17:30:05 Unfortunately no. ClipboardData has an explicit me
dcheng 2013/02/08 05:42:19 ... yikes. That's a bug. This is fine for now, but
+ DCHECK(CalledOnValidThread());
+ return GetClipboard()->ReadSourceTag();
+}
+
uint64 Clipboard::GetSequenceNumber(Buffer buffer) {
DCHECK(CalledOnValidThread());
return GetClipboard()->GetNumClipboardEntries();
@@ -602,6 +633,11 @@ void Clipboard::WriteData(const FormatType& format,
ClipboardDataBuilder::WriteData(format.ToString(), data_data, data_len);
}
+void Clipboard::WriteSourceTag(SourceTag tag) {
+ if (tag != SourceTag())
+ ClipboardDataBuilder::WriteSourceTag(tag);
+}
+
// static
Clipboard::FormatType Clipboard::GetFormatType(
const std::string& format_string) {

Powered by Google App Engine
This is Rietveld 408576698