Changeset 251956 in webkit
- Timestamp:
- Nov 1, 2019 5:13:04 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r251952 r251956 1 2019-11-01 Brady Eidson <beidson@apple.com> 2 3 Promote "_getWebArchive" to API. 4 <rdar://problem/17317547> and https://bugs.webkit.org/show_bug.cgi?id=203767 5 6 Reviewed by Andy Estes. 7 8 * UIProcess/API/Cocoa/WKWebView.h: 9 * UIProcess/API/Cocoa/WKWebView.mm: 10 (-[WKWebView createWebArchiveDataWithCompletionHandler:]): 11 (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): 12 1 13 2019-11-01 Brady Eidson <beidson@apple.com> 2 14 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.h
r251673 r251956 244 244 - (void)createPDFWithConfiguration:(nullable WKPDFConfiguration *)pdfConfiguration completionHandler:(void (^)(NSData * _Nullable pdfDocumentData, NSError * _Nullable error))completionHandler NS_REFINED_FOR_SWIFT WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 245 245 246 /* @abstract Create WebKit web archive data representing the current web content of the WKWebView 247 @param completionHandler A block to invoke when the web archive data is ready. 248 @discussion WebKit web archive data represents a snapshot of web content. 249 It can be used to represent web content on a pasteboard, loaded into a WKWebView directly, and saved to a file for later use. 250 The uniform type identifier kUTTypeWebArchive can be used get the related pasteboard type and MIME type. 251 */ 252 - (void)createWebArchiveDataWithCompletionHandler:(void (^)(NSData *, NSError *))completionHandler NS_REFINED_FOR_SWIFT WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 253 246 254 /*! @abstract A Boolean value indicating whether horizontal swipe gestures 247 255 will trigger back-forward list navigations. -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
r251896 r251956 4721 4721 } 4722 4722 4723 - (void)createWebArchiveDataWithCompletionHandler:(void (^)(NSData *, NSError *))completionHandler 4724 { 4725 auto handler = adoptNS([completionHandler copy]); 4726 4727 _page->getWebArchiveOfFrame(_page->mainFrame(), [handler](API::Data* data, WebKit::CallbackBase::Error error) { 4728 void (^completionHandlerBlock)(NSData *, NSError *) = (void (^)(NSData *, NSError *))handler.get(); 4729 if (error != WebKit::CallbackBase::Error::None) { 4730 // FIXME: Pipe a proper error in from the WebPageProxy. 4731 completionHandlerBlock(nil, [NSError errorWithDomain:WKErrorDomain code:static_cast<int>(error) userInfo:nil]); 4732 } else 4733 completionHandlerBlock(wrapper(*data), nil); 4734 }); 4735 } 4736 4723 4737 @end 4724 4738 … … 5485 5499 - (void)_getWebArchiveDataWithCompletionHandler:(void (^)(NSData *, NSError *))completionHandler 5486 5500 { 5487 auto handler = adoptNS([completionHandler copy]); 5488 5489 _page->getWebArchiveOfFrame(_page->mainFrame(), [handler](API::Data* data, WebKit::CallbackBase::Error error) { 5490 void (^completionHandlerBlock)(NSData *, NSError *) = (void (^)(NSData *, NSError *))handler.get(); 5491 if (error != WebKit::CallbackBase::Error::None) { 5492 // FIXME: Pipe a proper error in from the WebPageProxy. 5493 completionHandlerBlock(nil, [NSError errorWithDomain:WKErrorDomain code:static_cast<int>(error) userInfo:nil]); 5494 } else 5495 completionHandlerBlock(wrapper(*data), nil); 5496 }); 5501 [self createWebArchiveDataWithCompletionHandler:completionHandler]; 5497 5502 } 5498 5503 -
trunk/Tools/ChangeLog
r251955 r251956 1 2019-11-01 Brady Eidson <beidson@apple.com> 2 3 Promote "_getWebArchive" to API. 4 <rdar://problem/17317547> and https://bugs.webkit.org/show_bug.cgi?id=203767 5 6 Reviewed by Andy Estes. 7 8 * MiniBrowser/mac/BrowserWindowController.h: 9 * MiniBrowser/mac/BrowserWindowController.m: 10 (-[BrowserWindowController saveAsPDF:]): 11 (-[BrowserWindowController saveAsWebArchive:]): 12 * MiniBrowser/mac/MainMenu.xib: 13 * MiniBrowser/mac/WK1BrowserWindowController.m: 14 (-[WK1BrowserWindowController validateMenuItem:]): 15 * MiniBrowser/mac/WK2BrowserWindowController.m: 16 (-[WK2BrowserWindowController validateMenuItem:]): 17 (-[WK2BrowserWindowController saveAsWebArchive:]): 18 1 19 2019-11-01 Jonathan Bedard <jbedard@apple.com> 2 20 -
trunk/Tools/MiniBrowser/mac/BrowserWindowController.h
r249739 r251956 48 48 49 49 - (IBAction)saveAsPDF:(id)sender; 50 - (IBAction)saveAsWebArchive:(id)sender; 50 51 51 52 - (IBAction)fetch:(id)sender; -
trunk/Tools/MiniBrowser/mac/BrowserWindowController.m
r249739 r251956 99 99 } 100 100 101 - (IBAction)saveAsWebArchive:(id)sender 102 { 103 [self doesNotRecognizeSelector:_cmd]; 104 } 105 101 106 - (IBAction)goBack:(id)sender 102 107 { -
trunk/Tools/MiniBrowser/mac/MainMenu.xib
r249739 r251956 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14 490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">2 <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> 3 3 <dependencies> 4 <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14 490.70"/>4 <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14854.2"/> 5 5 </dependencies> 6 6 <objects> … … 140 140 </connections> 141 141 </menuItem> 142 <menuItem title="Revert to Saved" id="112"> 143 <modifierMask key="keyEquivalentModifierMask"/> 144 <connections> 145 <action selector="revertDocumentToSaved:" target="-1" id="364"/> 142 <menuItem title="Save As WebArchive..." id="112"> 143 <modifierMask key="keyEquivalentModifierMask"/> 144 <connections> 145 <action selector="saveAsWebArchive:" target="-1" id="AGx-3e-6Nt"/> 146 </connections> 147 </menuItem> 148 <menuItem title="Revert to Saved" id="nek-8q-bdB"> 149 <modifierMask key="keyEquivalentModifierMask"/> 150 <connections> 151 <action selector="revertDocumentToSaved:" target="-1" id="7iJ-l6-TWs"/> 146 152 </connections> 147 153 </menuItem> … … 887 893 </menuItem> 888 894 </items> 895 <point key="canvasLocation" x="139" y="-50"/> 889 896 </menu> 890 897 <customObject id="494" customClass="BrowserAppDelegate"> -
trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m
r249739 r251956 137 137 if (action == @selector(saveAsPDF:)) 138 138 return NO; 139 if (action == @selector(saveAsWebArchive:)) 140 return NO; 139 141 140 142 if (action == @selector(zoomIn:)) -
trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m
r251673 r251956 209 209 210 210 if (action == @selector(saveAsPDF:)) 211 return YES; 212 if (action == @selector(saveAsWebArchive:)) 211 213 return YES; 212 214 … … 831 833 } 832 834 835 - (IBAction)saveAsWebArchive:(id)sender 836 { 837 NSSavePanel *panel = [NSSavePanel savePanel]; 838 panel.allowedFileTypes = @[ @"webarchive" ]; 839 [panel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) { 840 if (result == NSModalResponseOK) { 841 [_webView createWebArchiveDataWithCompletionHandler:^(NSData *archiveData, NSError *error) { 842 [archiveData writeToURL:[panel URL] options:0 error:nil]; 843 }]; 844 } 845 }]; 846 } 847 833 848 @end
Note: See TracChangeset
for help on using the changeset viewer.