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

Side by Side Diff: ui/base/dragdrop/os_exchange_data_provider_mac.mm

Issue 2179813003: Allow OSExchangeData::Provider to be overridden at run time. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac + win Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/base/dragdrop/os_exchange_data_provider_mac.h" 5 #include "ui/base/dragdrop/os_exchange_data_provider_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 11 matching lines...) Expand all
22 OSExchangeDataProviderMac::OSExchangeDataProviderMac() 22 OSExchangeDataProviderMac::OSExchangeDataProviderMac()
23 : pasteboard_(new ui::UniquePasteboard) {} 23 : pasteboard_(new ui::UniquePasteboard) {}
24 24
25 OSExchangeDataProviderMac::OSExchangeDataProviderMac( 25 OSExchangeDataProviderMac::OSExchangeDataProviderMac(
26 scoped_refptr<ui::UniquePasteboard> pb) 26 scoped_refptr<ui::UniquePasteboard> pb)
27 : pasteboard_(pb) {} 27 : pasteboard_(pb) {}
28 28
29 OSExchangeDataProviderMac::~OSExchangeDataProviderMac() { 29 OSExchangeDataProviderMac::~OSExchangeDataProviderMac() {
30 } 30 }
31 31
32 OSExchangeData::Provider* OSExchangeDataProviderMac::Clone() const { 32 std::unique_ptr<OSExchangeData::Provider>
33 return new OSExchangeDataProviderMac(pasteboard_); 33 OSExchangeDataProviderMac::Clone() const {
34 return std::unique_ptr<OSExchangeData::Provider>(
35 new OSExchangeDataProviderMac(pasteboard_));
34 } 36 }
35 37
36 void OSExchangeDataProviderMac::MarkOriginatedFromRenderer() { 38 void OSExchangeDataProviderMac::MarkOriginatedFromRenderer() {
37 NOTIMPLEMENTED(); 39 NOTIMPLEMENTED();
38 } 40 }
39 41
40 bool OSExchangeDataProviderMac::DidOriginateFromRenderer() const { 42 bool OSExchangeDataProviderMac::DidOriginateFromRenderer() const {
41 NOTIMPLEMENTED(); 43 NOTIMPLEMENTED();
42 return false; 44 return false;
43 } 45 }
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 194 }
193 195
194 // static 196 // static
195 std::unique_ptr<OSExchangeData> 197 std::unique_ptr<OSExchangeData>
196 OSExchangeDataProviderMac::CreateDataFromPasteboard(NSPasteboard* pasteboard) { 198 OSExchangeDataProviderMac::CreateDataFromPasteboard(NSPasteboard* pasteboard) {
197 OSExchangeDataProviderMac* provider = new OSExchangeDataProviderMac(); 199 OSExchangeDataProviderMac* provider = new OSExchangeDataProviderMac();
198 200
199 for (NSPasteboardItem* item in [pasteboard pasteboardItems]) 201 for (NSPasteboardItem* item in [pasteboard pasteboardItems])
200 ClipboardUtil::AddDataToPasteboard(provider->pasteboard_->get(), item); 202 ClipboardUtil::AddDataToPasteboard(provider->pasteboard_->get(), item);
201 203
202 return base::MakeUnique<OSExchangeData>(provider); 204 return base::MakeUnique<OSExchangeData>(
205 base::WrapUnique<OSExchangeData::Provider>(provider));
203 } 206 }
204 207
205 // static 208 // static
206 NSArray* OSExchangeDataProviderMac::SupportedPasteboardTypes() { 209 NSArray* OSExchangeDataProviderMac::SupportedPasteboardTypes() {
207 return @[ 210 return @[
208 kWebCustomDataPboardType, ui::ClipboardUtil::UTIForWebURLsAndTitles(), 211 kWebCustomDataPboardType, ui::ClipboardUtil::UTIForWebURLsAndTitles(),
209 NSURLPboardType, NSFilenamesPboardType, ui::kChromeDragDummyPboardType, 212 NSURLPboardType, NSFilenamesPboardType, ui::kChromeDragDummyPboardType,
210 NSStringPboardType, NSHTMLPboardType, NSRTFPboardType, 213 NSStringPboardType, NSHTMLPboardType, NSRTFPboardType,
211 NSFilenamesPboardType, ui::kWebCustomDataPboardType, NSPasteboardTypeString 214 NSFilenamesPboardType, ui::kWebCustomDataPboardType, NSPasteboardTypeString
212 ]; 215 ];
213 } 216 }
214 217
215 ///////////////////////////////////////////////////////////////////////////////
216 // OSExchangeData, public:
217
218 // static
219 OSExchangeData::Provider* OSExchangeData::CreateProvider() {
220 return new OSExchangeDataProviderMac;
221 }
222
223 } // namespace ui 218 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/dragdrop/os_exchange_data_provider_mac.h ('k') | ui/base/dragdrop/os_exchange_data_provider_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698