Diff
Modified: trunk/Source/WebCore/ChangeLog (192480 => 192481)
--- trunk/Source/WebCore/ChangeLog 2015-11-16 20:42:29 UTC (rev 192480)
+++ trunk/Source/WebCore/ChangeLog 2015-11-16 20:46:19 UTC (rev 192481)
@@ -1,3 +1,14 @@
+2015-11-16 Anders Carlsson <ander...@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-16 Jiewen Tan <jiewen_...@apple.com>
Null-pointer dereference in WebCore::firstEditablePositionAfterPositionInRoot
Modified: trunk/Source/WebCore/platform/spi/mac/NSMenuSPI.h (192480 => 192481)
--- trunk/Source/WebCore/platform/spi/mac/NSMenuSPI.h 2015-11-16 20:42:29 UTC (rev 192480)
+++ trunk/Source/WebCore/platform/spi/mac/NSMenuSPI.h 2015-11-16 20:46:19 UTC (rev 192481)
@@ -45,4 +45,7 @@
+ (NSMenuItem *)standardShareMenuItemWithItems:(NSArray *)items;
@end
+@interface NSMenuItem () <NSUserInterfaceItemIdentification>
+@end
+
#endif
Modified: trunk/Source/WebKit2/ChangeLog (192480 => 192481)
--- trunk/Source/WebKit2/ChangeLog 2015-11-16 20:42:29 UTC (rev 192480)
+++ trunk/Source/WebKit2/ChangeLog 2015-11-16 20:46:19 UTC (rev 192481)
@@ -1,3 +1,18 @@
+2015-11-16 Anders Carlsson <ander...@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-16 Simon Fraser <simon.fra...@apple.com>
Sort the Xcode project files.
Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm (0 => 192481)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm 2015-11-16 20:46:19 UTC (rev 192481)
@@ -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 _WKMenuItemIdentifierShowHideMediaControls = @"WKMenuItemIdentifierShowHideMediaControls";
+NSString * const _WKMenuItemIdentifierToggleFullScreen = @"WKMenuItemIdentifierToggleFullScreen";
+
+NSString * const _WKMenuItemIdentifierShareMenu = @"WKMenuItemIdentifierShareMenu";
+NSString * const _WKMenuItemIdentifierSpeechMenu = @"WKMenuItemIdentifierSpeechMenu";
+
+#endif
Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h (0 => 192481)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h 2015-11-16 20:46:19 UTC (rev 192481)
@@ -0,0 +1,55 @@
+/*
+ * 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 <Foundation/Foundation.h>
+#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 _WKMenuItemIdentifierShowHideMediaControls 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
Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm (192480 => 192481)
--- trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm 2015-11-16 20:42:29 UTC (rev 192480)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm 2015-11-16 20:46:19 UTC (rev 192481)
@@ -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"
@@ -298,6 +299,10 @@
// 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];
+#if WK_API_ENABLED
+ [item setIdentifier:_WKMenuItemIdentifierShareMenu];
+#endif
+
return item;
}
#endif
@@ -329,6 +334,76 @@
return menu;
}
+static NSString *menuItemIdentifier(const ContextMenuAction action)
+{
+ switch (action) {
+#if WK_API_ENABLED
+ 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 _WKMenuItemIdentifierShowHideMediaControls;
+
+ case ContextMenuItemTagToggleVideoFullscreen:
+ return _WKMenuItemIdentifierToggleFullScreen;
+
+ case ContextMenuItemTagShareMenu:
+ return _WKMenuItemIdentifierShareMenu;
+
+ case ContextMenuItemTagSpeechMenu:
+ return _WKMenuItemIdentifierSpeechMenu;
+#endif
+
+ default:
+ return nil;
+ }
+}
+
RetainPtr<NSMenuItem> WebContextMenuProxyMac::createContextMenuItem(const WebContextMenuItemData& item)
{
#if ENABLE(SERVICE_CONTROLS)
@@ -345,6 +420,7 @@
[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 +437,7 @@
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;
}
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (192480 => 192481)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2015-11-16 20:42:29 UTC (rev 192480)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2015-11-16 20:46:19 UTC (rev 192481)
@@ -398,6 +398,8 @@
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 */; };
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, ); }; };
@@ -2562,6 +2564,8 @@
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>"; };
@@ -5442,6 +5446,8 @@
2DF9EEE71A78245500B6CFBE /* WKFrameInfoInternal.h */,
1A6FA21D1BD0435B00AAA650 /* WKFrameInfoPrivate.h */,
1A422F8A18B29B5400D8CD96 /* WKHistoryDelegatePrivate.h */,
+ 1AB40EE31BF677E300BA81BE /* WKMenuItemIdentifiers.mm */,
+ 1AB40EE41BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h */,
1A5B1C4F1898606F004FCF9B /* WKNavigation.h */,
1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */,
1A256E3618A1A788006FB922 /* WKNavigationAction.h */,
@@ -8114,6 +8120,7 @@
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 */,
@@ -9530,6 +9537,7 @@
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 */,