Diff
Modified: trunk/Source/WebCore/ChangeLog (165910 => 165911)
--- trunk/Source/WebCore/ChangeLog 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebCore/ChangeLog 2014-03-19 20:12:24 UTC (rev 165911)
@@ -1,3 +1,12 @@
+2014-03-19 Brady Eidson <beid...@apple.com>
+
+ Filter out editable services from image menu for non-contenteditable images
+ <rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437
+
+ Reviewed by Tim Horton.
+
+ * WebCore.exp.in:
+
2014-03-19 Dirk Schulze <k...@webkit.org>
Implement method addPath for Path2D
Modified: trunk/Source/WebCore/WebCore.exp.in (165910 => 165911)
--- trunk/Source/WebCore/WebCore.exp.in 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebCore/WebCore.exp.in 2014-03-19 20:12:24 UTC (rev 165911)
@@ -1017,6 +1017,7 @@
__ZN7WebCore4Node12insertBeforeEN3WTF10PassRefPtrIS0_EEPS0_Ri
__ZN7WebCore4Node14removedLastRefEv
__ZN7WebCore4Node14setTextContentERKN3WTF6StringERi
+__ZN7WebCore4Node17isContentEditableENS0_22UserSelectAllTreatmentE
__ZN7WebCore4Node17stopIgnoringLeaksEv
__ZN7WebCore4Node18startIgnoringLeaksEv
__ZN7WebCore4Node19setNeedsStyleRecalcENS_15StyleChangeTypeE
Modified: trunk/Source/WebKit/mac/ChangeLog (165910 => 165911)
--- trunk/Source/WebKit/mac/ChangeLog 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit/mac/ChangeLog 2014-03-19 20:12:24 UTC (rev 165911)
@@ -1,3 +1,17 @@
+2014-03-19 Brady Eidson <beid...@apple.com>
+
+ Filter out editable services from image menu for non-contenteditable images
+ <rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437
+
+ Reviewed by Tim Horton.
+
+ * Misc/WebSharingServicePickerController.h:
+ * Misc/WebSharingServicePickerController.mm:
+ (-[WebSharingServicePickerController sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
+ Filter out editing services based on the includeEditorServices flag.
+ * WebCoreSupport/WebContextMenuClient.mm:
+ (WebContextMenuClient::contextMenuForEvent):
+
2014-03-19 Jer Noble <jer.no...@apple.com>
[iOS] Disable the video plugin proxy by default on WK1.
Modified: trunk/Source/WebKit/mac/Misc/WebSharingServicePickerController.h (165910 => 165911)
--- trunk/Source/WebKit/mac/Misc/WebSharingServicePickerController.h 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit/mac/Misc/WebSharingServicePickerController.h 2014-03-19 20:12:24 UTC (rev 165911)
@@ -36,9 +36,10 @@
@interface WebSharingServicePickerController : NSObject <NSSharingServiceDelegate, NSSharingServicePickerDelegate> {
WebContextMenuClient* _menuClient;
RetainPtr<NSSharingServicePicker> _picker;
+ BOOL _includeEditorServices;
}
-- (instancetype)initWithImage:(NSImage *)image menuClient:(WebContextMenuClient*)menuClient;
+- (instancetype)initWithImage:(NSImage *)image includeEditorServices:(BOOL)includeEditorServices menuClient:(WebContextMenuClient*)menuClient;
- (NSMenu *)menu;
@end
Modified: trunk/Source/WebKit/mac/Misc/WebSharingServicePickerController.mm (165910 => 165911)
--- trunk/Source/WebKit/mac/Misc/WebSharingServicePickerController.mm 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit/mac/Misc/WebSharingServicePickerController.mm 2014-03-19 20:12:24 UTC (rev 165911)
@@ -52,7 +52,7 @@
@implementation WebSharingServicePickerController
-- (instancetype)initWithImage:(NSImage *)image menuClient:(WebContextMenuClient*)menuClient
+- (instancetype)initWithImage:(NSImage *)image includeEditorServices:(BOOL)includeEditorServices menuClient:(WebContextMenuClient*)menuClient
{
if (!(self = [super init]))
return nil;
@@ -61,6 +61,7 @@
[_picker setStyle:NSSharingServicePickerStyleRollover];
[_picker setDelegate:self];
+ _includeEditorServices = includeEditorServices;
_menuClient = menuClient;
return self;
@@ -81,6 +82,22 @@
#pragma mark NSSharingServicePickerDelegate methods
+
+- (NSArray *)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker sharingServicesForItems:(NSArray *)items mask:(NSSharingServiceMask)mask proposedSharingServices:(NSArray *)proposedServices
+{
+ if (_includeEditorServices)
+ return proposedServices;
+
+ NSMutableArray *services = [[NSMutableArray alloc] initWithCapacity:[proposedServices count]];
+
+ for (NSSharingService *service in proposedServices) {
+ if (service.type != NSSharingServiceTypeEditor)
+ [services addObject:service];
+ }
+
+ return services;
+}
+
- (id <NSSharingServiceDelegate>)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker delegateForSharingService:(NSSharingService *)sharingService
{
return self;
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm (165910 => 165911)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm 2014-03-19 20:12:24 UTC (rev 165911)
@@ -362,7 +362,10 @@
#if ENABLE(IMAGE_CONTROLS)
if (Image* image = page->contextMenuController().context().controlledImage()) {
- m_sharingServicePickerController = adoptNS([[WebSharingServicePickerController alloc] initWithImage:image->getNSImage() menuClient:this]);
+ ASSERT(page->contextMenuController().context().hitTestResult().innerNode());
+ bool isContentEditable = page->contextMenuController().context().hitTestResult().innerNode()->isContentEditable();
+ m_sharingServicePickerController = adoptNS([[WebSharingServicePickerController alloc] initWithImage:image->getNSImage() includeEditorServices:isContentEditable menuClient:this]);
+
return [m_sharingServicePickerController menu];
}
#endif
Modified: trunk/Source/WebKit2/ChangeLog (165910 => 165911)
--- trunk/Source/WebKit2/ChangeLog 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit2/ChangeLog 2014-03-19 20:12:24 UTC (rev 165911)
@@ -1,3 +1,18 @@
+2014-03-19 Brady Eidson <beid...@apple.com>
+
+ Filter out editable services from image menu for non-contenteditable images
+ <rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437
+
+ Reviewed by Tim Horton.
+
+ * UIProcess/mac/WebContextMenuProxyMac.h:
+ * UIProcess/mac/WebContextMenuProxyMac.mm:
+ (-[WKSharingServicePickerDelegate setIncludeEditorServices:]):
+ (-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
+ Filter out editing services based on the includeEditorServices flag.
+ (WebKit::WebContextMenuProxyMac::setupImageServicesMenu):
+ (WebKit::WebContextMenuProxyMac::populate):
+
2014-03-19 Yongjun Zhang <yongjun_zh...@apple.com>
[iOS] WebKit2 Quicklook.
Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.h (165910 => 165911)
--- trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.h 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.h 2014-03-19 20:12:24 UTC (rev 165911)
@@ -66,7 +66,7 @@
void populate(const Vector<WebContextMenuItemData>&, const ContextMenuContextData&);
#if ENABLE(IMAGE_CONTROLS)
- void setupImageServicesMenu(ShareableBitmap&);
+ void setupImageServicesMenu(ShareableBitmap&, bool includeEditorServices);
#endif
RetainPtr<NSPopUpButtonCell> m_popup;
Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm (165910 => 165911)
--- trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm 2014-03-19 19:54:42 UTC (rev 165910)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm 2014-03-19 20:12:24 UTC (rev 165911)
@@ -131,12 +131,14 @@
@interface WKSharingServicePickerDelegate : NSObject <NSSharingServiceDelegate, NSSharingServicePickerDelegate> {
WebKit::WebContextMenuProxyMac* _menuProxy;
RetainPtr<NSSharingServicePicker> _picker;
+ BOOL _includeEditorServices;
}
+ (WKSharingServicePickerDelegate *)sharedSharingServicePickerDelegate;
- (WebKit::WebContextMenuProxyMac*)menuProxy;
- (void)setMenuProxy:(WebKit::WebContextMenuProxyMac*)menuProxy;
- (void)setPicker:(NSSharingServicePicker *)picker;
+- (void)setIncludeEditorServices:(BOOL)includeEditorServices;
@end
// FIXME: We probably need to hang on the picker itself until the context menu operation is done, and this object will probably do that.
@@ -162,6 +164,26 @@
_picker = picker;
}
+- (void)setIncludeEditorServices:(BOOL)includeEditorServices
+{
+ _includeEditorServices = includeEditorServices;
+}
+
+- (NSArray *)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker sharingServicesForItems:(NSArray *)items mask:(NSSharingServiceMask)mask proposedSharingServices:(NSArray *)proposedServices
+{
+ if (_includeEditorServices)
+ return proposedServices;
+
+ NSMutableArray *services = [[NSMutableArray alloc] initWithCapacity:[proposedServices count]];
+
+ for (NSSharingService *service in proposedServices) {
+ if (service.type != NSSharingServiceTypeEditor)
+ [services addObject:service];
+ }
+
+ return services;
+}
+
- (id <NSSharingServiceDelegate>)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker delegateForSharingService:(NSSharingService *)sharingService
{
return self;
@@ -274,7 +296,7 @@
}
#if ENABLE(IMAGE_CONTROLS)
-void WebContextMenuProxyMac::setupImageServicesMenu(ShareableBitmap& image)
+void WebContextMenuProxyMac::setupImageServicesMenu(ShareableBitmap& image, bool includeEditorServices)
{
RetainPtr<CGImageRef> cgImage = image.makeCGImage();
RetainPtr<NSImage> nsImage = adoptNS([[NSImage alloc] initWithCGImage:cgImage.get() size:image.size()]);
@@ -283,6 +305,7 @@
[picker setStyle:NSSharingServicePickerStyleRollover];
[picker setDelegate:[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]];
[[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate] setPicker:picker.get()];
+ [[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate] setIncludeEditorServices:includeEditorServices];
m_servicesMenu = [picker menu];
}
@@ -298,7 +321,7 @@
{
#if ENABLE(IMAGE_CONTROLS)
if (RefPtr<ShareableBitmap> image = ShareableBitmap::create(context.controlledImageHandle())) {
- setupImageServicesMenu(*image);
+ setupImageServicesMenu(*image, context.webHitTestResultData().isContentEditable);
return;
}
#endif