Chromium Code Reviews| Index: ui/base/dragdrop/os_exchange_data_provider_mac.mm | 
| diff --git a/ui/base/dragdrop/os_exchange_data_provider_mac.mm b/ui/base/dragdrop/os_exchange_data_provider_mac.mm | 
| index 5be2c7994894db9f8d33df4df0781fdede8dd5b6..8671ddce54005e8b497b5a2d9745a8a6eb1791b5 100644 | 
| --- a/ui/base/dragdrop/os_exchange_data_provider_mac.mm | 
| +++ b/ui/base/dragdrop/os_exchange_data_provider_mac.mm | 
| @@ -7,11 +7,13 @@ | 
| #import <Cocoa/Cocoa.h> | 
| #include "base/logging.h" | 
| +#include "base/memory/ptr_util.h" | 
| #include "base/pickle.h" | 
| #include "base/strings/sys_string_conversions.h" | 
| #include "base/strings/utf_string_conversions.h" | 
| #import "third_party/mozilla/NSPasteboard+Utils.h" | 
| #import "ui/base/clipboard/clipboard_util_mac.h" | 
| +#import "ui/base/dragdrop/cocoa_dnd_util.h" | 
| #include "url/gurl.h" | 
| namespace ui { | 
| @@ -69,6 +71,17 @@ void OSExchangeDataProviderMac::SetPickledData( | 
| [pasteboard_->get() setData:ns_data forType:format.ToNSString()]; | 
| } | 
| +void OSExchangeDataProviderMac::SetDragImage( | 
| + const gfx::ImageSkia& image, | 
| + const gfx::Vector2d& cursor_offset) { | 
| + drag_image_ = image; | 
| + cursor_offset_ = cursor_offset; | 
| +} | 
| + | 
| +void OSExchangeDataProviderMac::SetEvent(const Event& event) { | 
| + event_ = Event::Clone(event); | 
| +} | 
| + | 
| bool OSExchangeDataProviderMac::GetString(base::string16* data) const { | 
| DCHECK(data); | 
| NSString* item = [pasteboard_->get() stringForType:NSPasteboardTypeString]; | 
| @@ -76,7 +89,6 @@ bool OSExchangeDataProviderMac::GetString(base::string16* data) const { | 
| *data = base::SysNSStringToUTF16(item); | 
| return true; | 
| } | 
| - | 
| // There was no NSString, check for an NSURL. | 
| 
 
tapted
2016/05/24 08:06:00
nit: put back blank line above?
 
spqchan
2016/05/26 01:56:53
Done.
 
 | 
| GURL url; | 
| base::string16 title; | 
| @@ -148,6 +160,23 @@ bool OSExchangeDataProviderMac::GetPickledData( | 
| return true; | 
| } | 
| +const gfx::ImageSkia& OSExchangeDataProviderMac::GetDragImage() const { | 
| + return drag_image_; | 
| +} | 
| + | 
| +const gfx::Vector2d& OSExchangeDataProviderMac::GetDragImageOffset() const { | 
| + return cursor_offset_; | 
| +} | 
| + | 
| +const Event* OSExchangeDataProviderMac::GetEvent() const { | 
| + DCHECK(event_.get()); | 
| + return event_.get(); | 
| +} | 
| + | 
| +NSData* OSExchangeDataProviderMac::GetNSDataForType(NSString* type) const { | 
| + return [pasteboard_->get() dataForType:type]; | 
| +} | 
| + | 
| bool OSExchangeDataProviderMac::HasString() const { | 
| base::string16 string; | 
| return GetString(&string); | 
| @@ -169,6 +198,27 @@ bool OSExchangeDataProviderMac::HasCustomFormat( | 
| return [[pasteboard_->get() types] containsObject:format.ToNSString()]; | 
| } | 
| +NSArray* OSExchangeDataProviderMac::GetPasteboardTypes() const { | 
| + return [pasteboard_->get() types]; | 
| +} | 
| + | 
| +std::unique_ptr<OSExchangeData> | 
| +OSExchangeDataProviderMac::CreateDataFromPasteboard(NSPasteboard* pasteboard) { | 
| + OSExchangeDataProviderMac* provider = new OSExchangeDataProviderMac(); | 
| + | 
| + for (NSPasteboardItem* item in [pasteboard pasteboardItems]) | 
| + ClipboardUtil::AddDataToPasteboard(provider->pasteboard_->get(), item); | 
| + | 
| + return base::WrapUnique(new OSExchangeData(provider)); | 
| +} | 
| + | 
| +NSArray* OSExchangeDataProviderMac::SupportedPasteboardTypes() { | 
| + return @[ | 
| + ui::ClipboardUtil::UTIForWebURLsAndTitles(), NSURLPboardType, | 
| + NSPasteboardTypeString, NSFilenamesPboardType | 
| + ]; | 
| +} | 
| + | 
| /////////////////////////////////////////////////////////////////////////////// | 
| // OSExchangeData, public: |