WebKit Bugzilla
Attachment 349217 Details for
Bug 189443
: Implement the Web Share API for mac
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-189443-20180907171705.patch (text/plain), 22.84 KB, created by
Olivia Barnett
on 2018-09-07 17:17:06 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Olivia Barnett
Created:
2018-09-07 17:17:06 PDT
Size:
22.84 KB
patch
obsolete
>Subversion Revision: 235820 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 77cce9454dfedeb8ffede17a17161e0f1934a6b9..9d474af4695a3ca792372024891f1cc73026d3fa 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,39 @@ >+2018-09-07 Olivia Barnett <obarnett@apple.com> >+ >+ Implement the Web Share API for mac >+ https://bugs.webkit.org/show_bug.cgi?id=189443 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Shared/WebPreferencesDefaultValues.h: >+ * UIProcess/API/Cocoa/WKWebView.mm: >+ (-[WKWebView shareSheetDidDismiss:]): >+ * UIProcess/API/Cocoa/WKWebViewInternal.h: >+ * UIProcess/API/mac/WKView.mm: >+ (-[WKView shareSheetDidDismiss:]): >+ * UIProcess/Cocoa/WebViewImpl.h: >+ * UIProcess/Cocoa/WebViewImpl.mm: >+ (WebKit::WebViewImpl::showShareSheet): >+ (WebKit::WebViewImpl::shareSheetDidDismiss): >+ Implemented function for WKShareSheetDelegate. >+ >+ * UIProcess/ios/forms/WKShareSheet.h: >+ * UIProcess/ios/forms/WKShareSheet.mm: >+ (-[WKShareSheet initWithView:initWithView:]): >+ (-[WKShareSheet presentWithParameters:completionHandler:]): >+ (-[WKShareSheet sharingServicePicker:didChooseSharingService:]): >+ (-[WKShareSheet _cancel]): >+ (-[WKShareSheet dismiss]): >+ (-[WKShareSheet _dismissDisplayAnimated:]): >+ (-[WKShareSheet invokeShareSheetWithResolution:]): >+ (-[WKShareSheet initWithView:]): Deleted. >+ Added mac platform checks and share sheet functionality. >+ >+ * UIProcess/mac/PageClientImplMac.h: >+ * UIProcess/mac/PageClientImplMac.mm: >+ (WebKit::PageClientImpl::showShareSheet): >+ Allows macos to invoke the system share sheet. >+ > 2018-09-07 Brent Fulgham <bfulgham@apple.com> > > Allow WebContent access to AVCSupported IOKit property in sandbox >diff --git a/Source/WebKit/Shared/WebPreferencesDefaultValues.h b/Source/WebKit/Shared/WebPreferencesDefaultValues.h >index 3735777c9125b0ede82d5b3b9d1018f9e4b69056..08a02aafbf694ac11516b6738ee5c20d658ad4c6 100644 >--- a/Source/WebKit/Shared/WebPreferencesDefaultValues.h >+++ b/Source/WebKit/Shared/WebPreferencesDefaultValues.h >@@ -84,7 +84,6 @@ > #define DEFAULT_TEXT_AREAS_ARE_RESIZABLE true > #define DEFAULT_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY true > #define DEFAULT_SHOULD_RESPECT_IMAGE_ORIENTATION false >-#define DEFAULT_WEB_SHARE_ENABLED false > #define DEFAULT_PASSWORD_ECHO_ENABLED false > #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK true > #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK_AFTER_FULLSCREEN false >@@ -173,7 +172,7 @@ > > #endif > >-#if PLATFORM(IOS) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >+#if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) > #define DEFAULT_WEB_SHARE_ENABLED true > #else > #define DEFAULT_WEB_SHARE_ENABLED false >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >index 66c28ebffcd523b7045c15adb2754f42a0cd8243..2a729e9c734a741462af751bf8e34d05d2f36161 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >@@ -203,7 +203,7 @@ Boolean _AXSWebAccessibilityEventsEnabled(); > > #if PLATFORM(MAC) && ENABLE(DRAG_SUPPORT) > >-@interface WKWebView () <NSFilePromiseProviderDelegate, NSDraggingSource> >+@interface WKWebView () <NSFilePromiseProviderDelegate, NSDraggingSource, WKShareSheetDelegate> > @end > > #endif >@@ -5647,6 +5647,11 @@ static WebCore::UserInterfaceLayoutDirection toUserInterfaceLayoutDirection(UISe > _impl->setWindowOcclusionDetectionEnabled(enabled); > } > >+- (void)shareSheetDidDismiss:(WKShareSheet *)shareSheet >+{ >+ _impl->shareSheetDidDismiss(shareSheet); >+} >+ > - (void)_setOverrideDeviceScaleFactor:(CGFloat)deviceScaleFactor > { > _impl->setOverrideDeviceScaleFactor(deviceScaleFactor); >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h b/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h >index 4f3abbcce58f84f3597c1e3ce3d7428349a0e9d4..da0f3eb1997f4c334efc92b75daa8323b51cafb7 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h >@@ -28,6 +28,7 @@ > #if WK_API_ENABLED > > #import "SameDocumentNavigationType.h" >+#import "WKShareSheet.h" > #import "WKWebViewConfiguration.h" > #import "_WKAttachmentInternal.h" > #import "_WKWebViewPrintFormatterInternal.h" >@@ -47,6 +48,10 @@ > #define WK_WEB_VIEW_PROTOCOLS <UIScrollViewDelegate> > #endif > >+#if PLATFORM(MAC) >+#define WK_WEB_VIEW_PROTOCOLS <WKShareSheetDelegate> >+#endif >+ > #if !defined(WK_WEB_VIEW_PROTOCOLS) > #define WK_WEB_VIEW_PROTOCOLS > #endif >diff --git a/Source/WebKit/UIProcess/API/mac/WKView.mm b/Source/WebKit/UIProcess/API/mac/WKView.mm >index fe97010375507b7d71119a4dafb0d528a72e4976..2dc73b87af1e301c6dd33f3d78aa14ceb75380a5 100644 >--- a/Source/WebKit/UIProcess/API/mac/WKView.mm >+++ b/Source/WebKit/UIProcess/API/mac/WKView.mm >@@ -1334,6 +1334,11 @@ static WebCore::UserInterfaceLayoutDirection toUserInterfaceLayoutDirection(NSUs > _data->_impl->setWindowOcclusionDetectionEnabled(enabled); > } > >+- (void)shareSheetDidDismiss:(WKShareSheet *)shareSheet >+{ >+ _data->_impl->shareSheetDidDismiss(shareSheet); >+} >+ > - (void)setAllowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures > { > _data->_impl->setAllowsBackForwardNavigationGestures(allowsBackForwardNavigationGestures); >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >index 796c928d091c0a66b98b4ce2721955c4b03f32b3..120b8a798fa379673f40b3188487c2ffc5fbef0d 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >@@ -53,6 +53,7 @@ OBJC_CLASS WKBrowsingContextController; > OBJC_CLASS WKEditorUndoTargetObjC; > OBJC_CLASS WKFullScreenWindowController; > OBJC_CLASS WKImmediateActionController; >+OBJC_CLASS WKShareSheet; > OBJC_CLASS WKViewLayoutStrategy; > OBJC_CLASS WKWebView; > OBJC_CLASS WKWindowVisibilityObserver; >@@ -75,6 +76,10 @@ class Object; > class PageConfiguration; > } > >+namespace WebCore { >+struct ShareDataWithParsedURL; >+} >+ > @protocol WebViewImplDelegate > > - (NSTextInputContext *)_web_superInputContext; >@@ -313,6 +318,9 @@ public: > id validRequestorForSendAndReturnTypes(NSString *sendType, NSString *returnType); > void centerSelectionInVisibleArea(); > void selectionDidChange(); >+ void showShareSheet(const WebCore::ShareDataWithParsedURL&, WTF::CompletionHandler<void(bool)>&&, NSView *); >+ void shareSheetDidDismiss(WKShareSheet *); >+ > void didBecomeEditable(); > void updateFontPanelIfNeeded(); > void changeFontFromFontManager(); >@@ -606,7 +614,7 @@ private: > #endif > #endif // ENABLE(WEB_PLAYBACK_CONTROLS_MANAGER) > #endif // HAVE(TOUCH_BAR) >- >+ RetainPtr<WKShareSheet> _shareSheet; > bool supportsArbitraryLayoutModes() const; > float intrinsicDeviceScaleFactor() const; > void dispatchSetTopContentInset(); >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >index 552d6505d2538b86c5fceee77d950ba8c25a4006..b9cabd33b2fa53b631e5970c5f7c774489e5dcab 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >@@ -59,6 +59,7 @@ > #import "WKFullScreenWindowController.h" > #import "WKImmediateActionController.h" > #import "WKPrintingView.h" >+#import "WKShareSheet.h" > #import "WKTextInputWindowController.h" > #import "WKViewLayoutStrategy.h" > #import "WKWebViewPrivate.h" >@@ -2710,6 +2711,26 @@ void WebViewImpl::selectionDidChange() > > [m_view _web_editorStateDidChange]; > } >+ >+void WebViewImpl::showShareSheet(const WebCore::ShareDataWithParsedURL& data, WTF::CompletionHandler<void(bool)>&& completionHandler, NSView *view) >+{ >+ ASSERT(!_shareSheet); >+ if (_shareSheet) >+ return; >+ >+ _shareSheet = adoptNS([[WKShareSheet alloc] initWithView:(NSView<WKShareSheetDelegate> *)view]); >+ [_shareSheet setDelegate:(NSView<WKShareSheetDelegate> *)view]; >+ >+ [_shareSheet presentWithParameters:data completionHandler:WTFMove(completionHandler)]; >+} >+ >+void WebViewImpl::shareSheetDidDismiss(WKShareSheet *shareSheet) >+{ >+ ASSERT(_shareSheet == shareSheet); >+ >+ [_shareSheet setDelegate:nil]; >+ _shareSheet = nil; >+} > > void WebViewImpl::didBecomeEditable() > { >diff --git a/Source/WebKit/UIProcess/ios/forms/WKShareSheet.h b/Source/WebKit/UIProcess/ios/forms/WKShareSheet.h >index 9447bc328fd8a26ccecc4cd1f0744532a6a9a4a9..35ebf242d798d4711788a0008c0108a36bc80d85 100644 >--- a/Source/WebKit/UIProcess/ios/forms/WKShareSheet.h >+++ b/Source/WebKit/UIProcess/ios/forms/WKShareSheet.h >@@ -23,9 +23,12 @@ > * THE POSSIBILITY OF SUCH DAMAGE. > */ > >-#if PLATFORM(IOS) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >+#if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) > >+#if PLATFORM(IOS) > #import <UIKit/UIKit.h> >+#endif >+ > #import <WebCore/ShareData.h> > #import <wtf/BlockPtr.h> > #import <wtf/Forward.h> >@@ -36,8 +39,13 @@ > @class WKContentView; > @protocol WKShareSheetDelegate; > >-@interface WKShareSheet : UIViewController >+#if PLATFORM(MAC) >+@interface WKShareSheet : NSObject<NSSharingServicePickerDelegate> >+- (instancetype)initWithView:(NSView *)view; >+#else >+@interface WKShareSheet : NSObject > - (instancetype)initWithView:(WKContentView *)view; >+#endif > > - (void)presentWithParameters:(const WebCore::ShareDataWithParsedURL&)data completionHandler:(WTF::CompletionHandler<void(bool)>&&)completionHandler; > - (void)dismiss; >@@ -51,4 +59,4 @@ > - (void)shareSheetDidDismiss:(WKShareSheet *)shareSheet; > @end > >-#endif // PLATFORM(IOS) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >+#endif // !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >diff --git a/Source/WebKit/UIProcess/ios/forms/WKShareSheet.mm b/Source/WebKit/UIProcess/ios/forms/WKShareSheet.mm >index cd0575ed97fb2be5b276a1d2ec606333865123c0..c029a0a3b135573d203dfbfc86bc2ed0e5d6c65c 100644 >--- a/Source/WebKit/UIProcess/ios/forms/WKShareSheet.mm >+++ b/Source/WebKit/UIProcess/ios/forms/WKShareSheet.mm >@@ -26,8 +26,10 @@ > #import "config.h" > #import "WKShareSheet.h" > >-#if PLATFORM(IOS) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >+#if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >+#if PLATFORM(IOS) > #import "UIKitSPI.h" >+#endif > #import "WKContentViewInteraction.h" > #import "WebPageProxy.h" > #import <WebCore/ShareData.h> >@@ -36,20 +38,36 @@ > > using namespace WebKit; > >+#if PLATFORM(MAC) > @implementation WKShareSheet { >- WeakObjCPtr<WKContentView> _view; >+ WeakObjCPtr<NSView> _view; > >+ BOOL _isShowingSharingServicePicker; >+ RetainPtr<NSSharingServicePicker> _sharingServicePickerForMenu; >+ WTF::CompletionHandler<void(bool)> _completionHandler; >+} >+#else >+@implementation WKShareSheet { >+ WeakObjCPtr<WKContentView> _view; >+ > RetainPtr<UIActivityViewController> _shareSheetViewController; > RetainPtr<UIViewController> _presentationViewController; > BOOL _shouldDismissWithAnimation; > } >+#endif > >+#if PLATFORM(MAC) >+- (instancetype)initWithView:(NSView *)view >+#else > - (instancetype)initWithView:(WKContentView *)view >+#endif > { > if (!(self = [super init])) > return nil; > _view = view; >+#if PLATFORM(IOS) > _shouldDismissWithAnimation = YES; >+#endif > return self; > } > >@@ -62,14 +80,26 @@ using namespace WebKit; > > if (!data.url.isNull()) { > NSURL *url = (NSURL *)data.url; >+#if PLATFORM(IOS) > if (!data.shareData.title.isEmpty()) > url._title = data.shareData.title; >+#endif > [shareDataArray addObject:url]; > } > > if (!data.shareData.title.isEmpty() && ![shareDataArray count]) > [shareDataArray addObject:(NSString *)data.shareData.title]; > >+#if PLATFORM(MAC) >+ _sharingServicePickerForMenu = [[NSSharingServicePicker alloc] initWithItems:shareDataArray.get()]; >+ _sharingServicePickerForMenu.get().delegate = self; >+ _completionHandler = WTFMove(completionHandler); >+ >+ NSRect mouseLocationRect = {[NSEvent mouseLocation], CGSizeMake(1.0, 1.0)}; >+ NSRect mouseLocationInWindow = [[_view window] convertRectFromScreen:mouseLocationRect]; >+ NSRect mouseLocationInView = [_view.getAutoreleased() convertRect:mouseLocationInWindow fromView:nil]; >+ [_sharingServicePickerForMenu showRelativeToRect:mouseLocationInView ofView:_view.getAutoreleased() preferredEdge:NSMinYEdge]; >+#else > auto shareSheetController = adoptNS([[UIActivityViewController alloc] initWithActivityItems:shareDataArray.get() applicationActivities:nil]); > > auto completionHandlerBlock = BlockPtr<void((NSString *, BOOL completed, NSArray *, NSError *))>::fromCallable([completionHandler = WTFMove(completionHandler), shareSheet = self](NSString *, BOOL completed, NSArray *, NSError *) mutable { >@@ -80,8 +110,19 @@ using namespace WebKit; > shareSheetController.get().completionWithItemsHandler = completionHandlerBlock.get(); > _shareSheetViewController = WTFMove(shareSheetController); > [self _presentFullscreenViewController:_shareSheetViewController.get() animated:YES]; >+#endif > } > >+#if PLATFORM(MAC) >+/* Invoked when the user has selected a service and before it is executed. Service will be nil if the picker was dismissed. >+ */ >+- (void)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker didChooseSharingService:(nullable NSSharingService *)service >+{ >+ self->_completionHandler(!service); >+ [self _dispatchDidDismiss]; >+} >+ >+#endif > - (void)_dispatchDidDismiss > { > if ([_delegate respondsToSelector:@selector(shareSheetDidDismiss:)]) >@@ -90,22 +131,28 @@ using namespace WebKit; > > - (void)_cancel > { >+#if PLATFORM(IOS) > [self _dispatchDidDismiss]; >+#endif > } > > - (void)dismiss > { >+#if PLATFORM(IOS) > [[UIViewController _viewControllerForFullScreenPresentationFromView:_view.getAutoreleased()] dismissViewControllerAnimated:_shouldDismissWithAnimation completion:nil]; > _presentationViewController = nil; > > [self _cancel]; >+#endif > } > >+#if PLATFORM(IOS) >+ > - (void)_dismissDisplayAnimated:(BOOL)animated > { > if (_presentationViewController) { > UIViewController *currentPresentedViewController = [_presentationViewController presentedViewController]; >- if (currentPresentedViewController == self) { >+ if (currentPresentedViewController == _shareSheetViewController) { > [currentPresentedViewController dismissViewControllerAnimated:animated completion:^{ > _presentationViewController = nil; > }]; >@@ -118,12 +165,15 @@ using namespace WebKit; > _presentationViewController = [UIViewController _viewControllerForFullScreenPresentationFromView:_view.getAutoreleased()]; > [_presentationViewController presentViewController:viewController animated:animated completion:nil]; > } >+#endif > > - (void)invokeShareSheetWithResolution:(BOOL)resolved > { >+#if PLATFORM(IOS) > _shouldDismissWithAnimation = NO; > _shareSheetViewController.get().completionWithItemsHandler(nil, resolved, nil, nil); >+#endif > } > > @end >-#endif // PLATFORM(IOS) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >+#endif // !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) >diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.h b/Source/WebKit/UIProcess/mac/PageClientImplMac.h >index c538b5bcf613fd2cc85c9d70634e4497b3a1bcbf..c0c93d368157d5c4125877d11cab886df8b21c61 100644 >--- a/Source/WebKit/UIProcess/mac/PageClientImplMac.h >+++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.h >@@ -103,6 +103,7 @@ private: > void resetSecureInputState() override; > void notifyInputContextAboutDiscardedComposition() override; > void selectionDidChange() override; >+ bool showShareSheet(const ShareDataWithParsedURL&, WTF::CompletionHandler<void(bool)>&&) override; > > WebCore::FloatRect convertToDeviceSpace(const WebCore::FloatRect&) override; > WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&) override; >diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm >index 8c23b28b820b5be1e741b317e3d209ffa8161d0c..2a441aa0d67a08b4f45516a70d9012f2f3ea08da 100644 >--- a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm >+++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm >@@ -540,6 +540,12 @@ void PageClientImpl::selectionDidChange() > { > m_impl->selectionDidChange(); > } >+ >+bool PageClientImpl::showShareSheet(const ShareDataWithParsedURL& shareData, WTF::CompletionHandler<void(bool)>&& completionHandler) >+{ >+ m_impl->showShareSheet(shareData, WTFMove(completionHandler), m_view); >+ return true; >+} > > void PageClientImpl::wheelEventWasNotHandledByWebCore(const NativeWebWheelEvent& event) > { >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7819ddd72747569b0a48e919b5dc70373f579979..3f9d434a5f1ceac338797a5e19368005a2aa5b7a 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,18 @@ >+2018-09-07 Olivia Barnett <obarnett@apple.com> >+ >+ Implement the Web Share API for mac >+ https://bugs.webkit.org/show_bug.cgi?id=189443 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt: Added. >+ * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt: Added. >+ * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt: Added. >+ * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-securecontext.http-expected.txt: Added. >+ * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-url-invalid.https-expected.txt: Added. >+ * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https-expected.txt: Added. >+ Updated test expectations. >+ > 2018-09-07 Youenn Fablet <youenn@apple.com> > > Tests checking document GC in case of ActiveDOMObjects are flaky >diff --git a/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt b/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6c99ccb0d0a53ecba2df73034805ce1488d69468 >--- /dev/null >+++ b/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt >@@ -0,0 +1,53 @@ >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Not enough arguments >+CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: Type error >+This tests that the navigator object of a deleted frame is disconnected properly. Accessing fields or methods shouldn't crash the browser. >+ Check Navigator >+navigator.appCodeName is OK >+navigator.appName is OK >+navigator.appVersion is OK >+navigator.cookieEnabled is OK >+navigator.credentials is OK >+navigator.getStorageUpdates() is OK >+navigator.javaEnabled() is OK >+navigator.language is OK >+navigator.languages is OK >+navigator.mediaCapabilities is OK >+navigator.mimeTypes is OK >+navigator.onLine is OK >+navigator.platform is OK >+navigator.plugins is OK >+navigator.product is OK >+navigator.productSub is OK >+navigator.requestMediaKeySystemAccess() is OK >+navigator.sendBeacon() threw err TypeError: Not enough arguments >+navigator.serviceWorker is OK >+navigator.share() is OK >+navigator.userAgent is OK >+navigator.vendor is OK >+navigator.vendorSub is OK >+navigator.webdriver is OK >+navigator.appCodeName is OK >+navigator.appName is OK >+navigator.appVersion is OK >+navigator.cookieEnabled is OK >+navigator.credentials is OK >+navigator.getStorageUpdates() is OK >+navigator.javaEnabled() is OK >+navigator.language is OK >+navigator.languages is OK >+navigator.mediaCapabilities is OK >+navigator.mimeTypes is OK >+navigator.onLine is OK >+navigator.platform is OK >+navigator.plugins is OK >+navigator.product is OK >+navigator.productSub is OK >+navigator.requestMediaKeySystemAccess() is OK >+navigator.sendBeacon() threw err TypeError: Not enough arguments >+navigator.serviceWorker is OK >+navigator.share() is OK >+navigator.userAgent is OK >+navigator.vendor is OK >+navigator.vendorSub is OK >+navigator.webdriver is OK >+ >diff --git a/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2fff230c26c2cbf852cd6635f77aa16a382b637f >--- /dev/null >+++ b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt >@@ -0,0 +1,7 @@ >+ >+PASS Test driver >+PASS Navigator interface: operation share(ShareData) >+PASS Unscopable handled correctly for share(ShareData) on Navigator >+PASS Navigator interface: navigator must inherit property "share(ShareData)" with the proper type >+PASS Navigator interface: calling share(ShareData) on navigator with too few arguments must throw TypeError >+ >diff --git a/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..57d3291f932f948e0069056b38e808709c3dd8d3 >--- /dev/null >+++ b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt >@@ -0,0 +1,7 @@ >+ >+PASS share with no arguments (same as empty dictionary) >+PASS share with an empty dictionary >+PASS share with a undefined argument (same as empty dictionary) >+PASS share with a null argument (same as empty dictionary) >+PASS share with a dictionary containing only surplus fields >+ >diff --git a/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-securecontext.http-expected.txt b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-securecontext.http-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b39bcda3df4d8ade5ca5d148c691d7305f7c6d93 >--- /dev/null >+++ b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-securecontext.http-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL navigator.share must be undefined in non-secure context assert_false: navigator has attribute 'share'. expected false got true >+ >diff --git a/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-url-invalid.https-expected.txt b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-url-invalid.https-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0e9044299dcc8b133c1312b6e5b29c3c541a619e >--- /dev/null >+++ b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-url-invalid.https-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS share with an invalid URL >+ >diff --git a/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https-expected.txt b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1ddfa676084d0965d68acec86bc96fe63c38315a >--- /dev/null >+++ b/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS share without a user gesture >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 189443
:
349217
|
349226
|
349322
|
349326
|
349329
|
349341
|
349348
|
349367
|
349416
|
349450
|
349469