Changeset 215910 in webkit
- Timestamp:
- Apr 27, 2017 5:54:38 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r215907 r215910 1 2017-04-27 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 WKUIDelegatePrivate needs a hook to vend data used to initialize item providers for data interaction 4 https://bugs.webkit.org/show_bug.cgi?id=171386 5 <rdar://problem/31557237> 6 7 Reviewed by Beth Dakin. 8 9 Teach WebItemProviderPasteboard to remember what WebItemProviderRegistrationInfoList it was initialized with 10 when beginning a drag. This information is cleared out the next time the list of item providers is set to 11 something different, which happens when the data interaction session concludes. 12 13 * platform/ios/WebItemProviderPasteboard.h: 14 * platform/ios/WebItemProviderPasteboard.mm: 15 (-[WebItemProviderPasteboard init]): 16 (-[WebItemProviderPasteboard setItemProviders:]): 17 (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): 18 (-[WebItemProviderPasteboard registrationInfoAtIndex:]): 19 (-[WebItemProviderPasteboard itemProviderAtIndex:]): 20 1 21 2017-04-27 Brady Eidson <beidson@apple.com> 2 22 -
trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.h
r215835 r215910 70 70 + (instancetype)sharedInstance; 71 71 72 - (UIItemProvider *)itemProviderAtIndex:(NSInteger)index; 72 // Registration info lists are only available upon starting data interaction. 73 - (WebItemProviderRegistrationInfoList *)registrationInfoAtIndex:(NSUInteger)index; 74 - (UIItemProvider *)itemProviderAtIndex:(NSUInteger)index; 73 75 74 76 @property (copy, nonatomic, nullable) NSArray<UIItemProvider *> *itemProviders; -
trunk/Source/WebCore/platform/ios/WebItemProviderPasteboard.mm
r215840 r215910 179 179 180 180 @implementation WebItemProviderPasteboard { 181 // FIXME: These ivars should be refactored to be Vector<RetainPtr<Type>> instead of generic NSArrays. 181 182 RetainPtr<NSArray> _itemProviders; 182 183 RetainPtr<NSArray> _cachedTypeIdentifiers; 183 184 RetainPtr<NSArray> _typeToFileURLMaps; 184 185 RetainPtr<NSArray> _preferredTypeIdentifiers; 186 RetainPtr<NSArray> _registrationInfoLists; 185 187 } 186 188 … … 203 205 _typeToFileURLMaps = adoptNS([[NSArray alloc] init]); 204 206 _preferredTypeIdentifiers = nil; 207 _registrationInfoLists = nil; 205 208 } 206 209 return self; … … 255 258 _changeCount++; 256 259 _cachedTypeIdentifiers = nil; 260 _registrationInfoLists = nil; 257 261 258 262 NSMutableArray *typeToFileURLMaps = [NSMutableArray arrayWithCapacity:itemProviders.count]; … … 294 298 295 299 self.itemProviders = providers; 300 _registrationInfoLists = itemLists; 296 301 } 297 302 … … 490 495 } 491 496 492 - (UIItemProvider *)itemProviderAtIndex:(NSInteger)index 493 { 494 return 0 <= index && index < (NSInteger)[_itemProviders count] ? [_itemProviders objectAtIndex:index] : nil; 497 - (WebItemProviderRegistrationInfoList *)registrationInfoAtIndex:(NSUInteger)index 498 { 499 return index < [_registrationInfoLists count] ? [_registrationInfoLists objectAtIndex:index] : nil; 500 } 501 502 - (UIItemProvider *)itemProviderAtIndex:(NSUInteger)index 503 { 504 return index < [_itemProviders count] ? [_itemProviders objectAtIndex:index] : nil; 495 505 } 496 506 -
trunk/Source/WebKit2/ChangeLog
r215907 r215910 1 2017-04-27 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 WKUIDelegatePrivate needs a hook to vend data used to initialize item providers for data interaction 4 https://bugs.webkit.org/show_bug.cgi?id=171386 5 <rdar://problem/31557237> 6 7 Reviewed by Beth Dakin. 8 9 Add a new WKUIDelegate hook, _webView:adjustedDataInteractionItemProvidersForItemProvider:representingObjects:additionalData:. 10 11 * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: 12 1 13 2017-04-27 Brady Eidson <beidson@apple.com> 2 14 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
r215786 r215910 95 95 - (UIViewController *)_webView:(WKWebView *)webView previewViewControllerForImage:(UIImage *)image alternateURL:(NSURL *)url defaultActions:(NSArray<_WKElementAction *> *)actions elementInfo:(_WKActivatedElementInfo *)elementInfo WK_API_AVAILABLE(ios(WK_IOS_TBA)); 96 96 - (NSArray *)_webView:(WKWebView *)webView adjustedDataInteractionItemProviders:(NSArray *)originalItemProviders WK_API_AVAILABLE(ios(WK_IOS_TBA)); 97 - (NSArray *)_webView:(WKWebView *)webView adjustedDataInteractionItemProvidersForItemProvider:(id)itemProvider representingObjects:(NSArray *)representingObjects additionalData:(NSDictionary *)additionalData WK_API_AVAILABLE(ios(WK_IOS_TBA)); 97 98 - (BOOL)_webView:(WKWebView *)webView performDataInteractionOperationWithItemProviders:(NSArray *)itemProviders WK_API_AVAILABLE(ios(WK_IOS_TBA)); 98 99 - (void)_webView:(WKWebView *)webView dataInteraction:(id)interaction sessionWillBegin:(id)session WK_API_AVAILABLE(ios(WK_IOS_TBA));
Note: See TracChangeset
for help on using the changeset viewer.