Changeset 238360 in webkit
- Timestamp:
- Nov 17, 2018 10:17:44 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r238359 r238360 1 2018-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [iOS] Remove all usages of UIItemProvider, UIItemProviderReading, and related classes 4 https://bugs.webkit.org/show_bug.cgi?id=191819 5 6 Reviewed by Dan Bernstein. 7 8 Replace UIItemProvider (and related classes) with NSItemProvider. 9 10 * platform/ios/PlatformPasteboardIOS.mm: 11 (WebCore::registerItemToPasteboard): 12 * platform/ios/WebItemProviderPasteboard.h: 13 * platform/ios/WebItemProviderPasteboard.mm: 14 (-[WebItemProviderDataRegistrar registerItemProvider:]): 15 (-[WebItemProviderWritableObjectRegistrar initWithObject:]): 16 (-[WebItemProviderWritableObjectRegistrar representingObject]): 17 (-[WebItemProviderWritableObjectRegistrar registerItemProvider:]): 18 (-[WebItemProviderRegistrationInfoList addRepresentingObject:]): 19 (-[WebItemProviderRegistrationInfoList itemProvider]): 20 (-[WebItemProviderPasteboard pasteboardTypes]): 21 (-[WebItemProviderPasteboard _preLoadedDataConformingToType:forItemProviderAtIndex:]): 22 (-[WebItemProviderPasteboard dataForPasteboardType:inItemSet:]): 23 (allLoadableClasses): 24 (classForTypeIdentifier): 25 (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]): 26 (-[WebItemProviderPasteboard numberOfFiles]): 27 (-[WebItemProviderPasteboard itemProviderAtIndex:]): 28 (-[WebItemProviderPasteboard enumerateItemProvidersWithBlock:]): 29 * platform/mac/DragDataMac.mm: 30 (WebCore::DragData::containsURL const): 31 1 32 2018-11-17 Ross Kirsling <ross.kirsling@sony.com> 2 33 -
trunk/Source/WebCore/PAL/ChangeLog
r238298 r238360 1 2018-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [iOS] Remove all usages of UIItemProvider, UIItemProviderReading, and related classes 4 https://bugs.webkit.org/show_bug.cgi?id=191819 5 6 Reviewed by Dan Bernstein. 7 8 Replace UIItemProvider (and related classes) with NSItemProvider. 9 10 * pal/spi/ios/UIKitSPI.h: 11 1 12 2018-11-16 Brent Fulgham <bfulgham@apple.com> 2 13 -
trunk/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h
r238078 r238360 40 40 41 41 #if ENABLE(DATA_INTERACTION) 42 #import <UIKit/NS AttributedString+UIItemProvider.h>43 #import <UIKit/NS String+UIItemProvider.h>42 #import <UIKit/NSItemProvider+UIKitAdditions.h> 43 #import <UIKit/NSItemProvider+UIKitAdditions_Private.h> 44 44 #import <UIKit/NSURL+UIItemProvider.h> 45 #import <UIKit/UIImage+UIItemProvider.h>46 #import <UIKit/UIItemProvider_Private.h>47 45 #endif 48 46 … … 118 116 #endif 119 117 120 #if ENABLE(DATA_INTERACTION)121 122 NS_ASSUME_NONNULL_BEGIN123 124 @interface UIItemProvider : NSItemProvider125 @end126 127 #define UIItemProviderRepresentationOptionsVisibilityAll NSItemProviderRepresentationVisibilityAll128 129 @protocol UIItemProviderReading <NSItemProviderReading>130 131 @required132 - (nullable instancetype)initWithItemProviderData:(NSData *)data typeIdentifier:(NSString *)typeIdentifier error:(NSError **)outError;133 134 @end135 136 @protocol UIItemProviderWriting <NSItemProviderWriting>137 138 @required139 - (NSProgress * _Nullable)loadDataWithTypeIdentifier:(NSString *)typeIdentifier forItemProviderCompletionHandler:(void (^)(NSData * _Nullable, NSError * _Nullable))completionHandler;140 141 @end142 143 @interface NSAttributedString () <UIItemProviderReading, UIItemProviderWriting>144 @end145 146 @interface NSString () <UIItemProviderReading, UIItemProviderWriting>147 @end148 149 @interface NSURL () <UIItemProviderReading, UIItemProviderWriting>150 @end151 152 @interface UIImage () <UIItemProviderReading, UIItemProviderWriting>153 @end154 155 NS_ASSUME_NONNULL_END156 157 118 #endif 158 159 #endif -
trunk/Source/WebCore/platform/ios/PlatformPasteboardIOS.mm
r237266 r238360 293 293 [pasteboard setItems:@[ itemDictionary.get() ]]; 294 294 #else 295 if ( UIItemProvider *itemProvider = representationsToRegister.itemProvider)295 if (NSItemProvider *itemProvider = representationsToRegister.itemProvider) 296 296 [pasteboard setItemProviders:@[ itemProvider ]]; 297 297 else -
trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.h
r233436 r238360 27 27 28 28 #if TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 29 30 // UIItemProviders are not implemented for iOS apps for Mac, because they were depricated last year.31 // We need to switch over to NSItemProviders everywhere. This should just be a temporary fix.32 #if defined(TARGET_OS_IOSMAC) && TARGET_OS_IOSMAC33 34 #define UIItemProvider NSItemProvider35 #define UIItemProviderReading NSItemProviderReading36 #define UIItemProviderWriting NSItemProviderWriting37 #define UIItemProviderRepresentationOptionsVisibilityAll NSItemProviderRepresentationVisibilityAll38 39 #endif40 41 @class UIItemProvider;42 @protocol UIItemProviderWriting;43 29 44 30 struct CGSize; … … 78 64 WEBCORE_EXPORT @interface WebItemProviderRegistrationInfoList : NSObject 79 65 80 - (void)addRepresentingObject:(id < UIItemProviderWriting>)object;66 - (void)addRepresentingObject:(id <NSItemProviderWriting>)object; 81 67 - (void)addData:(NSData *)data forType:(NSString *)typeIdentifier; 82 68 - (void)addPromisedType:(NSString *)typeIdentifier fileCallback:(void(^)(WebItemProviderFileCallback))callback; … … 84 70 @property (nonatomic) CGSize preferredPresentationSize; 85 71 @property (nonatomic, copy) NSString *suggestedName; 86 @property (nonatomic, readonly, nullable) UIItemProvider *itemProvider;72 @property (nonatomic, readonly, nullable) __kindof NSItemProvider *itemProvider; 87 73 88 74 @property (nonatomic) WebPreferredPresentationStyle preferredPresentationStyle; … … 115 101 - (void)decrementPendingOperationCount; 116 102 117 - (void)enumerateItemProvidersWithBlock:(void (^)( UIItemProvider *itemProvider, NSUInteger index, BOOL *stop))block;103 - (void)enumerateItemProvidersWithBlock:(void (^)(__kindof NSItemProvider *itemProvider, NSUInteger index, BOOL *stop))block; 118 104 119 105 // The given completion block is always dispatched on the main thread. -
trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.mm
r234809 r238360 46 46 SOFT_LINK_CLASS(UIKit, UIColor) 47 47 SOFT_LINK_CLASS(UIKit, UIImage) 48 SOFT_LINK_CLASS(UIKit, UIItemProvider)49 48 50 49 typedef void(^ItemProviderDataLoadCompletionHandler)(NSData *, NSError *); … … 98 97 - (void)registerItemProvider:(NSItemProvider *)itemProvider 99 98 { 100 [itemProvider registerDataRepresentationForTypeIdentifier:self.typeIdentifier visibility: UIItemProviderRepresentationOptionsVisibilityAll loadHandler:[itemData = _data] (ItemProviderDataLoadCompletionHandler completionHandler) -> NSProgress * {99 [itemProvider registerDataRepresentationForTypeIdentifier:self.typeIdentifier visibility:NSItemProviderRepresentationVisibilityAll loadHandler:[itemData = _data] (ItemProviderDataLoadCompletionHandler completionHandler) -> NSProgress * { 101 100 completionHandler(itemData.get(), nil); 102 101 return nil; … … 112 111 113 112 @interface WebItemProviderWritableObjectRegistrar : NSObject <WebItemProviderRegistrar> 114 - (instancetype)initWithObject:(id < UIItemProviderWriting>)representingObject;115 @property (nonatomic, readonly) id < UIItemProviderWriting> representingObject;113 - (instancetype)initWithObject:(id <NSItemProviderWriting>)representingObject; 114 @property (nonatomic, readonly) id <NSItemProviderWriting> representingObject; 116 115 @end 117 116 118 117 @implementation WebItemProviderWritableObjectRegistrar { 119 RetainPtr<id < UIItemProviderWriting>> _representingObject;120 } 121 122 - (instancetype)initWithObject:(id < UIItemProviderWriting>)representingObject118 RetainPtr<id <NSItemProviderWriting>> _representingObject; 119 } 120 121 - (instancetype)initWithObject:(id <NSItemProviderWriting>)representingObject 123 122 { 124 123 if (!(self = [super init])) … … 129 128 } 130 129 131 - (id < UIItemProviderWriting>)representingObject130 - (id <NSItemProviderWriting>)representingObject 132 131 { 133 132 return _representingObject.get(); … … 141 140 - (void)registerItemProvider:(NSItemProvider *)itemProvider 142 141 { 143 [itemProvider registerObject:self.representingObject visibility: UIItemProviderRepresentationOptionsVisibilityAll];142 [itemProvider registerObject:self.representingObject visibility:NSItemProviderRepresentationVisibilityAll]; 144 143 } 145 144 … … 225 224 } 226 225 227 - (void)addRepresentingObject:(id < UIItemProviderWriting>)object228 { 229 ASSERT([object conformsToProtocol:@protocol( UIItemProviderWriting)]);226 - (void)addRepresentingObject:(id <NSItemProviderWriting>)object 227 { 228 ASSERT([object conformsToProtocol:@protocol(NSItemProviderWriting)]); 230 229 auto representation = adoptNS([[WebItemProviderWritableObjectRegistrar alloc] initWithObject:object]); 231 230 [_representations addObject:representation.get()]; … … 274 273 #endif 275 274 276 - ( UIItemProvider *)itemProvider275 - (NSItemProvider *)itemProvider 277 276 { 278 277 if (!self.numberOfItems) 279 278 return nil; 280 279 281 auto itemProvider = adoptNS([ allocUIItemProviderInstance() init]);280 auto itemProvider = adoptNS([NSItemProvider new]); 282 281 for (id <WebItemProviderRegistrar> representation in _representations.get()) 283 282 [representation registerItemProvider:itemProvider.get()]; 284 283 [itemProvider setSuggestedName:self.suggestedName]; 285 // UIItemProviders are not implemented for iOS apps for Mac, because they were depricated last year.286 // We need to switch over to NSItemProviders everywhere. This should just be a temporary fix.287 284 #if !PLATFORM(IOSMAC) 288 285 [itemProvider setPreferredPresentationSize:self.preferredPresentationSize]; … … 455 452 NSMutableSet<NSString *> *allTypes = [NSMutableSet set]; 456 453 NSMutableArray<NSString *> *allTypesInOrder = [NSMutableArray array]; 457 for ( UIItemProvider *provider in _itemProviders.get()) {454 for (NSItemProvider *provider in _itemProviders.get()) { 458 455 for (NSString *typeIdentifier in provider.registeredTypeIdentifiers) { 459 456 if ([allTypes containsObject:typeIdentifier]) … … 502 499 continue; 503 500 504 // We've already loaded data relevant for this UTI type onto disk, so there's no need to ask the UIItemProvider for the same data again.501 // We've already loaded data relevant for this UTI type onto disk, so there's no need to ask the NSItemProvider for the same data again. 505 502 if (NSData *result = [NSData dataWithContentsOfURL:[loadResult fileURLForType:loadedType] options:NSDataReadingMappedIfSafe error:nil]) 506 503 return result; … … 522 519 RetainPtr<WebItemProviderPasteboard> retainedSelf = self; 523 520 [itemSet enumerateIndexesUsingBlock:[retainedSelf, pasteboardType, values] (NSUInteger index, BOOL *) { 524 UIItemProvider *provider = [retainedSelf itemProviderAtIndex:index];521 NSItemProvider *provider = [retainedSelf itemProviderAtIndex:index]; 525 522 if (!provider) 526 523 return; … … 532 529 } 533 530 534 static NSArray<Class< UIItemProviderReading>> *allLoadableClasses()531 static NSArray<Class<NSItemProviderReading>> *allLoadableClasses() 535 532 { 536 533 return @[ [getUIColorClass() class], [getUIImageClass() class], [NSURL class], [NSString class], [NSAttributedString class] ]; … … 541 538 outTypeIdentifierToLoad = typeIdentifier; 542 539 543 // First, try to load a platform UIItemProviderReading-conformant object as-is.544 for (Class< UIItemProviderReading> loadableClass in allLoadableClasses()) {540 // First, try to load a platform NSItemProviderReading-conformant object as-is. 541 for (Class<NSItemProviderReading> loadableClass in allLoadableClasses()) { 545 542 if ([[loadableClass readableTypeIdentifiersForItemProvider] containsObject:(NSString *)typeIdentifier]) 546 543 return loadableClass; … … 566 563 RetainPtr<WebItemProviderPasteboard> retainedSelf = self; 567 564 [itemSet enumerateIndexesUsingBlock:[retainedSelf, pasteboardType, values] (NSUInteger index, BOOL *) { 568 UIItemProvider *provider = [retainedSelf itemProviderAtIndex:index];565 NSItemProvider *provider = [retainedSelf itemProviderAtIndex:index]; 569 566 if (!provider) 570 567 return; … … 646 643 NSArray *supportedFileTypes = Pasteboard::supportedFileUploadPasteboardTypes(); 647 644 NSInteger numberOfFiles = 0; 648 for ( UIItemProvider *itemProvider in _itemProviders.get()) {645 for (NSItemProvider *itemProvider in _itemProviders.get()) { 649 646 if (itemProvider.preferredPresentationStyle == UIPreferredPresentationStyleInline) 650 647 continue; … … 794 791 } 795 792 796 - ( UIItemProvider *)itemProviderAtIndex:(NSUInteger)index793 - (NSItemProvider *)itemProviderAtIndex:(NSUInteger)index 797 794 { 798 795 return index < [_itemProviders count] ? [_itemProviders objectAtIndex:index] : nil; … … 814 811 } 815 812 816 - (void)enumerateItemProvidersWithBlock:(void (^)( UIItemProvider *itemProvider, NSUInteger index, BOOL *stop))block813 - (void)enumerateItemProvidersWithBlock:(void (^)(__kindof NSItemProvider *itemProvider, NSUInteger index, BOOL *stop))block 817 814 { 818 815 [_itemProviders enumerateObjectsUsingBlock:block]; -
trunk/Source/WebCore/platform/mac/DragDataMac.mm
r237266 r238360 275 275 auto urlString = platformStrategies()->pasteboardStrategy()->stringForType(urlPasteboardType(), m_pasteboardName); 276 276 if (urlString.isEmpty()) { 277 // On iOS, we don't get access to the contents of UIItemProviders until we perform the drag operation.277 // On iOS, we don't get access to the contents of NSItemProviders until we perform the drag operation. 278 278 // Thus, we consider DragData to contain an URL if it contains the `public.url` UTI type. Later down the 279 279 // road, when we perform the drag operation, we can then check if the URL's protocol is http or https, -
trunk/Source/WebKit/ChangeLog
r238358 r238360 1 2018-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [iOS] Remove all usages of UIItemProvider, UIItemProviderReading, and related classes 4 https://bugs.webkit.org/show_bug.cgi?id=191819 5 6 Reviewed by Dan Bernstein. 7 8 Replace UIItemProvider (and related classes) with NSItemProvider. 9 10 * Platform/spi/ios/UIKitSPI.h: 11 * UIProcess/ios/WKContentViewInteraction.mm: 12 (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): 13 (-[WKContentView dropInteraction:performDrop:]): 14 1 15 2018-11-17 Ross Kirsling <ross.kirsling@sony.com> 2 16 -
trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h
r238235 r238360 92 92 #if ENABLE(DRAG_SUPPORT) 93 93 #import <UIKit/NSItemProvider+UIKitAdditions_Private.h> 94 #import <UIKit/UIItemProvider_Private.h>95 94 #endif 96 95 … … 936 935 #if ENABLE(DRAG_SUPPORT) 937 936 938 @interface UIItemProvider : NSItemProvider939 @end940 941 937 WTF_EXTERN_C_BEGIN 942 938 -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
r238235 r238360 5305 5305 } 5306 5306 5307 static NSArray< UIItemProvider *> *extractItemProvidersFromDragItems(NSArray<UIDragItem *> *dragItems)5308 { 5309 NSMutableArray< UIItemProvider *> *providers = [NSMutableArray array];5307 static NSArray<NSItemProvider *> *extractItemProvidersFromDragItems(NSArray<UIDragItem *> *dragItems) 5308 { 5309 NSMutableArray<NSItemProvider *> *providers = [NSMutableArray array]; 5310 5310 for (UIDragItem *item in dragItems) { 5311 RetainPtr<UIItemProvider> provider = item.itemProvider; 5312 if (provider) 5313 [providers addObject:provider.get()]; 5311 if (NSItemProvider *provider = item.itemProvider) 5312 [providers addObject:provider]; 5314 5313 } 5315 5314 return providers; 5316 5315 } 5317 5316 5318 static NSArray< UIItemProvider *> *extractItemProvidersFromDropSession(id <UIDropSession> session)5317 static NSArray<NSItemProvider *> *extractItemProvidersFromDropSession(id <UIDropSession> session) 5319 5318 { 5320 5319 return extractItemProvidersFromDragItems(session.items); … … 5492 5491 - (NSArray<UIDragItem *> *)_itemsForBeginningOrAddingToSessionWithRegistrationList:(WebItemProviderRegistrationInfoList *)registrationList stagedDragSource:(const DragSourceState&)stagedDragSource 5493 5492 { 5494 UIItemProvider *defaultItemProvider = registrationList.itemProvider;5493 NSItemProvider *defaultItemProvider = registrationList.itemProvider; 5495 5494 if (!defaultItemProvider) 5496 5495 return @[ ]; … … 5512 5511 5513 5512 NSMutableArray *dragItems = [NSMutableArray arrayWithCapacity:adjustedItemProviders.count]; 5514 for ( UIItemProvider *itemProvider in adjustedItemProviders) {5513 for (NSItemProvider *itemProvider in adjustedItemProviders) { 5515 5514 auto item = adoptNS([[UIDragItem alloc] initWithItemProvider:itemProvider]); 5516 5515 [item _setPrivateLocalContext:@(stagedDragSource.itemIdentifier)]; … … 5776 5775 - (void)dropInteraction:(UIDropInteraction *)interaction performDrop:(id <UIDropSession>)session 5777 5776 { 5778 NSArray < UIItemProvider *> *itemProviders = extractItemProvidersFromDropSession(session);5777 NSArray <NSItemProvider *> *itemProviders = extractItemProvidersFromDropSession(session); 5779 5778 id <WKUIDelegatePrivate> uiDelegate = self.webViewUIDelegate; 5780 5779 if ([uiDelegate respondsToSelector:@selector(_webView:performDataInteractionOperationWithItemProviders:)]) { -
trunk/Tools/ChangeLog
r238356 r238360 1 2018-11-17 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 [iOS] Remove all usages of UIItemProvider, UIItemProviderReading, and related classes 4 https://bugs.webkit.org/show_bug.cgi?id=191819 5 6 Reviewed by Dan Bernstein. 7 8 Replace UIItemProvider (and related classes) with NSItemProvider. 9 10 * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: 11 (platformCopyPNG): 12 * TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm: 13 (-[NSItemProvider registerDataRepresentationForTypeIdentifier:withData:]): 14 15 Replace usages of this deprecated method with `-registerDataRepresentationForTypeIdentifier:visibility:loadHandler:`. 16 17 (checkEstimatedSize): 18 (checkSuggestedNameAndEstimatedSize): 19 (TestWebKitAPI::TEST): 20 (-[UIItemProvider registerDataRepresentationForTypeIdentifier:withData:]): Deleted. 21 * TestWebKitAPI/cocoa/DragAndDropSimulator.h: 22 * TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm: 23 (-[MockDragDropSession canLoadObjectsOfClass:]): 24 (-[MockDragDropSession canLoadObjectsOfClasses:]): 25 (-[MockDropSession initWithProviders:location:window:allowMove:]): 26 (-[MockDropSession canCreateItemsOfClass:]): 27 (-[DragAndDropSimulator _advanceProgress]): 28 (-[DragAndDropSimulator _webView:dataInteractionOperationWasHandled:forSession:itemProviders:]): 29 (-[DragAndDropSimulator _webView:adjustedDataInteractionItemProvidersForItemProvider:representingObjects:additionalData:]): 30 * TestWebKitAPI/ios/UIKitSPI.h: 31 1 32 2018-11-17 Chris Dumez <cdumez@apple.com> 2 33 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm
r238186 r238360 533 533 #elif PLATFORM(IOS_FAMILY) 534 534 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 535 auto item = adoptNS([[ UIItemProvider alloc] init]);535 auto item = adoptNS([[NSItemProvider alloc] init]); 536 536 [item setPreferredPresentationStyle:UIPreferredPresentationStyleAttachment]; 537 537 [item registerData:testImageData() type:(__bridge NSString *)kUTTypePNG]; -
trunk/Tools/TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm
r238188 r238360 46 46 typedef void (^FileLoadCompletionBlock)(NSURL *, BOOL, NSError *); 47 47 typedef void (^DataLoadCompletionBlock)(NSData *, NSError *); 48 typedef void (^ UIItemProviderDataLoadCompletionBlock)(NSData *, NSError *);48 typedef void (^NSItemProviderDataLoadCompletionBlock)(NSData *, NSError *); 49 49 50 50 #if !USE(APPLE_INTERNAL_SDK) 51 51 52 @interface UIItemProviderRepresentationOptions : NSObject52 @interface NSItemProviderRepresentationOptions : NSObject 53 53 @end 54 54 55 55 #endif 56 56 57 @interface UIItemProvider() 58 + (UIItemProvider *)itemProviderWithURL:(NSURL *)url title:(NSString *)title; 59 - (void) registerDataRepresentationForTypeIdentifier:(NSString *)typeIdentifier options:(UIItemProviderRepresentationOptions*)options loadHandler:(NSProgress * (^)(void (^UIItemProviderDataLoadCompletionBlock)(NSData *item, NSError *error))) loadHandler; 57 @interface NSItemProvider () 58 + (NSItemProvider *)itemProviderWithURL:(NSURL *)url title:(NSString *)title; 60 59 @end 61 60 … … 73 72 } 74 73 75 @implementation UIItemProvider (DragAndDropTests)74 @implementation NSItemProvider (DragAndDropTests) 76 75 77 76 - (void)registerDataRepresentationForTypeIdentifier:(NSString *)typeIdentifier withData:(NSData *)data 78 77 { 79 78 RetainPtr<NSData> retainedData = data; 80 [self registerDataRepresentationForTypeIdentifier:typeIdentifier visibility: UIItemProviderRepresentationOptionsVisibilityAll loadHandler: [retainedData] (DataLoadCompletionBlock block) -> NSProgress * {79 [self registerDataRepresentationForTypeIdentifier:typeIdentifier visibility:NSItemProviderRepresentationVisibilityAll loadHandler: [retainedData] (DataLoadCompletionBlock block) -> NSProgress * { 81 80 block(retainedData.get(), nil); 82 81 return [NSProgress discreteProgressWithTotalUnitCount:100]; … … 147 146 static void checkEstimatedSize(DragAndDropSimulator *simulator, CGSize estimatedSize) 148 147 { 149 UIItemProvider *sourceItemProvider = [simulator sourceItemProviders].firstObject;148 NSItemProvider *sourceItemProvider = [simulator sourceItemProviders].firstObject; 150 149 EXPECT_EQ(estimatedSize.width, sourceItemProvider.preferredPresentationSize.width); 151 150 EXPECT_EQ(estimatedSize.height, sourceItemProvider.preferredPresentationSize.height); … … 154 153 static void checkSuggestedNameAndEstimatedSize(DragAndDropSimulator *simulator, NSString *suggestedName, CGSize estimatedSize) 155 154 { 156 UIItemProvider *sourceItemProvider = [simulator sourceItemProviders].firstObject;155 NSItemProvider *sourceItemProvider = [simulator sourceItemProviders].firstObject; 157 156 EXPECT_WK_STREQ(suggestedName.UTF8String, sourceItemProvider.suggestedName.UTF8String); 158 157 EXPECT_EQ(estimatedSize.width, sourceItemProvider.preferredPresentationSize.width); … … 495 494 496 495 __block bool doneLoadingURL = false; 497 UIItemProvider *sourceItemProvider = [simulator sourceItemProviders].firstObject;496 NSItemProvider *sourceItemProvider = [simulator sourceItemProviders].firstObject; 498 497 [sourceItemProvider loadObjectOfClass:[NSURL class] completionHandler:^(id object, NSError *error) { 499 498 NSURL *url = object; … … 600 599 [webView synchronouslyLoadTestPageNamed:@"contenteditable-in-iframe"]; 601 600 602 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);603 [itemProvider registerObject:@"Hello world" visibility: UIItemProviderRepresentationOptionsVisibilityAll];601 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 602 [itemProvider registerObject:@"Hello world" visibility:NSItemProviderRepresentationVisibilityAll]; 604 603 605 604 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); … … 619 618 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 620 619 621 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);620 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 622 621 [simulatedItemProvider setPreferredPresentationStyle:UIPreferredPresentationStyleInline]; 623 622 [simulatedItemProvider registerObject:@"This item provider requested inline presentation style." visibility:NSItemProviderRepresentationVisibilityAll]; … … 635 634 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 636 635 637 auto simulatedJSONItemProvider = adoptNS([[ UIItemProvider alloc] init]);636 auto simulatedJSONItemProvider = adoptNS([[NSItemProvider alloc] init]); 638 637 NSData *jsonData = [@"{ \"foo\": \"bar\", \"bar\": \"baz\" }" dataUsingEncoding:NSUTF8StringEncoding]; 639 638 [simulatedJSONItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJSON withData:jsonData]; … … 651 650 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 652 651 653 auto simulatedImageItemProvider = adoptNS([[ UIItemProvider alloc] init]);652 auto simulatedImageItemProvider = adoptNS([[NSItemProvider alloc] init]); 654 653 NSData *imageData = UIImageJPEGRepresentation(testIconImage(), 0.5); 655 654 [simulatedImageItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG withData:imageData]; … … 668 667 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 669 668 670 auto simulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);669 auto simulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 671 670 NSData *htmlData = [@"<body contenteditable></body>" dataUsingEncoding:NSUTF8StringEncoding]; 672 671 [simulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:htmlData]; … … 688 687 [webView stringByEvaluatingJavaScript:@"upload.dropEffect = 'move'"]; 689 688 690 auto simulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);689 auto simulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 691 690 NSData *htmlData = [@"<body contenteditable></body>" dataUsingEncoding:NSUTF8StringEncoding]; 692 691 [simulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:htmlData]; … … 705 704 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 706 705 707 auto archiveProvider = adoptNS([[ UIItemProvider alloc] init]);706 auto archiveProvider = adoptNS([[NSItemProvider alloc] init]); 708 707 [archiveProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeZipArchive withData:testZIPArchive()]; 709 708 710 auto urlProvider = adoptNS([[ UIItemProvider alloc] init]);711 [urlProvider registerObject:[NSURL URLWithString:@"https://webkit.org"] visibility: UIItemProviderRepresentationOptionsVisibilityAll];709 auto urlProvider = adoptNS([[NSItemProvider alloc] init]); 710 [urlProvider registerObject:[NSURL URLWithString:@"https://webkit.org"] visibility:NSItemProviderRepresentationVisibilityAll]; 712 711 713 712 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); … … 724 723 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 725 724 726 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);725 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 727 726 [itemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeZipArchive withData:testZIPArchive()]; 728 727 … … 740 739 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 741 740 742 auto simulatedImageItemProvider = adoptNS([[ UIItemProvider alloc] init]);741 auto simulatedImageItemProvider = adoptNS([[NSItemProvider alloc] init]); 743 742 NSData *imageData = UIImageJPEGRepresentation(testIconImage(), 0.5); 744 743 [simulatedImageItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG withData:imageData]; 745 744 746 auto simulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);745 auto simulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 747 746 NSData *htmlData = [@"<body contenteditable></body>" dataUsingEncoding:NSUTF8StringEncoding]; 748 747 [simulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:htmlData]; … … 762 761 [webView stringByEvaluatingJavaScript:@"input.setAttribute('multiple', '')"]; 763 762 764 auto simulatedImageItemProvider = adoptNS([[ UIItemProvider alloc] init]);763 auto simulatedImageItemProvider = adoptNS([[NSItemProvider alloc] init]); 765 764 NSData *imageData = UIImageJPEGRepresentation(testIconImage(), 0.5); 766 765 [simulatedImageItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG withData:imageData]; 767 766 768 auto simulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);767 auto simulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 769 768 NSData *htmlData = [@"<body contenteditable></body>" dataUsingEncoding:NSUTF8StringEncoding]; 770 769 [simulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:htmlData]; … … 783 782 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 784 783 785 auto simulatedImageItemProvider = adoptNS([[ UIItemProvider alloc] init]);784 auto simulatedImageItemProvider = adoptNS([[NSItemProvider alloc] init]); 786 785 NSData *imageData = UIImageJPEGRepresentation(testIconImage(), 0.5); 787 786 [simulatedImageItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG withData:imageData]; 788 787 789 auto firstSimulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);788 auto firstSimulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 790 789 NSData *firstHTMLData = [@"<body contenteditable></body>" dataUsingEncoding:NSUTF8StringEncoding]; 791 790 [firstSimulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:firstHTMLData]; 792 791 793 auto secondSimulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);792 auto secondSimulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 794 793 NSData *secondHTMLData = [@"<html><body>hello world</body></html>" dataUsingEncoding:NSUTF8StringEncoding]; 795 794 [secondSimulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:secondHTMLData]; … … 811 810 812 811 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 813 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);812 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 814 813 NSData *htmlData = [@"<h1>This is a test</h1>" dataUsingEncoding:NSUTF8StringEncoding]; 815 814 [itemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:htmlData]; … … 831 830 NSDictionary *textAttributes = @{ NSFontAttributeName: [UIFont boldSystemFontOfSize:20] }; 832 831 NSAttributedString *richText = [[NSAttributedString alloc] initWithString:@"This is a test" attributes:textAttributes]; 833 auto itemProvider = adoptNS([[ UIItemProvider alloc] initWithObject:richText]);832 auto itemProvider = adoptNS([[NSItemProvider alloc] initWithObject:richText]); 834 833 [simulator setExternalItemProviders:@[ itemProvider.get() ]]; 835 834 [simulator runFrom:CGPointMake(300, 400) to:CGPointMake(100, 300)]; … … 847 846 NSDictionary *textAttributes = @{ NSForegroundColorAttributeName: [UIColor redColor] }; 848 847 NSAttributedString *richText = [[NSAttributedString alloc] initWithString:@"This is a test" attributes:textAttributes]; 849 auto itemProvider = adoptNS([[ UIItemProvider alloc] initWithObject:richText]);848 auto itemProvider = adoptNS([[NSItemProvider alloc] initWithObject:richText]); 850 849 [simulator setExternalItemProviders:@[ itemProvider.get() ]]; 851 850 [simulator runFrom:CGPointMake(300, 400) to:CGPointMake(100, 300)]; … … 862 861 863 862 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 864 auto firstItem = adoptNS([[ UIItemProvider alloc] init]);865 [firstItem registerObject:[NSURL URLWithString:@"https://www.apple.com/iphone/"] visibility: UIItemProviderRepresentationOptionsVisibilityAll];866 auto secondItem = adoptNS([[ UIItemProvider alloc] init]);867 [secondItem registerObject:[NSURL URLWithString:@"https://www.apple.com/mac/"] visibility: UIItemProviderRepresentationOptionsVisibilityAll];868 auto thirdItem = adoptNS([[ UIItemProvider alloc] init]);869 [thirdItem registerObject:[NSURL URLWithString:@"https://webkit.org/"] visibility: UIItemProviderRepresentationOptionsVisibilityAll];863 auto firstItem = adoptNS([[NSItemProvider alloc] init]); 864 [firstItem registerObject:[NSURL URLWithString:@"https://www.apple.com/iphone/"] visibility:NSItemProviderRepresentationVisibilityAll]; 865 auto secondItem = adoptNS([[NSItemProvider alloc] init]); 866 [secondItem registerObject:[NSURL URLWithString:@"https://www.apple.com/mac/"] visibility:NSItemProviderRepresentationVisibilityAll]; 867 auto thirdItem = adoptNS([[NSItemProvider alloc] init]); 868 [thirdItem registerObject:[NSURL URLWithString:@"https://webkit.org/"] visibility:NSItemProviderRepresentationVisibilityAll]; 870 869 [simulator setExternalItemProviders:@[ firstItem.get(), secondItem.get(), thirdItem.get() ]]; 871 870 [simulator runFrom:CGPointMake(300, 400) to:CGPointMake(100, 300)]; … … 896 895 // than the plain text, and erroneously insert the image. If we respect source fidelities, we'll insert text rather 897 896 // than an image. 898 auto simulatedItemProviderWithTextFirst = adoptNS([[ UIItemProvider alloc] init]);899 [simulatedItemProviderWithTextFirst registerObject:@"Hello world" visibility: UIItemProviderRepresentationOptionsVisibilityAll];900 [simulatedItemProviderWithTextFirst registerObject:testIconImage() visibility: UIItemProviderRepresentationOptionsVisibilityAll];897 auto simulatedItemProviderWithTextFirst = adoptNS([[NSItemProvider alloc] init]); 898 [simulatedItemProviderWithTextFirst registerObject:@"Hello world" visibility:NSItemProviderRepresentationVisibilityAll]; 899 [simulatedItemProviderWithTextFirst registerObject:testIconImage() visibility:NSItemProviderRepresentationVisibilityAll]; 901 900 [simulator setExternalItemProviders:@[ simulatedItemProviderWithTextFirst.get() ]]; 902 901 … … 907 906 908 907 // Now we register the item providers in reverse, and expect the image to be inserted instead of text. 909 auto simulatedItemProviderWithImageFirst = adoptNS([[ UIItemProvider alloc] init]);910 [simulatedItemProviderWithImageFirst registerObject:testIconImage() visibility: UIItemProviderRepresentationOptionsVisibilityAll];911 [simulatedItemProviderWithImageFirst registerObject:@"Hello world" visibility: UIItemProviderRepresentationOptionsVisibilityAll];908 auto simulatedItemProviderWithImageFirst = adoptNS([[NSItemProvider alloc] init]); 909 [simulatedItemProviderWithImageFirst registerObject:testIconImage() visibility:NSItemProviderRepresentationVisibilityAll]; 910 [simulatedItemProviderWithImageFirst registerObject:@"Hello world" visibility:NSItemProviderRepresentationVisibilityAll]; 912 911 [simulator setExternalItemProviders:@[ simulatedItemProviderWithImageFirst.get() ]]; 913 912 … … 931 930 NSString *textPayload = @"Ceci n'est pas une string"; 932 931 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 933 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);934 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText options:nil loadHandler:^NSProgress *(UIItemProviderDataLoadCompletionBlock completionBlock)932 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 933 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(NSItemProviderDataLoadCompletionBlock completionBlock) 935 934 { 936 935 completionBlock([textPayload dataUsingEncoding:NSUTF8StringEncoding], nil); … … 951 950 952 951 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 953 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);954 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG options:nil loadHandler:^NSProgress *(UIItemProviderDataLoadCompletionBlock completionBlock)952 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 953 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(NSItemProviderDataLoadCompletionBlock completionBlock) 955 954 { 956 955 completionBlock(UIImageJPEGRepresentation(testIconImage(), 0.5), nil); … … 971 970 NSURL *titledURL = [NSURL URLWithString:@"https://www.apple.com"]; 972 971 titledURL._title = @"Apple"; 973 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);974 [simulatedItemProvider registerObject:titledURL visibility: UIItemProviderRepresentationOptionsVisibilityAll];972 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 973 [simulatedItemProvider registerObject:titledURL visibility:NSItemProviderRepresentationVisibilityAll]; 975 974 976 975 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); … … 989 988 990 989 NSURL *URL = [NSURL URLWithString:@"file:///some/file/that/is/not/real"]; 991 UIItemProvider *simulatedItemProvider = [UIItemProvider itemProviderWithURL:URL title:@""];990 NSItemProvider *simulatedItemProvider = [NSItemProvider itemProviderWithURL:URL title:@""]; 992 991 993 992 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); … … 1004 1003 [webView synchronouslyLoadTestPageNamed:@"file-uploading"]; 1005 1004 1006 auto simulatedImageItemProvider = adoptNS([[ UIItemProvider alloc] init]);1005 auto simulatedImageItemProvider = adoptNS([[NSItemProvider alloc] init]); 1007 1006 NSData *imageData = UIImageJPEGRepresentation(testIconImage(), 0.5); 1008 1007 [simulatedImageItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG withData:imageData]; 1009 1008 1010 auto simulatedHTMLItemProvider = adoptNS([[ UIItemProvider alloc] init]);1009 auto simulatedHTMLItemProvider = adoptNS([[NSItemProvider alloc] init]); 1011 1010 NSData *firstHTMLData = [@"<body contenteditable></body>" dataUsingEncoding:NSUTF8StringEncoding]; 1012 1011 [simulatedHTMLItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:firstHTMLData]; … … 1132 1131 }]; 1133 1132 1134 auto firstItemProvider = adoptNS([[ UIItemProvider alloc] init]);1135 [firstItemProvider registerObject:@"This is a string." visibility: UIItemProviderRepresentationOptionsVisibilityAll];1136 auto secondItemProvider = adoptNS([[ UIItemProvider alloc] init]);1137 [secondItemProvider registerObject:[NSURL URLWithString:@"https://webkit.org/"] visibility: UIItemProviderRepresentationOptionsVisibilityAll];1133 auto firstItemProvider = adoptNS([[NSItemProvider alloc] init]); 1134 [firstItemProvider registerObject:@"This is a string." visibility:NSItemProviderRepresentationVisibilityAll]; 1135 auto secondItemProvider = adoptNS([[NSItemProvider alloc] init]); 1136 [secondItemProvider registerObject:[NSURL URLWithString:@"https://webkit.org/"] visibility:NSItemProviderRepresentationVisibilityAll]; 1138 1137 [simulator setExternalItemProviders:@[ firstItemProvider.get(), secondItemProvider.get() ]]; 1139 1138 [simulator runFrom:CGPointMake(300, 400) to:CGPointMake(100, 300)]; … … 1147 1146 [webView synchronouslyLoadTestPageNamed:@"simple"]; 1148 1147 1149 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);1148 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 1150 1149 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeHTML withData:[@"<body></body>" dataUsingEncoding:NSUTF8StringEncoding]]; 1151 1150 … … 1180 1179 [webView stringByEvaluatingJavaScript:@"getSelection().removeAllRanges()"]; 1181 1180 1182 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);1183 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText options:nil loadHandler:^NSProgress *(UIItemProviderDataLoadCompletionBlock completionBlock)1181 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 1182 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(NSItemProviderDataLoadCompletionBlock completionBlock) 1184 1183 { 1185 1184 completionBlock([@"Hello world" dataUsingEncoding:NSUTF8StringEncoding], nil); … … 1203 1202 [webView stringByEvaluatingJavaScript:@"getSelection().removeAllRanges()"]; 1204 1203 1205 auto simulatedItemProvider = adoptNS([[ UIItemProvider alloc] init]);1206 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText options:nil loadHandler:^NSProgress *(UIItemProviderDataLoadCompletionBlock completionBlock)1204 auto simulatedItemProvider = adoptNS([[NSItemProvider alloc] init]); 1205 [simulatedItemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(NSItemProviderDataLoadCompletionBlock completionBlock) 1207 1206 { 1208 1207 completionBlock([@"Hello world" dataUsingEncoding:NSUTF8StringEncoding], nil); … … 1226 1225 __block RetainPtr<NSString> injectedString; 1227 1226 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1228 [simulator setConvertItemProvidersBlock:^NSArray *( UIItemProvider *itemProvider, NSArray *, NSDictionary *data)1227 [simulator setConvertItemProvidersBlock:^NSArray *(NSItemProvider *itemProvider, NSArray *, NSDictionary *data) 1229 1228 { 1230 1229 injectedString = adoptNS([[NSString alloc] initWithData:data[InjectedBundlePasteboardDataType] encoding:NSUTF8StringEncoding]); … … 1246 1245 __block RetainPtr<NSString> injectedString; 1247 1246 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1248 [simulator setConvertItemProvidersBlock:^NSArray *( UIItemProvider *itemProvider, NSArray *, NSDictionary *data)1247 [simulator setConvertItemProvidersBlock:^NSArray *(NSItemProvider *itemProvider, NSArray *, NSDictionary *data) 1249 1248 { 1250 1249 injectedString = adoptNS([[NSString alloc] initWithData:data[InjectedBundlePasteboardDataType] encoding:NSUTF8StringEncoding]); … … 1292 1291 1293 1292 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1294 [simulator setConvertItemProvidersBlock:^NSArray *( UIItemProvider *, NSArray *, NSDictionary *)1293 [simulator setConvertItemProvidersBlock:^NSArray *(NSItemProvider *, NSArray *, NSDictionary *) 1295 1294 { 1296 1295 return @[ ]; … … 1303 1302 1304 1303 [webView stringByEvaluatingJavaScript:@"output.innerHTML = ''"]; 1305 [simulator setConvertItemProvidersBlock:^NSArray *( UIItemProvider *itemProvider, NSArray *, NSDictionary *)1304 [simulator setConvertItemProvidersBlock:^NSArray *(NSItemProvider *itemProvider, NSArray *, NSDictionary *) 1306 1305 { 1307 1306 return @[ itemProvider ]; … … 1424 1423 1425 1424 WebItemProviderPasteboard *pasteboard = [WebItemProviderPasteboard sharedInstance]; 1426 auto fastItem = adoptNS([[ UIItemProvider alloc] init]);1427 [fastItem registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText options:nil loadHandler:^NSProgress *(UIItemProviderDataLoadCompletionBlock completionBlock)1425 auto fastItem = adoptNS([[NSItemProvider alloc] init]); 1426 [fastItem registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(NSItemProviderDataLoadCompletionBlock completionBlock) 1428 1427 { 1429 1428 completionBlock([fastString dataUsingEncoding:NSUTF8StringEncoding], nil); … … 1431 1430 }]; 1432 1431 1433 auto slowItem = adoptNS([[ UIItemProvider alloc] init]);1434 [slowItem registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText options:nil loadHandler:^NSProgress *(UIItemProviderDataLoadCompletionBlock completionBlock)1432 auto slowItem = adoptNS([[NSItemProvider alloc] init]); 1433 [slowItem registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(NSItemProviderDataLoadCompletionBlock completionBlock) 1435 1434 { 1436 1435 sleep(2_s); … … 1546 1545 1547 1546 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1548 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1547 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1549 1548 [itemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypePNG withData:testIconImageData()]; 1550 1549 NSString *markupString = @"<script>bar()</script><strong onmousedown=javascript:void(0)>HELLO WORLD</strong>"; … … 1632 1631 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1633 1632 1634 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1633 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1635 1634 NSURL *iconURL = [[NSBundle mainBundle] URLForResource:@"icon" withExtension:@"png" subdirectory:@"TestWebKitAPI.resources"]; 1636 1635 [itemProvider registerFileRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypePNG fileOptions:0 visibility:NSItemProviderRepresentationVisibilityAll loadHandler:[protectedIconURL = retainPtr(iconURL)] (FileLoadCompletionBlock completionHandler) -> NSProgress * { … … 1638 1637 return nil; 1639 1638 }]; 1640 [itemProvider registerObject:iconURL visibility: UIItemProviderRepresentationOptionsVisibilityAll];1639 [itemProvider registerObject:iconURL visibility:NSItemProviderRepresentationVisibilityAll]; 1641 1640 [simulator setExternalItemProviders:@[ itemProvider.get() ]]; 1642 1641 … … 1656 1655 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1657 1656 1658 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1657 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1659 1658 [itemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeJPEG visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(DataLoadCompletionBlock completionHandler) 1660 1659 { … … 1662 1661 return nil; 1663 1662 }]; 1664 [itemProvider registerObject:[NSURL URLWithString:@"http://webkit.org"] visibility: UIItemProviderRepresentationOptionsVisibilityAll];1663 [itemProvider registerObject:[NSURL URLWithString:@"http://webkit.org"] visibility:NSItemProviderRepresentationVisibilityAll]; 1665 1664 [simulator setExternalItemProviders:@[ itemProvider.get() ]]; 1666 1665 … … 1679 1678 1680 1679 runTestWithTemporaryTextFile(^(NSURL *fileURL) { 1681 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1680 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1682 1681 [itemProvider registerFileRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeUTF8PlainText fileOptions:0 visibility:NSItemProviderRepresentationVisibilityAll loadHandler:[protectedFileURL = retainPtr(fileURL)] (FileLoadCompletionBlock completionHandler) -> NSProgress * { 1683 1682 completionHandler(protectedFileURL.get(), NO, nil); … … 1732 1731 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1733 1732 1734 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1733 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1735 1734 NSDictionary *textAttributes = @{ NSFontAttributeName: [UIFont boldSystemFontOfSize:20] }; 1736 1735 NSAttributedString *richText = [[NSAttributedString alloc] initWithString:@"WebKit" attributes:textAttributes]; … … 1756 1755 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1757 1756 1758 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1757 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1759 1758 [itemProvider registerObject:@"Hello world" visibility:NSItemProviderRepresentationVisibilityAll]; 1760 1759 [itemProvider setSuggestedName:@"hello.txt"]; … … 1777 1776 auto simulator = adoptNS([[DragAndDropSimulator alloc] initWithWebView:webView.get()]); 1778 1777 1779 auto itemProvider = adoptNS([[ UIItemProvider alloc] init]);1778 auto itemProvider = adoptNS([[NSItemProvider alloc] init]); 1780 1779 [itemProvider registerDataRepresentationForTypeIdentifier:(__bridge NSString *)kUTTypeMP3 visibility:NSItemProviderRepresentationVisibilityAll loadHandler:^NSProgress *(DataLoadCompletionBlock completionHandler) 1781 1780 { -
trunk/Tools/TestWebKitAPI/cocoa/DragAndDropSimulator.h
r238188 r238360 97 97 @property (nonatomic) BOOL shouldAllowMoveOperation; 98 98 @property (nonatomic) BlockPtr<BOOL(_WKActivatedElementInfo *)> showCustomActionSheetBlock; 99 @property (nonatomic) BlockPtr<NSArray *( UIItemProvider *, NSArray *, NSDictionary *)> convertItemProvidersBlock;99 @property (nonatomic) BlockPtr<NSArray *(NSItemProvider *, NSArray *, NSDictionary *)> convertItemProvidersBlock; 100 100 @property (nonatomic) BlockPtr<NSArray *(id <UIDropSession>)> overridePerformDropBlock; 101 101 @property (nonatomic, strong) NSArray *externalItemProviders; -
trunk/Tools/TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm
r238188 r238360 121 121 } 122 122 123 - (BOOL)canLoadObjectsOfClass:(Class< UIItemProviderReading>)aClass123 - (BOOL)canLoadObjectsOfClass:(Class<NSItemProviderReading>)aClass 124 124 { 125 125 for (UIDragItem *item in self.items) { … … 130 130 } 131 131 132 - (BOOL)canLoadObjectsOfClasses:(NSArray<Class< UIItemProviderReading>> *)classes133 { 134 for (Class< UIItemProviderReading> aClass in classes) {132 - (BOOL)canLoadObjectsOfClasses:(NSArray<Class<NSItemProviderReading>> *)classes 133 { 134 for (Class<NSItemProviderReading> aClass in classes) { 135 135 BOOL canLoad = NO; 136 136 for (UIDragItem *item in self.items) … … 172 172 @implementation MockDropSession 173 173 174 - (instancetype)initWithProviders:(NSArray< UIItemProvider *> *)providers location:(CGPoint)locationInWindow window:(UIWindow *)window allowMove:(BOOL)allowMove174 - (instancetype)initWithProviders:(NSArray<NSItemProvider *> *)providers location:(CGPoint)locationInWindow window:(UIWindow *)window allowMove:(BOOL)allowMove 175 175 { 176 176 auto items = adoptNS([[NSMutableArray alloc] init]); 177 for ( UIItemProvider *itemProvider in providers)177 for (NSItemProvider *itemProvider in providers) 178 178 [items addObject:[[[UIDragItem alloc] initWithItemProvider:itemProvider] autorelease]]; 179 179 … … 216 216 } 217 217 218 - (BOOL)canCreateItemsOfClass:(Class< UIItemProviderReading>)aClass218 - (BOOL)canCreateItemsOfClass:(Class<NSItemProviderReading>)aClass 219 219 { 220 220 ASSERT_NOT_REACHED(); … … 517 517 switch (_phase) { 518 518 case DragAndDropPhaseBeginning: { 519 NSMutableArray< UIItemProvider *> *itemProviders = [NSMutableArray array];519 NSMutableArray<NSItemProvider *> *itemProviders = [NSMutableArray array]; 520 520 NSArray *items = [[_webView dragInteractionDelegate] dragInteraction:[_webView dragInteraction] itemsForBeginningSession:_dragSession.get()]; 521 521 if (!items.count) { … … 651 651 #pragma mark - WKUIDelegatePrivate 652 652 653 - (void)_webView:(WKWebView *)webView dataInteractionOperationWasHandled:(BOOL)handled forSession:(id)session itemProviders:(NSArray< UIItemProvider *> *)itemProviders653 - (void)_webView:(WKWebView *)webView dataInteractionOperationWasHandled:(BOOL)handled forSession:(id)session itemProviders:(NSArray<NSItemProvider *> *)itemProviders 654 654 { 655 655 _suppressedSelectionCommandsDuringDrop = [_webView textInputContentView]._shouldSuppressSelectionCommands; … … 665 665 } 666 666 667 - (NSArray *)_webView:(WKWebView *)webView adjustedDataInteractionItemProvidersForItemProvider:( UIItemProvider *)itemProvider representingObjects:(NSArray *)representingObjects additionalData:(NSDictionary *)additionalData667 - (NSArray *)_webView:(WKWebView *)webView adjustedDataInteractionItemProvidersForItemProvider:(NSItemProvider *)itemProvider representingObjects:(NSArray *)representingObjects additionalData:(NSDictionary *)additionalData 668 668 { 669 669 return self.convertItemProvidersBlock ? self.convertItemProvidersBlock(itemProvider, representingObjects, additionalData) : @[ itemProvider ]; -
trunk/Tools/TestWebKitAPI/ios/UIKitSPI.h
r238188 r238360 42 42 @class UIDragInteraction; 43 43 @class UIDragItem; 44 #import <UIKit/NSString+UIItemProvider.h> 45 #import <UIKit/NSURL+UIItemProvider.h> 44 #import <UIKit/NSItemProvider+UIKitAdditions_Private.h> 46 45 #import <UIKit/UIDragInteraction_Private.h> 47 #import <UIKit/UIImage+UIItemProvider.h>48 #import <UIKit/UIItemProvider.h>49 #import <UIKit/UIItemProvider_Private.h>50 46 #endif // ENABLE(DRAG_SUPPORT) 51 47 … … 89 85 @end 90 86 91 #if ENABLE(DRAG_SUPPORT)92 93 87 @interface NSURL () 94 88 @property (nonatomic, copy, setter=_setTitle:) NSString *_title; 95 89 @end 96 97 #define UIItemProviderRepresentationOptionsVisibilityAll NSItemProviderRepresentationVisibilityAll98 99 @protocol UIItemProviderReading <NSItemProviderReading>100 101 @required102 - (instancetype)initWithItemProviderData:(NSData *)data typeIdentifier:(NSString *)typeIdentifier error:(NSError **)outError;103 104 @end105 106 @protocol UIItemProviderWriting <NSItemProviderWriting>107 108 @required109 - (NSProgress *)loadDataWithTypeIdentifier:(NSString *)typeIdentifier forItemProviderCompletionHandler:(void (^)(NSData *, NSError *))completionHandler;110 111 @end112 113 @interface NSAttributedString () <UIItemProviderReading, UIItemProviderWriting>114 @end115 @interface NSString () <UIItemProviderReading, UIItemProviderWriting>116 @end117 @interface NSURL () <UIItemProviderReading, UIItemProviderWriting>118 @end119 @interface UIImage () <UIItemProviderReading, UIItemProviderWriting>120 @end121 122 @interface UIItemProvider : NSItemProvider123 @end124 125 #endif126 90 127 91 @interface UIKeyboard : UIView
Note: See TracChangeset
for help on using the changeset viewer.