Add identifier strings for a bunch of context menu items
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Nov 2015 23:37:39 +0000 (23:37 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Nov 2015 23:37:39 +0000 (23:37 +0000)
https://bugs.webkit.org/show_bug.cgi?id=151272

Reviewed by Dan Bernstein.

Source/WebCore:

Have NSMenuItem conform to NSUserInterfaceItemIdentification.

* platform/spi/mac/NSMenuSPI.h:

Source/WebKit2:

* UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm: Added.
* UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: Added.
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::createShareMenuItem):
(WebKit::WebContextMenuProxyMac::createContextMenuItem):
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@192445 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/spi/mac/NSMenuSPI.h
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm [new file with mode: 0644]
Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h [new file with mode: 0644]
Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm
Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

index 8c56e61..61cfa99 100644 (file)
@@ -1,3 +1,14 @@
+2015-11-13  Anders Carlsson  <andersca@apple.com>
+
+        Add identifier strings for a bunch of context menu items
+        https://bugs.webkit.org/show_bug.cgi?id=151272
+
+        Reviewed by Dan Bernstein.
+
+        Have NSMenuItem conform to NSUserInterfaceItemIdentification.
+
+        * platform/spi/mac/NSMenuSPI.h:
+
 2015-11-13  Zalan Bujtas  <zalan@apple.com>
 
         Always render at least a device pixel line when border/outline width > 0.
index 4ec5518..c2e2746 100644 (file)
@@ -45,4 +45,7 @@ typedef NS_ENUM(NSInteger, NSMenuType) {
 + (NSMenuItem *)standardShareMenuItemWithItems:(NSArray *)items;
 @end
 
+@interface NSMenuItem () <NSUserInterfaceItemIdentification>
+@end
+
 #endif
index a23096b..15066d0 100644 (file)
@@ -1,3 +1,18 @@
+2015-11-13  Anders Carlsson  <andersca@apple.com>
+
+        Add identifier strings for a bunch of context menu items
+        https://bugs.webkit.org/show_bug.cgi?id=151272
+
+        Reviewed by Dan Bernstein.
+
+        * UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm: Added.
+        * UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: Added.
+        * UIProcess/mac/WebContextMenuProxyMac.mm:
+        (WebKit::menuItemIdentifier):
+        (WebKit::WebContextMenuProxyMac::createShareMenuItem):
+        (WebKit::WebContextMenuProxyMac::createContextMenuItem):
+        * WebKit2.xcodeproj/project.pbxproj:
+
 2015-11-13  Joseph Pecoraro  <pecoraro@apple.com>
 
         Web Inspector: Provide a way to override the WKWebView remote inspector name
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm b/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm
new file mode 100644 (file)
index 0000000..e1e60ca
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WKMenuItemIdentifiersPrivate.h"
+
+#if WK_API_ENABLED
+
+NSString * const _WKMenuItemIdentifierCopy = @"WKMenuItemIdentifierCopy";
+NSString * const _WKMenuItemIdentifierCopyImage = @"WKMenuItemIdentifierCopyImage";
+NSString * const _WKMenuItemIdentifierCopyLink = @"WKMenuItemIdentifierCopyLink";
+NSString * const _WKMenuItemIdentifierDownloadImage = @"WKMenuItemIdentifierDownloadImage";
+NSString * const _WKMenuItemIdentifierDownloadLinkedFile = @"WKMenuItemIdentifierDownloadLinkedFile";
+NSString * const _WKMenuItemIdentifierGoBack = @"WKMenuItemIdentifierGoBack";
+NSString * const _WKMenuItemIdentifierGoForward = @"WKMenuItemIdentifierGoForward";
+NSString * const _WKMenuItemIdentifierInspectElement = @"WKMenuItemIdentifierInspectElement";
+NSString * const _WKMenuItemIdentifierLookUp = @"WKMenuItemIdentifierLookUp";
+NSString * const _WKMenuItemIdentifierOpenFrameInNewWindow = @"WKMenuItemIdentifierOpenFrameInNewWindow";
+NSString * const _WKMenuItemIdentifierOpenImageInNewWindow = @"WKMenuItemIdentifierOpenImageInNewWindow";
+NSString * const _WKMenuItemIdentifierOpenLink = @"WKMenuItemIdentifierOpenLink";
+NSString * const _WKMenuItemIdentifierOpenLinkInNewWindow = @"WKMenuItemIdentifierOpenLinkInNewWindow";
+NSString * const _WKMenuItemIdentifierPaste = @"WKMenuItemIdentifierPaste";
+NSString * const _WKMenuItemIdentifierReload = @"WKMenuItemIdentifierReload";
+NSString * const _WKMenuItemIdentifierSearchWeb = @"WKMenuItemIdentifierSearchWeb";
+NSString * const _WKMenuItemIdentifierToggleMediaControls = @"WKMenuItemIdentifierToggleMediaControls";
+NSString * const _WKMenuItemIdentifierToggleFullScreen = @"WKMenuItemIdentifierToggleFullScreen";
+
+NSString * const _WKMenuItemIdentifierShareMenu = @"WKMenuItemIdentifierShareMenu";
+NSString * const _WKMenuItemIdentifierSpeechMenu = @"WKMenuItemIdentifierSpeechMenu";
+
+#endif
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h b/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h
new file mode 100644 (file)
index 0000000..0dda025
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <WebKit/WKFoundation.h>
+
+#if WK_API_ENABLED
+
+#import <WebKit/WKDeclarationSpecifiers.h>
+
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierCopy WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierCopyImage WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierCopyLink WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierDownloadImage WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierDownloadLinkedFile WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierGoBack WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierGoForward WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierInspectElement WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierLookUp WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierOpenFrameInNewWindow WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierOpenImageInNewWindow WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierOpenLink WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierOpenLinkInNewWindow WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierPaste WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierReload WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierSearchWeb WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierToggleMediaControls WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierToggleFullScreen WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierShareMenu WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+WK_EXPORT extern NSString * const _WKMenuItemIdentifierSpeechMenu WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+
+#endif
index edccf73..ddbdcab 100644 (file)
@@ -35,6 +35,7 @@
 #import "ServicesController.h"
 #import "ShareableBitmap.h"
 #import "StringUtilities.h"
+#import "WKMenuItemIdentifiersPrivate.h"
 #import "WKSharingServicePickerDelegate.h"
 #import "WebContextMenuItem.h"
 #import "WebContextMenuItemData.h"
@@ -257,6 +258,74 @@ void WebContextMenuProxyMac::clearServicesMenu()
     m_menu = nullptr;
 }
 
