Title: [218949] trunk/Source/WebCore
- Revision
- 218949
- Author
- [email protected]
- Date
- 2017-06-29 11:14:54 -0700 (Thu, 29 Jun 2017)
Log Message
[iOS DnD] Adopt +objectWithItemProviderData: for serializing NSItemProviderReading-conformant objects
https://bugs.webkit.org/show_bug.cgi?id=173971
<rdar://problem/33006605>
Reviewed by Tim Horton.
Moves off of a very-recently-deprecated API, in favor of its replacement. Guarded by a runtime check and staging
declarations. No change in behavior.
* platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (218948 => 218949)
--- trunk/Source/WebCore/ChangeLog 2017-06-29 18:13:37 UTC (rev 218948)
+++ trunk/Source/WebCore/ChangeLog 2017-06-29 18:14:54 UTC (rev 218949)
@@ -1,3 +1,17 @@
+2017-06-29 Wenson Hsieh <[email protected]>
+
+ [iOS DnD] Adopt +objectWithItemProviderData: for serializing NSItemProviderReading-conformant objects
+ https://bugs.webkit.org/show_bug.cgi?id=173971
+ <rdar://problem/33006605>
+
+ Reviewed by Tim Horton.
+
+ Moves off of a very-recently-deprecated API, in favor of its replacement. Guarded by a runtime check and staging
+ declarations. No change in behavior.
+
+ * platform/ios/WebItemProviderPasteboard.mm:
+ (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]):
+
2017-06-29 Basuke Suzuki <[email protected]>
[Curl] Separate global curl settings from ResourceHandleManager as CurlContext class
Modified: trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.mm (218948 => 218949)
--- trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.mm 2017-06-29 18:13:37 UTC (rev 218948)
+++ trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.mm 2017-06-29 18:14:54 UTC (rev 218949)
@@ -49,6 +49,12 @@
SOFT_LINK_CLASS(UIKit, UIImage)
SOFT_LINK_CLASS(UIKit, UIItemProvider)
+// FIXME: Remove once +objectWithItemProviderData:typeIdentifier:error: is available in the public SDK.
+@interface NSObject (Foundation_NSItemProvider_Staging)
++ (id <NSItemProviderReading>)objectWithItemProviderData:(NSData *)data typeIdentifier:(NSString *)typeIdentifier error:(NSError **)outError;
+- (id <NSItemProviderReading>)initWithItemProviderData:(NSData *)data typeIdentifier:(NSString *)typeIdentifier error:(NSError **)outError;
+@end
+
using namespace WebCore;
typedef void(^ItemProviderDataLoadCompletionHandler)(NSData *, NSError *);
@@ -356,8 +362,13 @@
if (!preloadedData)
return;
- if (auto readObject = adoptNS([[readableClass alloc] initWithItemProviderData:preloadedData typeIdentifier:(NSString *)typeIdentifierToLoad error:nil]))
- [values addObject:readObject.get()];
+ if ([readableClass respondsToSelector:@selector(objectWithItemProviderData:typeIdentifier:error:)]) {
+ if (id <NSItemProviderReading> readObject = [readableClass objectWithItemProviderData:preloadedData typeIdentifier:(NSString *)typeIdentifierToLoad error:nil])
+ [values addObject:readObject];
+ } else {
+ if (auto readObject = adoptNS([[readableClass alloc] initWithItemProviderData:preloadedData typeIdentifier:(NSString *)typeIdentifierToLoad error:nil]))
+ [values addObject:readObject.get()];
+ }
}];
return values.autorelease();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes