Diff
Modified: trunk/Source/WebKit/ChangeLog (236688 => 236689)
--- trunk/Source/WebKit/ChangeLog 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/ChangeLog 2018-10-01 20:38:47 UTC (rev 236689)
@@ -1,3 +1,23 @@
+2018-10-01 David Quesada <david_ques...@apple.com>
+
+ Add missing Objective-C versions of downloads SPI
+ https://bugs.webkit.org/show_bug.cgi?id=190149
+ rdar://problem/44915592
+
+ Reviewed by Alex Christensen.
+
+ * UIProcess/API/Cocoa/WKProcessPool.mm:
+ (-[WKProcessPool _downloadURLRequest:]):
+ (-[WKProcessPool _resumeDownloadFromData:path:]):
+ * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
+ * UIProcess/API/Cocoa/_WKDownload.h:
+ * UIProcess/API/Cocoa/_WKDownload.mm:
+ (-[_WKDownload resumeData]):
+ * UIProcess/API/Cocoa/_WKDownloadInternal.h:
+ * UIProcess/Cocoa/DownloadClient.mm:
+ Move the DownloadProxy's WrapperTraits out of DownloadClient, and into the internal
+ header so it can be used from other classes (i.e. WKProcessPool here).
+
2018-10-01 Alex Christensen <achristen...@webkit.org>
Fix internal build after r236665
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm (236688 => 236689)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2018-10-01 20:38:47 UTC (rev 236689)
@@ -43,6 +43,7 @@
#import "_WKAutomationDelegate.h"
#import "_WKAutomationSessionInternal.h"
#import "_WKDownloadDelegate.h"
+#import "_WKDownloadInternal.h"
#import "_WKProcessPoolConfigurationInternal.h"
#import <WebCore/CertificateInfo.h>
#import <WebCore/PluginData.h>
@@ -573,6 +574,16 @@
}
#endif // PLATFORM(IOS)
+- (_WKDownload *)_downloadURLRequest:(NSURLRequest *)request
+{
+ return (_WKDownload *)_processPool->download(nullptr, request)->wrapper();
+}
+
+- (_WKDownload *)_resumeDownloadFromData:(NSData *)resumeData path:(NSString *)path
+{
+ return wrapper(_processPool->resumeDownload(API::Data::createWithoutCopying(resumeData).ptr(), path));
+}
+
@end
#endif // WK_API_ENABLED
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h (236688 => 236689)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h 2018-10-01 20:38:47 UTC (rev 236689)
@@ -29,6 +29,7 @@
#if WK_API_ENABLED
@class _WKAutomationSession;
+@class _WKDownload;
@class _WKProcessPoolConfiguration;
@protocol _WKAutomationDelegate;
@protocol _WKDownloadDelegate;
@@ -79,6 +80,9 @@
- (void)_registerURLSchemeAsCanDisplayOnlyIfCanRequest:(NSString *)scheme WK_API_AVAILABLE(macosx(10.14), ios(12.0));
+- (_WKDownload *)_downloadURLRequest:(NSURLRequest *)request WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+- (_WKDownload *)_resumeDownloadFromData:(NSData *)resumeData path:(NSString *)path WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+
// Test only. Should be called only while no web content processes are running.
- (void)_terminateStorageProcess;
- (void)_terminateNetworkProcess;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h (236688 => 236689)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h 2018-10-01 20:38:47 UTC (rev 236689)
@@ -40,6 +40,7 @@
@property (nonatomic, readonly, weak) WKWebView *originatingWebView;
@property (nonatomic, readonly, copy) NSArray<NSURL *> *redirectChain WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
@property (nonatomic, readonly) BOOL wasUserInitiated WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
+@property (nonatomic, readonly) NSData *resumeData WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
@end
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm (236688 => 236689)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm 2018-10-01 20:38:47 UTC (rev 236689)
@@ -29,6 +29,7 @@
#if WK_API_ENABLED
#import "DownloadProxy.h"
+#import "WKNSData.h"
#import "WKWebViewInternal.h"
#import <wtf/WeakObjCPtr.h>
@@ -74,6 +75,11 @@
return _download->wasUserInitiated();
}
+- (NSData *)resumeData
+{
+ return WebKit::wrapper(_download->resumeData());
+}
+
#pragma mark WKObject protocol implementation
- (API::Object&)_apiObject
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h (236688 => 236689)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h 2018-10-01 20:38:47 UTC (rev 236689)
@@ -27,8 +27,17 @@
#if WK_API_ENABLED
+#import "DownloadProxy.h"
#import "WKObject.h"
+namespace WebKit {
+
+template<> struct WrapperTraits<DownloadProxy> {
+ using WrapperClass = _WKDownload;
+};
+
+}
+
@interface _WKDownload () <WKObject>
@end
Modified: trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm (236688 => 236689)
--- trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm 2018-10-01 20:07:40 UTC (rev 236688)
+++ trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm 2018-10-01 20:38:47 UTC (rev 236689)
@@ -49,10 +49,6 @@
namespace WebKit {
-template<> struct WrapperTraits<DownloadProxy> {
- using WrapperClass = _WKDownload;
-};
-
DownloadClient::DownloadClient(id <_WKDownloadDelegate> delegate)
: m_delegate(delegate)
{