+static NSString *menuItemIdentifier(const ContextMenuAction action)
+{
+    switch (action) {
+    case ContextMenuItemTagCopy:
+        return _WKMenuItemIdentifierCopy;
+
+    case ContextMenuItemTagCopyImageToClipboard:
+        return _WKMenuItemIdentifierCopyImage;
+
+    case ContextMenuItemTagCopyLinkToClipboard:
+        return _WKMenuItemIdentifierCopyLink;
+
+    case ContextMenuItemTagDownloadImageToDisk:
+        return _WKMenuItemIdentifierDownloadImage;
+
+    case ContextMenuItemTagDownloadLinkToDisk:
+        return _WKMenuItemIdentifierDownloadLinkedFile;
+
+    case ContextMenuItemTagGoBack:
+        return _WKMenuItemIdentifierGoBack;
+
+    case ContextMenuItemTagGoForward:
+        return _WKMenuItemIdentifierGoForward;
+
+    case ContextMenuItemTagInspectElement:
+        return _WKMenuItemIdentifierInspectElement;
+
+    case ContextMenuItemTagLookUpInDictionary:
+        return _WKMenuItemIdentifierLookUp;
+
+    case ContextMenuItemTagOpenFrameInNewWindow:
+        return _WKMenuItemIdentifierOpenFrameInNewWindow;
+
+    case ContextMenuItemTagOpenImageInNewWindow:
+        return _WKMenuItemIdentifierOpenImageInNewWindow;
+
+    case ContextMenuItemTagOpenLink:
+        return _WKMenuItemIdentifierOpenLink;
+
+    case ContextMenuItemTagOpenLinkInNewWindow:
+        return _WKMenuItemIdentifierOpenLinkInNewWindow;
+
+    case ContextMenuItemTagPaste:
+        return _WKMenuItemIdentifierPaste;
+
+    case ContextMenuItemTagReload:
+        return _WKMenuItemIdentifierReload;
+
+    case ContextMenuItemTagSearchWeb:
+        return _WKMenuItemIdentifierSearchWeb;
+
+    case ContextMenuItemTagToggleMediaControls:
+        return _WKMenuItemIdentifierToggleMediaControls;
+
+    case ContextMenuItemTagToggleVideoFullscreen:
+        return _WKMenuItemIdentifierToggleFullScreen;
+
+    case ContextMenuItemTagShareMenu:
+        return _WKMenuItemIdentifierShareMenu;
+
+    case ContextMenuItemTagSpeechMenu:
+        return _WKMenuItemIdentifierSpeechMenu;
+
+    default:
+        return nil;
+    }
+}
+
 RetainPtr<NSMenuItem> WebContextMenuProxyMac::createShareMenuItem()
 {
     if (![[NSMenuItem class] respondsToSelector:@selector(standardShareMenuItemWithItems:)])
@@ -298,6 +367,8 @@ RetainPtr<NSMenuItem> WebContextMenuProxyMac::createShareMenuItem()
     // Setting the picker lets the delegate retain it to keep it alive, but this picker is kept alive by the menu item.
     [[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate] setPicker:nil];
 
+    [item setIdentifier:_WKMenuItemIdentifierShareMenu];
+
     return item;
 }
 #endif
