diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/ui/base/clipboard/clipboard_mac.mm | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/ui/base/clipboard/clipboard_mac.mm')
-rw-r--r-- | chromium/ui/base/clipboard/clipboard_mac.mm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/chromium/ui/base/clipboard/clipboard_mac.mm b/chromium/ui/base/clipboard/clipboard_mac.mm index 4c8e0e874b0..c396f9effea 100644 --- a/chromium/ui/base/clipboard/clipboard_mac.mm +++ b/chromium/ui/base/clipboard/clipboard_mac.mm @@ -24,6 +24,7 @@ #import "third_party/mozilla/NSPasteboard+Utils.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/clipboard/clipboard_constants.h" +#include "ui/base/clipboard/clipboard_metrics.h" #include "ui/base/clipboard/clipboard_util_mac.h" #include "ui/base/clipboard/custom_data_helper.h" #include "ui/gfx/canvas.h" @@ -85,6 +86,27 @@ bool ClipboardMac::IsFormatAvailable(const ClipboardFormatType& format, return [types containsObject:format.ToNSString()]; } +bool ClipboardMac::IsMarkedByOriginatorAsConfidential() const { + DCHECK(CalledOnValidThread()); + + NSPasteboard* pb = GetPasteboard(); + NSPasteboardType type = + [pb availableTypeFromArray:@[ kUTTypeConfidentialData ]]; + + if (type) + return true; + + return false; +} + +void ClipboardMac::MarkAsConfidential() { + DCHECK(CalledOnValidThread()); + + NSPasteboard* pb = GetPasteboard(); + [pb addTypes:@[ kUTTypeConfidentialData ] owner:nil]; + [pb setData:nil forType:kUTTypeConfidentialData]; +} + void ClipboardMac::Clear(ClipboardBuffer buffer) { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); @@ -138,6 +160,7 @@ void ClipboardMac::ReadText(ClipboardBuffer buffer, base::string16* result) const { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); + RecordRead(ClipboardFormatMetric::kText); NSPasteboard* pb = GetPasteboard(); NSString* contents = [pb stringForType:NSPasteboardTypeString]; @@ -148,6 +171,7 @@ void ClipboardMac::ReadAsciiText(ClipboardBuffer buffer, std::string* result) const { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); + RecordRead(ClipboardFormatMetric::kText); NSPasteboard* pb = GetPasteboard(); NSString* contents = [pb stringForType:NSPasteboardTypeString]; @@ -164,6 +188,7 @@ void ClipboardMac::ReadHTML(ClipboardBuffer buffer, uint32_t* fragment_end) const { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); + RecordRead(ClipboardFormatMetric::kHtml); // TODO(avi): src_url? markup->clear(); @@ -191,12 +216,14 @@ void ClipboardMac::ReadHTML(ClipboardBuffer buffer, void ClipboardMac::ReadRTF(ClipboardBuffer buffer, std::string* result) const { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); + RecordRead(ClipboardFormatMetric::kRtf); return ReadData(ClipboardFormatType::GetRtfType(), result); } void ClipboardMac::ReadImage(ClipboardBuffer buffer, ReadImageCallback callback) const { + RecordRead(ClipboardFormatMetric::kImage); std::move(callback).Run(ReadImageInternal(buffer, GetPasteboard())); } @@ -205,6 +232,7 @@ void ClipboardMac::ReadCustomData(ClipboardBuffer buffer, base::string16* result) const { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); + RecordRead(ClipboardFormatMetric::kCustomData); NSPasteboard* pb = GetPasteboard(); if ([[pb types] containsObject:kWebCustomDataPboardType]) { @@ -216,6 +244,7 @@ void ClipboardMac::ReadCustomData(ClipboardBuffer buffer, void ClipboardMac::ReadBookmark(base::string16* title, std::string* url) const { DCHECK(CalledOnValidThread()); + RecordRead(ClipboardFormatMetric::kBookmark); NSPasteboard* pb = GetPasteboard(); if (title) { @@ -235,6 +264,7 @@ void ClipboardMac::ReadBookmark(base::string16* title, std::string* url) const { void ClipboardMac::ReadData(const ClipboardFormatType& format, std::string* result) const { DCHECK(CalledOnValidThread()); + RecordRead(ClipboardFormatMetric::kData); NSPasteboard* pb = GetPasteboard(); NSData* data = [pb dataForType:format.ToNSString()]; if ([data length]) |