Diff
Modified: trunk/Source/WTF/ChangeLog (246394 => 246395)
--- trunk/Source/WTF/ChangeLog 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WTF/ChangeLog 2019-06-13 05:57:09 UTC (rev 246395)
@@ -1,3 +1,13 @@
+2019-06-12 Antoine Quint <grao...@apple.com>
+
+ Show the web page URL when sharing an AR model
+ https://bugs.webkit.org/show_bug.cgi?id=198812
+ <rdar://problem/48689498>
+
+ Reviewed by Dean Jackson.
+
+ * wtf/Platform.h:
+
2019-06-12 Youenn Fablet <you...@apple.com>
Use NSURLSession for WebSocket
Modified: trunk/Source/WTF/wtf/Platform.h (246394 => 246395)
--- trunk/Source/WTF/wtf/Platform.h 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WTF/wtf/Platform.h 2019-06-13 05:57:09 UTC (rev 246395)
@@ -1526,6 +1526,10 @@
#endif
#if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
+#define HAVE_ARKIT_QUICK_LOOK_PREVIEW_ITEM 1
+#endif
+
+#if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
#define HAVE_UI_WK_DOCUMENT_CONTEXT 1
#endif
Modified: trunk/Source/WebCore/PAL/ChangeLog (246394 => 246395)
--- trunk/Source/WebCore/PAL/ChangeLog 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WebCore/PAL/ChangeLog 2019-06-13 05:57:09 UTC (rev 246395)
@@ -1,3 +1,13 @@
+2019-06-12 Antoine Quint <grao...@apple.com>
+
+ Show the web page URL when sharing an AR model
+ https://bugs.webkit.org/show_bug.cgi?id=198812
+ <rdar://problem/48689498>
+
+ Reviewed by Dean Jackson.
+
+ * pal/spi/ios/SystemPreviewSPI.h:
+
2019-06-10 Sam Weinig <wei...@apple.com>
Remove Dashboard support
Modified: trunk/Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h (246394 => 246395)
--- trunk/Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h 2019-06-13 05:57:09 UTC (rev 246395)
@@ -25,6 +25,10 @@
#if USE(APPLE_INTERNAL_SDK)
+#if HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
+#import <AssetViewer/ARQuickLookWebKitItem.h>
+#endif
+
#import <AssetViewer/ASVThumbnailView.h>
#else
@@ -45,5 +49,15 @@
@property (nonatomic) CGSize maxThumbnailSize;
@end
+#if HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
+#import <ARKit/ARKit.h>
+
+@class ARQuickLookWebKitItem;
+
+@interface ARQuickLookWebKitItem : QLItem
+- (instancetype)initWithPreviewItemProvider:(NSItemProvider *_Nonnull)itemProvider contentType:(NSString *_Nonnull)contentType previewTitle:(NSString *_Nonnull)previewTitle fileSize:(NSNumber *_Nonnull)fileSize previewItem:(ARQuickLookPreviewItem *)previewItem;
+@end
#endif
+#endif
+
Modified: trunk/Source/WebKit/ChangeLog (246394 => 246395)
--- trunk/Source/WebKit/ChangeLog 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WebKit/ChangeLog 2019-06-13 05:57:09 UTC (rev 246395)
@@ -1,3 +1,20 @@
+2019-06-12 Antoine Quint <grao...@apple.com>
+
+ Show the web page URL when sharing an AR model
+ https://bugs.webkit.org/show_bug.cgi?id=198812
+ <rdar://problem/48689498>
+
+ Reviewed by Dean Jackson.
+
+ * UIProcess/Cocoa/DownloadClient.mm:
+ (WebKit::DownloadClient::didStart):
+ * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
+ (-[_WKPreviewControllerDataSource initWithMIMEType:originatingPageURL:]):
+ (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
+ (WebKit::SystemPreviewController::start):
+ (-[_WKPreviewControllerDataSource initWithMIMEType:]): Deleted.
+ * UIProcess/SystemPreviewController.h:
+
2019-06-12 Antti Koivisto <an...@apple.com>
Try to fix iOS build.
Modified: trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm (246394 => 246395)
--- trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm 2019-06-13 05:57:09 UTC (rev 246395)
@@ -71,7 +71,7 @@
if (downloadProxy.isSystemPreviewDownload()) {
if (auto* webPage = downloadProxy.originatingPage()) {
// FIXME: Update the MIME-type once it is known in the ResourceResponse.
- webPage->systemPreviewController()->start("application/octet-stream"_s, downloadProxy.systemPreviewDownloadRect());
+ webPage->systemPreviewController()->start(URL(URL(), webPage->currentURL()), "application/octet-stream"_s, downloadProxy.systemPreviewDownloadRect());
}
takeActivityToken(downloadProxy);
return;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm (246394 => 246395)
--- trunk/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm 2019-06-13 05:57:09 UTC (rev 246395)
@@ -39,9 +39,22 @@
#import <pal/spi/ios/QuickLookSPI.h>
#import <wtf/WeakObjCPtr.h>
+#if HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
+#import <pal/spi/ios/SystemPreviewSPI.h>
+SOFT_LINK_PRIVATE_FRAMEWORK(ARKit);
+SOFT_LINK_CLASS(ARKit, ARQuickLookPreviewItem);
+SOFT_LINK_PRIVATE_FRAMEWORK(AssetViewer);
+SOFT_LINK_CLASS(AssetViewer, ARQuickLookWebKitItem);
+#endif
+
@interface _WKPreviewControllerDataSource : NSObject <QLPreviewControllerDataSource> {
RetainPtr<NSItemProvider> _itemProvider;
+#if HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
+ RetainPtr<ARQuickLookWebKitItem> _item;
+#else
RetainPtr<QLItem> _item;
+#endif
+ URL _originatingPageURL;
URL _downloadedURL;
};
@@ -52,11 +65,12 @@
@implementation _WKPreviewControllerDataSource
-- (instancetype)initWithMIMEType:(NSString*)mimeType
+- (instancetype)initWithMIMEType:(NSString*)mimeType originatingPageURL:(URL)url
{
if (!(self = [super init]))
return nil;
+ _originatingPageURL = url;
_mimeType = [mimeType copy];
return self;
@@ -84,7 +98,14 @@
// means we don't actually know the real MIME type yet.
NSString *contentType = WebCore::UTIFromMIMEType("model/vnd.usdz+zip"_s);
+#if HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
+ ARQuickLookPreviewItem *previewItem = [allocARQuickLookPreviewItemInstance() initWithFileAtURL:_downloadedURL];
+ previewItem.canonicalWebPageURL = _originatingPageURL;
+
+ _item = [allocARQuickLookWebKitItemInstance() initWithPreviewItemProvider:_itemProvider.get() contentType:contentType previewTitle:@"Preview" fileSize:@(0) previewItem:previewItem];
+#else
_item = adoptNS([PAL::allocQLItemInstance() initWithPreviewItemProvider:_itemProvider.get() contentType:contentType previewTitle:@"Preview" fileSize:@(0)]);
+#endif
[_item setUseLoadingTimeout:NO];
WeakObjCPtr<_WKPreviewControllerDataSource> weakSelf { self };
@@ -197,7 +218,7 @@
namespace WebKit {
-void SystemPreviewController::start(const String& mimeType, const WebCore::IntRect& fromRect)
+void SystemPreviewController::start(URL originatingPageURL, const String& mimeType, const WebCore::IntRect& fromRect)
{
ASSERT(!m_qlPreviewController);
if (m_qlPreviewController)
@@ -213,7 +234,7 @@
m_qlPreviewControllerDelegate = adoptNS([[_WKPreviewControllerDelegate alloc] initWithSystemPreviewController:this fromRect:fromRect]);
[m_qlPreviewController setDelegate:m_qlPreviewControllerDelegate.get()];
- m_qlPreviewControllerDataSource = adoptNS([[_WKPreviewControllerDataSource alloc] initWithMIMEType:mimeType]);
+ m_qlPreviewControllerDataSource = adoptNS([[_WKPreviewControllerDataSource alloc] initWithMIMEType:mimeType originatingPageURL:originatingPageURL]);
[m_qlPreviewController setDataSource:m_qlPreviewControllerDataSource.get()];
[presentingViewController presentViewController:m_qlPreviewController.get() animated:YES completion:nullptr];
Modified: trunk/Source/WebKit/UIProcess/SystemPreviewController.h (246394 => 246395)
--- trunk/Source/WebKit/UIProcess/SystemPreviewController.h 2019-06-13 05:38:28 UTC (rev 246394)
+++ trunk/Source/WebKit/UIProcess/SystemPreviewController.h 2019-06-13 05:57:09 UTC (rev 246395)
@@ -48,7 +48,7 @@
bool canPreview(const String& mimeType) const;
- void start(const String& mimeType, const WebCore::IntRect&);
+ void start(URL originatingPageURL, const String& mimeType, const WebCore::IntRect&);
void updateProgress(float);
void finish(URL);
void cancel();