@@ -345,6 +416,7 @@ RetainPtr<NSMenuItem> WebContextMenuProxyMac::createContextMenuItem(const WebCon
         [menuItem setEnabled:item.enabled()];
         [menuItem setState:item.checked() ? NSOnState : NSOffState];
         [menuItem setTarget:[WKMenuTarget sharedMenuTarget]];
+        [menuItem setIdentifier:menuItemIdentifier(item.action())];
 
         if (item.userData()) {
             auto wrapper = adoptNS([[WKUserDataWrapper alloc] initWithUserData:item.userData()]);
@@ -361,6 +433,7 @@ RetainPtr<NSMenuItem> WebContextMenuProxyMac::createContextMenuItem(const WebCon
         auto menuItem = adoptNS([[NSMenuItem alloc] initWithTitle:item.title() action:nullptr keyEquivalent:@""]);
         [menuItem setEnabled:item.enabled()];
         [menuItem setSubmenu:createContextMenuFromItems(item.submenu()).get()];
+        [menuItem setIdentifier:menuItemIdentifier(item.action())];
 
         return menuItem;
     }
index 8ed58e1..0cc2deb 100644 (file)
                1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB16AE8164B3A8800290D62 /* RemoteLayerTreeContext.h */; };
                1AB31A9616BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AB31A9416BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp */; };
                1AB31A9716BC688100F6DBC9 /* StorageManagerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB31A9516BC688100F6DBC9 /* StorageManagerMessages.h */; };
+               1AB40EE51BF677E300BA81BE /* WKMenuItemIdentifiers.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AB40EE31BF677E300BA81BE /* WKMenuItemIdentifiers.mm */; };
+               1AB40EE61BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB40EE41BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1AB474D8184D43FD0051B622 /* WKBundlePageLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB474D7184D43FD0051B622 /* WKBundlePageLoaderClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1AB474DA184D44250051B622 /* WKBundlePageResourceLoadClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB474D9184D44250051B622 /* WKBundlePageResourceLoadClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1AB474DE184D44590051B622 /* WKBundlePageUIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB474DD184D44590051B622 /* WKBundlePageUIClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1AB31A9316BC65AB00F6DBC9 /* StorageManager.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = StorageManager.messages.in; sourceTree = "<group>"; };
                1AB31A9416BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageManagerMessageReceiver.cpp; sourceTree = "<group>"; };
                1AB31A9516BC688100F6DBC9 /* StorageManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageManagerMessages.h; sourceTree = "<group>"; };
+               1AB40EE31BF677E300BA81BE /* WKMenuItemIdentifiers.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKMenuItemIdentifiers.mm; sourceTree = "<group>"; };
+               1AB40EE41BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKMenuItemIdentifiersPrivate.h; sourceTree = "<group>"; };
                1AB474D7184D43FD0051B622 /* WKBundlePageLoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePageLoaderClient.h; sourceTree = "<group>"; };
                1AB474D9184D44250051B622 /* WKBundlePageResourceLoadClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePageResourceLoadClient.h; sourceTree = "<group>"; };
                1AB474DD184D44590051B622 /* WKBundlePageUIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePageUIClient.h; sourceTree = "<group>"; };
                                2DF9EEE71A78245500B6CFBE /* WKFrameInfoInternal.h */,
                                1A6FA21D1BD0435B00AAA650 /* WKFrameInfoPrivate.h */,
                                1A422F8A18B29B5400D8CD96 /* WKHistoryDelegatePrivate.h */,
+                               1AB40EE31BF677E300BA81BE /* WKMenuItemIdentifiers.mm */,
+                               1AB40EE41BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h */,
                                1A5B1C4F1898606F004FCF9B /* WKNavigation.h */,
                                1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */,
                                1A256E3618A1A788006FB922 /* WKNavigationAction.h */,
                                9391F2CB121B67AD00EBF7E8 /* WebFrameNetworkingContext.h in Headers */,
                                BCB9F6A01123A84B00A137E0 /* WebFramePolicyListenerProxy.h in Headers */,
                                BC9B38A110F538BE00443A15 /* WebFrameProxy.h in Headers */,
+                               1AB40EE61BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h in Headers */,
                                BC1BE1E012D54A410004A228 /* WebGeolocationClient.h in Headers */,
                                BC0E5FE512D697160012A72A /* WebGeolocationManager.h in Headers */,
                                BC0E606212D6BA910012A72A /* WebGeolocationManagerMessages.h in Headers */,
                                1AAB037C185F99D800EDF501 /* APIData.cpp in Sources */,
                                1A1EF1991A1D5B420023200A /* APIDataCocoa.mm in Sources */,
                                7C1BA33D1A4A0E600043E249 /* APIDictionary.cpp in Sources */,
+                               1AB40EE51BF677E300BA81BE /* WKMenuItemIdentifiers.mm in Sources */,
                                BC575613126E0138006F0F12 /* APIError.cpp in Sources */,
                                1AC1337118566C7C00F3EC05 /* APIFrameHandle.cpp in Sources */,
                                2DF9EEE51A781FB400B6CFBE /* APIFrameInfo.cpp in Sources */,