Changeset 231858 in webkit
- Timestamp:
- May 16, 2018 11:47:31 AM (6 years ago)
- Location:
- branches/safari-606.1.17-branch/Source/WebKit
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-606.1.17-branch/Source/WebKit/ChangeLog
r231857 r231858 1 2018-05-16 Babak Shafiei <bshafiei@apple.com> 2 3 Cherry-pick r231825. rdar://problem/40278181 4 5 Launch System Preview as the download starts, rather than waiting for a response 6 https://bugs.webkit.org/show_bug.cgi?id=185669 7 <rdar://problem/40278181> 8 9 Reviewed by Tim Horton. 10 11 We were waiting for the RequestResponse to get a MIME-type before 12 launching the system preview. This causes an annoying delay. 13 14 Instead, assume that the system preview is one of the handled 15 mime types and launch the viewer immediately. If it gets something it 16 didn't expect, it will show an error. 17 18 * UIProcess/Cocoa/DownloadClient.mm: 19 (WebKit::DownloadClient::didStart): 20 (WebKit::DownloadClient::didReceiveResponse): 21 * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: 22 (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): 23 (WebKit::SystemPreviewController::start): Small cleanup to ensure we 24 don't try to present twice (this shouldn't happen). 25 26 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231825 268f45cc-cd09-0410-ab3c-d52691b4dbfc 27 28 2018-05-15 Dean Jackson <dino@apple.com> 29 30 Launch System Preview as the download starts, rather than waiting for a response 31 https://bugs.webkit.org/show_bug.cgi?id=185669 32 <rdar://problem/40278181> 33 34 Reviewed by Tim Horton. 35 36 We were waiting for the RequestResponse to get a MIME-type before 37 launching the system preview. This causes an annoying delay. 38 39 Instead, assume that the system preview is one of the handled 40 mime types and launch the viewer immediately. If it gets something it 41 didn't expect, it will show an error. 42 43 * UIProcess/Cocoa/DownloadClient.mm: 44 (WebKit::DownloadClient::didStart): 45 (WebKit::DownloadClient::didReceiveResponse): 46 * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: 47 (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): 48 (WebKit::SystemPreviewController::start): Small cleanup to ensure we 49 don't try to present twice (this shouldn't happen). 50 1 51 2018-05-16 Babak Shafiei <bshafiei@apple.com> 2 52 -
branches/safari-606.1.17-branch/Source/WebKit/UIProcess/Cocoa/DownloadClient.mm
r231857 r231858 77 77 #if USE(SYSTEM_PREVIEW) 78 78 if (downloadProxy.isSystemPreviewDownload()) { 79 if (auto* webPage = downloadProxy.originatingPage()) { 80 // FIXME: Update the MIME-type once it is known in the ResourceResponse. 81 webPage->systemPreviewController()->start(ASCIILiteral { "application/octet-stream" }); 82 } 79 83 takeActivityToken(downloadProxy); 80 84 return; … … 92 96 downloadProxy.setExpectedContentLength(response.expectedContentLength()); 93 97 downloadProxy.setBytesLoaded(0); 94 if (auto* webPage = downloadProxy.originatingPage()) { 95 webPage->systemPreviewController()->start(response.mimeType()); 98 if (auto* webPage = downloadProxy.originatingPage()) 96 99 webPage->systemPreviewController()->updateProgress(0); 97 }98 100 return; 99 101 } -
branches/safari-606.1.17-branch/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
r231857 r231858 81 81 NSString *contentType = @"public.content"; 82 82 #if USE(APPLE_INTERNAL_SDK) 83 contentType = WebKit::getUTIForMIMEType(self.mimeType); 83 // FIXME: We are launching the preview controller before getting a response from the resource, which 84 // means we don't actually know the real MIME type yet. Assume it is one of those that we registered. 85 contentType = WebKit::getUTIForMIMEType(*WebKit::getSystemPreviewMIMETypes().begin()); 84 86 #endif 85 87 _item = adoptNS([allocQLItemInstance() initWithPreviewItemProvider:_itemProvider.get() contentType:contentType previewTitle:@"Preview" fileSize:@(0)]); … … 159 161 void SystemPreviewController::start(const String& mimeType) 160 162 { 161 // FIXME: Make sure you can't show a preview if we're already previewing. 163 ASSERT(!m_qlPreviewController); 164 if (m_qlPreviewController) 165 return; 162 166 163 167 UIViewController *presentingViewController = m_webPageProxy.uiClient().presentingViewController(); … … 166 170 return; 167 171 168 if (!m_qlPreviewController) { 169 m_qlPreviewController = adoptNS([allocQLPreviewControllerInstance() init]); 170 171 m_qlPreviewControllerDelegate = adoptNS([[_WKPreviewControllerDelegate alloc] initWithSystemPreviewController:this]); 172 [m_qlPreviewController setDelegate:m_qlPreviewControllerDelegate.get()]; 173 174 m_qlPreviewControllerDataSource = adoptNS([[_WKPreviewControllerDataSource alloc] initWithMIMEType:mimeType]); 175 [m_qlPreviewController setDataSource:m_qlPreviewControllerDataSource.get()]; 176 177 } 172 m_qlPreviewController = adoptNS([allocQLPreviewControllerInstance() init]); 173 174 m_qlPreviewControllerDelegate = adoptNS([[_WKPreviewControllerDelegate alloc] initWithSystemPreviewController:this]); 175 [m_qlPreviewController setDelegate:m_qlPreviewControllerDelegate.get()]; 176 177 m_qlPreviewControllerDataSource = adoptNS([[_WKPreviewControllerDataSource alloc] initWithMIMEType:mimeType]); 178 [m_qlPreviewController setDataSource:m_qlPreviewControllerDataSource.get()]; 178 179 179 180 [presentingViewController presentViewController:m_qlPreviewController.get() animated:YES completion:nullptr];
Note: See TracChangeset
for help on using the changeset viewer.