Make preview inline navigation work API
https://bugs.webkit.org/show_bug.cgi?id=155383
-and corresponding-
rdar://problem/25117985

Reviewed by Dan Bernstein.

With this patch:
_WKElementInfo is now WKElementInfo in file and class names. Header is now 
public.

_WKPreviewElementInfo is now WKPreviewElementInfo in file and class names. 
Header is now public.

_WKPreviewAction is now WKPreviewActionItem in filenames (header is now 
public), the protocol _WKPreviewActionItem is now WKPreviewActionItem, and 
the _WKPreviewAction class is now WKPreviewAction. (The internal header is 
still project, of course.)
and
WKPreviewActionIdentifiersPrivate.h/mm is now
WKPreviewActionItemIdentifiers.h/mm and all the the identifiers have been 
updated. Header is now public.

* Shared/API/Cocoa/WebKit.h:
* UIProcess/API/Cocoa/WKElementInfo.h: Copied from UIProcess/API/Cocoa/_WKElementInfo.h.
* UIProcess/API/Cocoa/WKElementInfo.mm: Copied from UIProcess/API/Cocoa/_WKElementInfo.mm.
(-[WKElementInfo copyWithZone:]):
(-[_WKElementInfo copyWithZone:]): Deleted.
* UIProcess/API/Cocoa/WKElementInfoInternal.h: Copied from UIProcess/API/Cocoa/_WKElementInfoInternal.h.
* UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h: Removed.
* UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm: Removed.
* UIProcess/API/Cocoa/WKPreviewActionItem.h: Copied from UIProcess/API/Cocoa/_WKPreviewAction.h.
* UIProcess/API/Cocoa/WKPreviewActionItem.mm: Copied from UIProcess/API/Cocoa/_WKPreviewAction.mm.
* UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h: Copied from UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h.
* UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm: Copied from UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm.
* UIProcess/API/Cocoa/WKPreviewActionItemInternal.h: Copied from UIProcess/API/Cocoa/_WKPreviewActionInternal.h.
* UIProcess/API/Cocoa/WKPreviewElementInfo.h: Copied from UIProcess/API/Cocoa/_WKPreviewElementInfo.h.
* UIProcess/API/Cocoa/WKPreviewElementInfo.mm: Copied from UIProcess/API/Cocoa/_WKPreviewElementInfo.mm.
(-[WKPreviewElementInfo _initWithLinkURL:]):
(-[_WKPreviewElementInfo _initWithLinkURL:]): Deleted.
* UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h: Copied from UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h.
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
* UIProcess/API/Cocoa/_WKElementInfo.h: Removed.
* UIProcess/API/Cocoa/_WKElementInfo.mm: Removed.
* UIProcess/API/Cocoa/_WKElementInfoInternal.h: Removed.
* UIProcess/API/Cocoa/_WKPreviewAction.h: Removed.
* UIProcess/API/Cocoa/_WKPreviewAction.mm: Removed.
* UIProcess/API/Cocoa/_WKPreviewActionInternal.h: Removed.
* UIProcess/API/Cocoa/_WKPreviewElementInfo.h: Removed.
* UIProcess/API/Cocoa/_WKPreviewElementInfo.mm: Removed.
* UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h: Removed.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
(previewIdentifierForElementAction):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
(-[WKContentView _previewItemController:commitPreview:]):
* WebKit2.xcodeproj/project.pbxproj:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@198070 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog
index dd554cc..cc56509 100644
--- a/Source/WebKit2/ChangeLog
+++ b/Source/WebKit2/ChangeLog
@@ -1,3 +1,65 @@
+2016-03-12  Beth Dakin  <bdakin@apple.com>
+
+        Make preview inline navigation work API
+        https://bugs.webkit.org/show_bug.cgi?id=155383
+        -and corresponding-
+        rdar://problem/25117985
+
+        Reviewed by Dan Bernstein.
+
+        With this patch:
+        _WKElementInfo is now WKElementInfo in file and class names. Header is now 
+        public.
+
+        _WKPreviewElementInfo is now WKPreviewElementInfo in file and class names. 
+        Header is now public.
+
+        _WKPreviewAction is now WKPreviewActionItem in filenames (header is now 
+        public), the protocol _WKPreviewActionItem is now WKPreviewActionItem, and 
+        the _WKPreviewAction class is now WKPreviewAction. (The internal header is 
+        still project, of course.)
+        and
+        WKPreviewActionIdentifiersPrivate.h/mm is now
+        WKPreviewActionItemIdentifiers.h/mm and all the the identifiers have been 
+        updated. Header is now public.
+
+        * Shared/API/Cocoa/WebKit.h:
+        * UIProcess/API/Cocoa/WKElementInfo.h: Copied from UIProcess/API/Cocoa/_WKElementInfo.h.
+        * UIProcess/API/Cocoa/WKElementInfo.mm: Copied from UIProcess/API/Cocoa/_WKElementInfo.mm.
+        (-[WKElementInfo copyWithZone:]):
+        (-[_WKElementInfo copyWithZone:]): Deleted.
+        * UIProcess/API/Cocoa/WKElementInfoInternal.h: Copied from UIProcess/API/Cocoa/_WKElementInfoInternal.h.
+        * UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h: Removed.
+        * UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm: Removed.
+        * UIProcess/API/Cocoa/WKPreviewActionItem.h: Copied from UIProcess/API/Cocoa/_WKPreviewAction.h.
+        * UIProcess/API/Cocoa/WKPreviewActionItem.mm: Copied from UIProcess/API/Cocoa/_WKPreviewAction.mm.
+        * UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h: Copied from UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h.
+        * UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm: Copied from UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm.
+        * UIProcess/API/Cocoa/WKPreviewActionItemInternal.h: Copied from UIProcess/API/Cocoa/_WKPreviewActionInternal.h.
+        * UIProcess/API/Cocoa/WKPreviewElementInfo.h: Copied from UIProcess/API/Cocoa/_WKPreviewElementInfo.h.
+        * UIProcess/API/Cocoa/WKPreviewElementInfo.mm: Copied from UIProcess/API/Cocoa/_WKPreviewElementInfo.mm.
+        (-[WKPreviewElementInfo _initWithLinkURL:]):
+        (-[_WKPreviewElementInfo _initWithLinkURL:]): Deleted.
+        * UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h: Copied from UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h.
+        * UIProcess/API/Cocoa/WKUIDelegate.h:
+        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
+        * UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
+        * UIProcess/API/Cocoa/_WKElementInfo.h: Removed.
+        * UIProcess/API/Cocoa/_WKElementInfo.mm: Removed.
+        * UIProcess/API/Cocoa/_WKElementInfoInternal.h: Removed.
+        * UIProcess/API/Cocoa/_WKPreviewAction.h: Removed.
+        * UIProcess/API/Cocoa/_WKPreviewAction.mm: Removed.
+        * UIProcess/API/Cocoa/_WKPreviewActionInternal.h: Removed.
+        * UIProcess/API/Cocoa/_WKPreviewElementInfo.h: Removed.
+        * UIProcess/API/Cocoa/_WKPreviewElementInfo.mm: Removed.
+        * UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h: Removed.
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
+        (previewIdentifierForElementAction):
+        (-[WKContentView _presentedViewControllerForPreviewItemController:]):
+        (-[WKContentView _previewItemController:commitPreview:]):
+        * WebKit2.xcodeproj/project.pbxproj:
+
 2016-03-12  Jeremy Huddleston Sequoia  <jeremyhu@apple.com>
 
         [GTK][Mac] Use DYLD_LIBRARY_PATH on OSX rather then LD_LIBRARY_PATH
diff --git a/Source/WebKit2/Shared/API/Cocoa/WebKit.h b/Source/WebKit2/Shared/API/Cocoa/WebKit.h
index c3d7f15..db38a30 100644
--- a/Source/WebKit2/Shared/API/Cocoa/WebKit.h
+++ b/Source/WebKit2/Shared/API/Cocoa/WebKit.h
@@ -25,6 +25,7 @@
 
 #import <WebKit/WKBackForwardList.h>
 #import <WebKit/WKBackForwardListItem.h>
+#import <WebKit/WKElementInfo.h>
 #import <WebKit/WKError.h>
 #import <WebKit/WKFoundation.h>
 #import <WebKit/WKFrameInfo.h>
@@ -33,6 +34,9 @@
 #import <WebKit/WKNavigationDelegate.h>
 #import <WebKit/WKNavigationResponse.h>
 #import <WebKit/WKPreferences.h>
+#import <WebKit/WKPreviewActionItem.h>
+#import <WebKit/WKPreviewActionItemIdentifiers.h>
+#import <WebKit/WKPreviewElementInfo.h>
 #import <WebKit/WKProcessPool.h>
 #import <WebKit/WKScriptMessage.h>
 #import <WebKit/WKScriptMessageHandler.h>
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.h b/Source/WebKit2/UIProcess/API/Cocoa/WKElementInfo.h
similarity index 96%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKElementInfo.h
index a7d2213..d2d1356 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKElementInfo.h
@@ -30,7 +30,7 @@
 NS_ASSUME_NONNULL_BEGIN
 
 WK_CLASS_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA)
-@interface _WKElementInfo : NSObject <NSCopying>
+@interface WKElementInfo : NSObject <NSCopying>
 
 @property (nonatomic, readonly) NSURL *linkURL;
 
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.mm b/Source/WebKit2/UIProcess/API/Cocoa/WKElementInfo.mm
similarity index 95%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.mm
rename to Source/WebKit2/UIProcess/API/Cocoa/WKElementInfo.mm
index 0229977..8d88398 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.mm
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKElementInfo.mm
@@ -24,11 +24,11 @@
  */
 
 #import "config.h"
-#import "_WKElementInfoInternal.h"
+#import "WKElementInfoInternal.h"
 
 #if WK_API_ENABLED
 
-@implementation _WKElementInfo
+@implementation WKElementInfo
 
 - (id)copyWithZone:(NSZone *)zone
 {
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfoInternal.h b/Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h
similarity index 94%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfoInternal.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h
index 6166a71..44198de 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfoInternal.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h
@@ -23,17 +23,17 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#import "_WKElementInfo.h"
+#import "WKElementInfo.h"
 
 #import <wtf/RetainPtr.h>
 
 #if WK_API_ENABLED
 
-@interface _WKElementInfo () {
+@interface WKElementInfo () {
 @package
     RetainPtr<NSURL> _linkURL;
 }
 
 @end
 
-#endif // WK_API_ENABLED
+#endif
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewAction.h b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItem.h
similarity index 87%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewAction.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItem.h
index e617d61..3d41942 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewAction.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItem.h
@@ -29,11 +29,11 @@
 
 #import <UIKit/UIViewController.h>
 
-WK_CLASS_AVAILABLE(NA, WK_IOS_TBA)
-@protocol _WKPreviewActionItem <NSObject, UIPreviewActionItem>
+WK_AVAILABLE(NA, WK_IOS_TBA)
+@protocol WKPreviewActionItem <UIPreviewActionItem>
 
-@property(nonatomic, copy, readonly) NSString *identifier;
+@property (nonatomic, copy, readonly) NSString *identifier;
 
 @end
 
-#endif // WK_API_ENABLED && TARGET_OS_IPHONE
+#endif
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewAction.mm b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItem.mm
similarity index 91%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewAction.mm
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItem.mm
index d359982..6dd1dfa 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewAction.mm
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItem.mm
@@ -24,16 +24,16 @@
  */
 
 #import "config.h"
-#import "_WKPreviewActionInternal.h"
+#import "WKPreviewActionItemInternal.h"
 
 #if WK_API_ENABLED && TARGET_OS_IPHONE
 
-@implementation _WKPreviewAction
+@implementation WKPreviewAction
 @synthesize identifier=_identifier;
 
 + (instancetype)actionWithIdentifier:(NSString *)identifier title:(NSString *)title style:(UIPreviewActionStyle)style handler:(void (^)(UIPreviewAction *action, UIViewController *previewViewController))handler
 {
-    _WKPreviewAction *action = [self actionWithTitle:title style:style handler:handler];
+    WKPreviewAction *action = [self actionWithTitle:title style:style handler:handler];
     action->_identifier = identifier;
     return action;
 }
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h
similarity index 77%
rename from Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h
index 4975079..ace0d9e 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h
@@ -29,11 +29,10 @@
 #if WK_API_ENABLED
 
 #import <Foundation/Foundation.h>
-#import <WebKit/WKDeclarationSpecifiers.h>
 
-WK_EXPORT extern NSString * const _WKPreviewIdentifierOpen WK_AVAILABLE(NA, WK_IOS_TBA);
-WK_EXPORT extern NSString * const _WKPreviewIdentifierAddToReadingList WK_AVAILABLE(NA, WK_IOS_TBA);
-WK_EXPORT extern NSString * const _WKPreviewIdentifierCopy WK_AVAILABLE(NA, WK_IOS_TBA);
-WK_EXPORT extern NSString * const _WKPreviewIdentifierShare WK_AVAILABLE(NA, WK_IOS_TBA);
+WK_EXTERN NSString * const WKPreviewActionItemIdentifierOpen WK_AVAILABLE(NA, WK_IOS_TBA);
+WK_EXTERN NSString * const WKPreviewActionItemIdentifierAddToReadingList WK_AVAILABLE(NA, WK_IOS_TBA);
+WK_EXTERN NSString * const WKPreviewActionItemIdentifierCopy WK_AVAILABLE(NA, WK_IOS_TBA);
+WK_EXTERN NSString * const WKPreviewActionItemIdentifierShare WK_AVAILABLE(NA, WK_IOS_TBA);
 
 #endif
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm
similarity index 76%
rename from Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm
index 54a82ed..43b4090 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionIdentifiersPrivate.mm
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm
@@ -24,13 +24,13 @@
  */
 
 #include "config.h"
-#include "WKPreviewActionIdentifiersPrivate.h"
+#include "WKPreviewActionItemIdentifiers.h"
 
 #if WK_API_ENABLED
 
-NSString * const _WKPreviewIdentifierOpen = @"WKPreviewIdentifierOpen";
-NSString * const _WKPreviewIdentifierAddToReadingList = @"WKPreviewIdentifierAddToReadingList";
-NSString * const _WKPreviewIdentifierCopy = @"WKPreviewIdentifierCopy";
-NSString * const _WKPreviewIdentifierShare = @"WKPreviewIdentifierShare";
+NSString * const WKPreviewActionItemIdentifierOpen = @"WKPreviewActionItemIdentifierOpen";
+NSString * const WKPreviewActionItemIdentifierAddToReadingList = @"WKPreviewActionItemIdentifierAddToReadingList";
+NSString * const WKPreviewActionItemIdentifierCopy = @"WKPreviewActionItemIdentifierCopy";
+NSString * const WKPreviewActionItemIdentifierShare = @"WKPreviewActionItemIdentifierShare";
 
 #endif
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewActionInternal.h b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemInternal.h
similarity index 91%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewActionInternal.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemInternal.h
index 1579729..6cb3082 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewActionInternal.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemInternal.h
@@ -27,12 +27,12 @@
 
 #if WK_API_ENABLED && TARGET_OS_IPHONE
 
-#import "_WKPreviewAction.h"
+#import "WKPreviewActionItem.h"
 
-@interface _WKPreviewAction : UIPreviewAction <NSCopying, _WKPreviewActionItem>
+@interface WKPreviewAction : UIPreviewAction <NSCopying, WKPreviewActionItem>
 
 + (instancetype)actionWithIdentifier:(NSString *)identifier title:(NSString *)title style:(UIPreviewActionStyle)style handler:(void (^)(UIPreviewAction *action, UIViewController *previewViewController))handler;
 
 @end
 
-#endif // WK_API_ENABLED && TARGET_OS_IPHONE
+#endif
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.h b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.h
similarity index 94%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.h
index 9368dd2..9b64222 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.h
@@ -27,12 +27,12 @@
 
 #if WK_API_ENABLED && TARGET_OS_IPHONE
 
-#import <WebKit/_WKElementInfo.h>
+#import <WebKit/WKElementInfo.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
 WK_CLASS_AVAILABLE(NA, WK_IOS_TBA)
-@interface _WKPreviewElementInfo : _WKElementInfo
+@interface WKPreviewElementInfo : WKElementInfo
 
 @end
 
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.mm b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm
similarity index 93%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.mm
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm
index ec9dd6c..c8b179b 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.mm
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm
@@ -24,14 +24,14 @@
  */
 
 #import "config.h"
-#import "_WKPreviewElementInfoInternal.h"
+#import "WKPreviewElementInfoInternal.h"
 
-#import "_WKElementInfoInternal.h"
+#import "WKElementInfoInternal.h"
 #import <wtf/RetainPtr.h>
 
 #if WK_API_ENABLED && PLATFORM(IOS)
 
-@implementation _WKPreviewElementInfo
+@implementation WKPreviewElementInfo
 
 - (instancetype)_initWithLinkURL:(NSURL *)url
 {
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h
similarity index 92%
rename from Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h
rename to Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h
index aed0d42..c787e14 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h
@@ -23,14 +23,14 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#import "_WKPreviewElementInfo.h"
+#import "WKPreviewElementInfo.h"
 
 #if WK_API_ENABLED && TARGET_OS_IPHONE
 
-@interface _WKPreviewElementInfo ()
+@interface WKPreviewElementInfo ()
 
 - (instancetype)_initWithLinkURL:(NSURL *)url;
 
 @end
 
-#endif // WK_API_ENABLED
+#endif // WK_API_ENABLED && TARGET_OS_IPHONE
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h b/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h
index 16f441f..d9d8621 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h
@@ -28,11 +28,13 @@
 #if WK_API_ENABLED
 
 #import <Foundation/Foundation.h>
+#import <WebKit/WKPreviewActionItem.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
 @class WKFrameInfo;
 @class WKNavigationAction;
+@class WKPreviewElementInfo;
 @class WKWebViewConfiguration;
 @class WKWindowFeatures;
 
@@ -114,6 +116,43 @@
  */
 - (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(nullable NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * WK_NULLABLE_SPECIFIER result))completionHandler;
 
+#if TARGET_OS_IPHONE
+
+/*! @abstract Allows your app to determine whether or not the given element should show a preview.
+ @param webView The web view invoking the delegate method.
+ @param elementInfo The elementInfo for the element the user has started touching.
+ @discussion To disable previews entirely for the given element, return NO. Returning NO will prevent 
+ webView:previewingViewControllerForElement:defaultActions: and webView:commitPreviewingViewController:
+ from being invoked.
+ 
+ This method will only be invoked for elements that have default preview in WebKit, which is
+ limited to links. In the future, it could be invoked for additional elements.
+ */
+- (BOOL)webView:(WKWebView *)webView shouldPreviewElement:(WKPreviewElementInfo *)elementInfo WK_AVAILABLE(NA, WK_IOS_TBA);
+
+/*! @abstract Allows your app to provide a custom view controller to show when the given element is peeked.
+ @param webView The web view invoking the delegate method.
+ @param elementInfo The elementInfo for the element the user is peeking.
+ @param defaultActions An array of the actions that WebKit would use as previewActionItems for this element by 
+ default. These actions would be used if allowsLinkPreview is YES but these delegate methods have not been 
+ implemented, or if this delegate method returns nil.
+ @discussion Returning a view controller will result in that view controller being displayed as a peek preview.
+ To use the defaultActions, your app is responsible for returning whichever of those actions it wants in your 
+ view controller's implementation of -previewActionItems.
+ 
+ Returning nil will result in WebKit's default preview behavior. webView:commitPreviewingViewController: will only be invoked
+ if a non-nil view controller was returned.
+ */
+- (nullable UIViewController *)webView:(WKWebView *)webView previewingViewControllerForElement:(WKPreviewElementInfo *)elementInfo defaultActions:(NSArray <id <WKPreviewActionItem>> *)previewActions WK_AVAILABLE(NA, WK_IOS_TBA);
+
+/*! @abstract Allows your app to pop to the view controller it created.
+ @param webView The web view invoking the delegate method.
+ @param previewingViewController The view controller that is being popped.
+ */
+- (void)webView:(WKWebView *)webView commitPreviewingViewController:(UIViewController *)previewingViewController WK_AVAILABLE(NA, WK_IOS_TBA);
+
+#endif // TARGET_OS_IPHONE
+
 @end
 
 NS_ASSUME_NONNULL_END
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h b/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
index 71df084..7ce1bd1 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
@@ -29,7 +29,6 @@
 
 #import <WebKit/WKSecurityOrigin.h>
 #import <WebKit/_WKActivatedElementInfo.h>
-#import <WebKit/_WKPreviewAction.h>
 
 @class UIScrollView;
 @class UIViewController;
@@ -37,7 +36,6 @@
 @class _WKActivatedElementInfo;
 @class _WKElementAction;
 @class _WKFrameHandle;
-@class _WKPreviewElementInfo;
 
 @protocol WKUIDelegatePrivate <WKUIDelegate>
 
@@ -78,17 +76,6 @@
 - (UIEdgeInsets)_webView:(WKWebView *)webView finalObscuredInsetsForScrollView:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset WK_AVAILABLE(NA, 9_0);
 - (UIViewController *)_webView:(WKWebView *)webView previewViewControllerForURL:(NSURL *)url defaultActions:(WK_ARRAY(_WKElementAction *) *)actions elementInfo:(_WKActivatedElementInfo *)elementInfo WK_AVAILABLE(NA, 9_0);
 - (UIViewController *)_webView:(WKWebView *)webView previewViewControllerForAnimatedImageAtURL:(NSURL *)url defaultActions:(WK_ARRAY(_WKElementAction *) *)actions elementInfo:(_WKActivatedElementInfo *)elementInfo imageSize:(CGSize)imageSize WK_AVAILABLE(NA, 9_0);
-
-// If a client wants to disable previews entirely for the given element, they should return NO in
-// shouldPreviewElement. Returning NO in shouldPreviewElement will prevent the other methods from being invoked.
-// The client can provide a custom preview by returning their own UIViewController from
-// previewingViewControllerForElement:defaultActions:. Returning nil will result in the default preview behavior
-// for that element. If the client want to use the defaultActions, then the client is responsible for
-// returning those actions in their UIViewController's implementation of previewActionItems.
-- (BOOL)_webView:(WKWebView *)webView shouldPreviewElement:(_WKPreviewElementInfo *)elementInfo;
-- (UIViewController *)_webView:(WKWebView *)webView previewingViewControllerForElement:(_WKPreviewElementInfo *)elementInfo defaultActions:(NSArray <id <_WKPreviewActionItem>> *)previewActions WK_AVAILABLE(NA, WK_IOS_TBA);
-- (void)_webView:(WKWebView *)webView commitPreviewingViewController:(UIViewController *)previewingViewController WK_AVAILABLE(NA, WK_IOS_TBA);
-
 - (UIViewController *)_presentingViewControllerForWebView:(WKWebView *)webView WK_AVAILABLE(NA, WK_IOS_TBA);
 #else
 - (NSMenu *)_webView:(WKWebView *)webView contextMenu:(NSMenu *)menu forElement:(_WKContextMenuElementInfo *)element WK_AVAILABLE(WK_MAC_TBA, NA);
diff --git a/Source/WebKit2/UIProcess/API/Cocoa/_WKContextMenuElementInfo.h b/Source/WebKit2/UIProcess/API/Cocoa/_WKContextMenuElementInfo.h
index 57e2b35..247c157 100644
--- a/Source/WebKit2/UIProcess/API/Cocoa/_WKContextMenuElementInfo.h
+++ b/Source/WebKit2/UIProcess/API/Cocoa/_WKContextMenuElementInfo.h
@@ -27,12 +27,12 @@
 
 #if WK_API_ENABLED && !TARGET_OS_IPHONE
 
-#import <WebKit/_WKElementInfo.h>
+#import <WebKit/WKElementInfo.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
 WK_CLASS_AVAILABLE(WK_MAC_TBA, NA)
-@interface _WKContextMenuElementInfo : _WKElementInfo
+@interface _WKContextMenuElementInfo : WKElementInfo
 
 @end
 
diff --git a/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm b/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm
index 45a3cda..28a6522 100644
--- a/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm
+++ b/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm
@@ -43,7 +43,9 @@
 #import "WKImagePreviewViewController.h"
 #import "WKInspectorNodeSearchGestureRecognizer.h"
 #import "WKNSURLExtras.h"
-#import "WKPreviewActionIdentifiersPrivate.h"
+#import "WKPreviewActionItemIdentifiers.h"
+#import "WKPreviewActionItemInternal.h"
+#import "WKPreviewElementInfoInternal.h"
 #import "WKUIDelegatePrivate.h"
 #import "WKWebViewConfiguration.h"
 #import "WKWebViewInternal.h"
@@ -57,8 +59,6 @@
 #import "_WKFocusedElementInfo.h"
 #import "_WKFormInputSession.h"
 #import "_WKInputDelegate.h"
-#import "_WKPreviewActionInternal.h"
-#import "_WKPreviewElementInfoInternal.h"
 #import <CoreText/CTFont.h>
 #import <CoreText/CTFontDescriptor.h>
 #import <MobileCoreServices/UTCoreTypes.h>
@@ -3804,9 +3804,9 @@
     if (_positionInformation.isLink) {
         NSURL *targetURL = [NSURL _web_URLWithWTFString:_positionInformation.url];
         id <WKUIDelegatePrivate> uiDelegate = static_cast<id <WKUIDelegatePrivate>>([_webView UIDelegate]);
-        if ([uiDelegate respondsToSelector:@selector(_webView:shouldPreviewElement:)]) {
-            auto previewElementInfo = adoptNS([[_WKPreviewElementInfo alloc] _initWithLinkURL:targetURL]);
-            return [uiDelegate _webView:_webView shouldPreviewElement:previewElementInfo.get()];
+        if ([uiDelegate respondsToSelector:@selector(webView:shouldPreviewElement:)]) {
+            auto previewElementInfo = adoptNS([[WKPreviewElementInfo alloc] _initWithLinkURL:targetURL]);
+            return [uiDelegate webView:_webView shouldPreviewElement:previewElementInfo.get()];
         }
         if (absoluteLinkURL.isEmpty())
             return NO;
@@ -3904,15 +3904,15 @@
 {
     switch (action.type) {
     case _WKElementActionTypeOpen:
-        return _WKPreviewIdentifierOpen;
+        return WKPreviewActionItemIdentifierOpen;
     case _WKElementActionTypeCopy:
-        return _WKPreviewIdentifierCopy;
+        return WKPreviewActionItemIdentifierCopy;
 #if !defined(TARGET_OS_IOS) || TARGET_OS_IOS
     case _WKElementActionTypeAddToReadingList:
-        return _WKPreviewIdentifierAddToReadingList;
+        return WKPreviewActionItemIdentifierAddToReadingList;
 #endif
     case _WKElementActionTypeShare:
-        return _WKPreviewIdentifierShare;
+        return WKPreviewActionItemIdentifierShare;
     default:
         return nil;
     }
@@ -3945,16 +3945,16 @@
         RetainPtr<_WKActivatedElementInfo> elementInfo = adoptNS([[_WKActivatedElementInfo alloc] _initWithType:_WKActivatedElementTypeLink URL:targetURL location:_positionInformation.point title:_positionInformation.title rect:_positionInformation.bounds image:_positionInformation.image.get()]);
 
         auto actions = [_actionSheetAssistant defaultActionsForLinkSheet:elementInfo.get()];
-        if ([uiDelegate respondsToSelector:@selector(_webView:previewingViewControllerForElement:defaultActions:)]) {
+        if ([uiDelegate respondsToSelector:@selector(webView:previewingViewControllerForElement:defaultActions:)]) {
             auto previewActions = adoptNS([[NSMutableArray alloc] init]);
             for (_WKElementAction *elementAction in actions.get()) {
-                _WKPreviewAction *previewAction = [_WKPreviewAction actionWithIdentifier:previewIdentifierForElementAction(elementAction) title:[elementAction title] style:UIPreviewActionStyleDefault handler:^(UIPreviewAction *, UIViewController *) {
+                WKPreviewAction *previewAction = [WKPreviewAction actionWithIdentifier:previewIdentifierForElementAction(elementAction) title:[elementAction title] style:UIPreviewActionStyleDefault handler:^(UIPreviewAction *, UIViewController *) {
                     [elementAction runActionWithElementInfo:elementInfo.get()];
                 }];
                 [previewActions addObject:previewAction];
             }
-            auto previewElementInfo = adoptNS([[_WKPreviewElementInfo alloc] _initWithLinkURL:targetURL]);
-            if (UIViewController *controller = [uiDelegate _webView:_webView previewingViewControllerForElement:previewElementInfo.get() defaultActions:previewActions.get()]) {
+            auto previewElementInfo = adoptNS([[WKPreviewElementInfo alloc] _initWithLinkURL:targetURL]);
+            if (UIViewController *controller = [uiDelegate webView:_webView previewingViewControllerForElement:previewElementInfo.get() defaultActions:previewActions.get()]) {
                 _uiDelegateProvidedPreviewingViewController = YES;
                 return controller;
             }
@@ -3997,8 +3997,8 @@
         return;
     }
 
-    if ([uiDelegate respondsToSelector:@selector(_webView:commitPreviewingViewController:)]) {
-        [uiDelegate _webView:_webView commitPreviewingViewController:viewController];
+    if ([uiDelegate respondsToSelector:@selector(webView:commitPreviewingViewController:)]) {
+        [uiDelegate webView:_webView commitPreviewingViewController:viewController];
         return;
     }
 
diff --git a/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj b/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 21e4bd5..48b1b49 100644
--- a/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -255,8 +255,8 @@
 		1A53C2A21A323004004E8C70 /* InjectedBundleCSSStyleDeclarationHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4ED3261A3119D90079BD49 /* InjectedBundleCSSStyleDeclarationHandle.cpp */; };
 		1A53C2A91A32572B004E8C70 /* WebsiteDataStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A53C2A41A32569F004E8C70 /* WebsiteDataStore.cpp */; };
 		1A53C2AA1A325730004E8C70 /* WebsiteDataStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A53C2A51A32569F004E8C70 /* WebsiteDataStore.h */; };
-		1A5704F11BE0173F00874AF1 /* _WKElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A5704EF1BE0173F00874AF1 /* _WKElementInfo.mm */; };
-		1A5704F21BE0174000874AF1 /* _WKElementInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A5704F01BE0173F00874AF1 /* _WKElementInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		1A5704F11BE0173F00874AF1 /* WKElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A5704EF1BE0173F00874AF1 /* WKElementInfo.mm */; };
+		1A5704F21BE0174000874AF1 /* WKElementInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A5704F01BE0173F00874AF1 /* WKElementInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		1A5704F71BE01FF400874AF1 /* _WKContextMenuElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A5704F51BE01FF400874AF1 /* _WKContextMenuElementInfo.mm */; };
 		1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A5704F61BE01FF400874AF1 /* _WKContextMenuElementInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		1A5704FB1BE1751100874AF1 /* RemoteObjectInvocation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A5704F91BE1751100874AF1 /* RemoteObjectInvocation.mm */; };
@@ -1194,19 +1194,19 @@
 		935EEBA2127761D0003322B8 /* InjectedBundleBackForwardList.h in Headers */ = {isa = PBXBuildFile; fileRef = 935EEB901277615D003322B8 /* InjectedBundleBackForwardList.h */; };
 		935EEBA3127761D3003322B8 /* InjectedBundleBackForwardListItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 935EEB911277615D003322B8 /* InjectedBundleBackForwardListItem.cpp */; };
 		935EEBA4127761D6003322B8 /* InjectedBundleBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 935EEB921277615D003322B8 /* InjectedBundleBackForwardListItem.h */; };
-		93735EBB1C92986300336FA7 /* _WKPreviewActionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 93735EBA1C92986300336FA7 /* _WKPreviewActionInternal.h */; };
-		9391074F1BF6BC65008C17AD /* _WKPreviewElementInfoInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9391074E1BF6BC65008C17AD /* _WKPreviewElementInfoInternal.h */; };
+		93735EBB1C92986300336FA7 /* WKPreviewActionItemInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 93735EBA1C92986300336FA7 /* WKPreviewActionItemInternal.h */; };
+		9391074F1BF6BC65008C17AD /* WKPreviewElementInfoInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9391074E1BF6BC65008C17AD /* WKPreviewElementInfoInternal.h */; };
 		9391F2CA121B679A00EBF7E8 /* WebFrameNetworkingContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */; };
 		9391F2CB121B67AD00EBF7E8 /* WebFrameNetworkingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */; };
-		9395E68A1BF2C33200F49BCE /* _WKPreviewElementInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9395E6891BF2C33200F49BCE /* _WKPreviewElementInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		9395E68C1BF2C35200F49BCE /* _WKPreviewElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9395E68B1BF2C35200F49BCE /* _WKPreviewElementInfo.mm */; };
-		9395E68E1BF410FD00F49BCE /* _WKElementInfoInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9395E68D1BF410FD00F49BCE /* _WKElementInfoInternal.h */; };
+		9395E68A1BF2C33200F49BCE /* WKPreviewElementInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9395E6891BF2C33200F49BCE /* WKPreviewElementInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		9395E68C1BF2C35200F49BCE /* WKPreviewElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9395E68B1BF2C35200F49BCE /* WKPreviewElementInfo.mm */; };
+		9395E68E1BF410FD00F49BCE /* WKElementInfoInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9395E68D1BF410FD00F49BCE /* WKElementInfoInternal.h */; };
 		939AE7661316E99C00AE06A6 /* WebCoreArgumentCoders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 939AE7651316E99C00AE06A6 /* WebCoreArgumentCoders.cpp */; };
 		939F401C19FB0BBC002B2B42 /* WKActionMenuTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 939F401B19FB0BBC002B2B42 /* WKActionMenuTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		93A253ED1C922E1E00F9F68D /* _WKPreviewAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A253EC1C922E1E00F9F68D /* _WKPreviewAction.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		93A253EF1C922E8E00F9F68D /* _WKPreviewAction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93A253EE1C922E8E00F9F68D /* _WKPreviewAction.mm */; };
-		93A253F31C92411200F9F68D /* WKPreviewActionIdentifiersPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A253F21C92411200F9F68D /* WKPreviewActionIdentifiersPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		93A253F51C92413200F9F68D /* WKPreviewActionIdentifiersPrivate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93A253F41C92413200F9F68D /* WKPreviewActionIdentifiersPrivate.mm */; };
+		93A253ED1C922E1E00F9F68D /* WKPreviewActionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A253EC1C922E1E00F9F68D /* WKPreviewActionItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		93A253EF1C922E8E00F9F68D /* WKPreviewActionItem.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93A253EE1C922E8E00F9F68D /* WKPreviewActionItem.mm */; };
+		93A253F31C92411200F9F68D /* WKPreviewActionItemIdentifiers.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A253F21C92411200F9F68D /* WKPreviewActionItemIdentifiers.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		93A253F51C92413200F9F68D /* WKPreviewActionItemIdentifiers.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93A253F41C92413200F9F68D /* WKPreviewActionItemIdentifiers.mm */; };
 		93A88B301BC6E99700ABA5C2 /* WebHitTestResultData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93A88B2E1BC6E98F00ABA5C2 /* WebHitTestResultData.mm */; };
 		93A88B331BC6E9CD00ABA5C2 /* WebHitTestResultData.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A88B311BC6E9C000ABA5C2 /* WebHitTestResultData.h */; };
 		93A88B361BC6EAD500ABA5C2 /* WebHitTestResultData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93A88B341BC6EABA00ABA5C2 /* WebHitTestResultData.cpp */; };
@@ -2186,8 +2186,8 @@
 		1A52C0F61A38CDC70016160A /* WebStorageNamespaceProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageNamespaceProvider.h; sourceTree = "<group>"; };
 		1A53C2A41A32569F004E8C70 /* WebsiteDataStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsiteDataStore.cpp; sourceTree = "<group>"; };
 		1A53C2A51A32569F004E8C70 /* WebsiteDataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsiteDataStore.h; sourceTree = "<group>"; };
-		1A5704EF1BE0173F00874AF1 /* _WKElementInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKElementInfo.mm; sourceTree = "<group>"; };
-		1A5704F01BE0173F00874AF1 /* _WKElementInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKElementInfo.h; sourceTree = "<group>"; };
+		1A5704EF1BE0173F00874AF1 /* WKElementInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKElementInfo.mm; sourceTree = "<group>"; };
+		1A5704F01BE0173F00874AF1 /* WKElementInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKElementInfo.h; sourceTree = "<group>"; };
 		1A5704F51BE01FF400874AF1 /* _WKContextMenuElementInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKContextMenuElementInfo.mm; sourceTree = "<group>"; };
 		1A5704F61BE01FF400874AF1 /* _WKContextMenuElementInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKContextMenuElementInfo.h; sourceTree = "<group>"; };
 		1A5704F91BE1751100874AF1 /* RemoteObjectInvocation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RemoteObjectInvocation.mm; sourceTree = "<group>"; };
@@ -3215,19 +3215,19 @@
 		935EEB961277616D003322B8 /* WKBundleBackForwardList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardList.h; sourceTree = "<group>"; };
 		935EEB971277616D003322B8 /* WKBundleBackForwardListItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundleBackForwardListItem.cpp; sourceTree = "<group>"; };
 		935EEB981277616D003322B8 /* WKBundleBackForwardListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardListItem.h; sourceTree = "<group>"; };
-		93735EBA1C92986300336FA7 /* _WKPreviewActionInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKPreviewActionInternal.h; sourceTree = "<group>"; };
-		9391074E1BF6BC65008C17AD /* _WKPreviewElementInfoInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKPreviewElementInfoInternal.h; sourceTree = "<group>"; };
+		93735EBA1C92986300336FA7 /* WKPreviewActionItemInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreviewActionItemInternal.h; sourceTree = "<group>"; };
+		9391074E1BF6BC65008C17AD /* WKPreviewElementInfoInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreviewElementInfoInternal.h; sourceTree = "<group>"; };
 		9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameNetworkingContext.h; sourceTree = "<group>"; };
 		9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebFrameNetworkingContext.mm; sourceTree = "<group>"; };
-		9395E6891BF2C33200F49BCE /* _WKPreviewElementInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKPreviewElementInfo.h; sourceTree = "<group>"; };
-		9395E68B1BF2C35200F49BCE /* _WKPreviewElementInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKPreviewElementInfo.mm; sourceTree = "<group>"; };
-		9395E68D1BF410FD00F49BCE /* _WKElementInfoInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKElementInfoInternal.h; sourceTree = "<group>"; };
+		9395E6891BF2C33200F49BCE /* WKPreviewElementInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreviewElementInfo.h; sourceTree = "<group>"; };
+		9395E68B1BF2C35200F49BCE /* WKPreviewElementInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPreviewElementInfo.mm; sourceTree = "<group>"; };
+		9395E68D1BF410FD00F49BCE /* WKElementInfoInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKElementInfoInternal.h; sourceTree = "<group>"; };
 		939AE7651316E99C00AE06A6 /* WebCoreArgumentCoders.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreArgumentCoders.cpp; sourceTree = "<group>"; };
 		939F401B19FB0BBC002B2B42 /* WKActionMenuTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKActionMenuTypes.h; sourceTree = "<group>"; };
-		93A253EC1C922E1E00F9F68D /* _WKPreviewAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKPreviewAction.h; sourceTree = "<group>"; };
-		93A253EE1C922E8E00F9F68D /* _WKPreviewAction.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKPreviewAction.mm; sourceTree = "<group>"; };
-		93A253F21C92411200F9F68D /* WKPreviewActionIdentifiersPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreviewActionIdentifiersPrivate.h; sourceTree = "<group>"; };
-		93A253F41C92413200F9F68D /* WKPreviewActionIdentifiersPrivate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPreviewActionIdentifiersPrivate.mm; sourceTree = "<group>"; };
+		93A253EC1C922E1E00F9F68D /* WKPreviewActionItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreviewActionItem.h; sourceTree = "<group>"; };
+		93A253EE1C922E8E00F9F68D /* WKPreviewActionItem.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPreviewActionItem.mm; sourceTree = "<group>"; };
+		93A253F21C92411200F9F68D /* WKPreviewActionItemIdentifiers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreviewActionItemIdentifiers.h; sourceTree = "<group>"; };
+		93A253F41C92413200F9F68D /* WKPreviewActionItemIdentifiers.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPreviewActionItemIdentifiers.mm; sourceTree = "<group>"; };
 		93A88B2E1BC6E98F00ABA5C2 /* WebHitTestResultData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebHitTestResultData.mm; sourceTree = "<group>"; };
 		93A88B311BC6E9C000ABA5C2 /* WebHitTestResultData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebHitTestResultData.h; sourceTree = "<group>"; };
 		93A88B341BC6EABA00ABA5C2 /* WebHitTestResultData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebHitTestResultData.cpp; sourceTree = "<group>"; };
@@ -4967,9 +4967,6 @@
 				379A873818BBFE0F00588AF2 /* _WKElementAction.h */,
 				379A873718BBFE0F00588AF2 /* _WKElementAction.mm */,
 				379A873B18BBFF0700588AF2 /* _WKElementActionInternal.h */,
-				1A5704F01BE0173F00874AF1 /* _WKElementInfo.h */,
-				1A5704EF1BE0173F00874AF1 /* _WKElementInfo.mm */,
-				9395E68D1BF410FD00F49BCE /* _WKElementInfoInternal.h */,
 				1AD01BC71905D37E00C9C45F /* _WKErrorRecoveryAttempting.h */,
 				1AD01BC61905D37E00C9C45F /* _WKErrorRecoveryAttempting.mm */,
 				005D158E18E4C4EB00734619 /* _WKFindDelegate.h */,
@@ -4980,12 +4977,6 @@
 				37A64E5418F38E3C00EB30F1 /* _WKInputDelegate.h */,
 				2D790A9C1AD7050D00AB90B3 /* _WKLayoutMode.h */,
 				9323611D1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h */,
-				93A253EC1C922E1E00F9F68D /* _WKPreviewAction.h */,
-				93A253EE1C922E8E00F9F68D /* _WKPreviewAction.mm */,
-				93735EBA1C92986300336FA7 /* _WKPreviewActionInternal.h */,
-				9395E6891BF2C33200F49BCE /* _WKPreviewElementInfo.h */,
-				9395E68B1BF2C35200F49BCE /* _WKPreviewElementInfo.mm */,
-				9391074E1BF6BC65008C17AD /* _WKPreviewElementInfoInternal.h */,
 				1A43E828188F3CDC009E4D30 /* _WKProcessPoolConfiguration.h */,
 				1A43E827188F3CDC009E4D30 /* _WKProcessPoolConfiguration.mm */,
 				7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */,
@@ -5025,6 +5016,9 @@
 				37C4C08418149C5B003688B9 /* WKBackForwardListItem.mm */,
 				37C4C08818149F23003688B9 /* WKBackForwardListItemInternal.h */,
 				1A9F28101958F478008CAC72 /* WKBackForwardListPrivate.h */,
+				1A5704F01BE0173F00874AF1 /* WKElementInfo.h */,
+				1A5704EF1BE0173F00874AF1 /* WKElementInfo.mm */,
+				9395E68D1BF410FD00F49BCE /* WKElementInfoInternal.h */,
 				1AF4592D19464B2000F9D4A2 /* WKError.h */,
 				1AF4592C19464B2000F9D4A2 /* WKError.mm */,
 				1A2D252A194688FD004537B0 /* WKErrorInternal.h */,
@@ -5054,8 +5048,14 @@
 				1AFDD3181891CA1200153970 /* WKPreferences.mm */,
 				1A3C887F18A5ABAE00C4C962 /* WKPreferencesInternal.h */,
 				7C8EB11618DB6A19007917C2 /* WKPreferencesPrivate.h */,
-				93A253F21C92411200F9F68D /* WKPreviewActionIdentifiersPrivate.h */,
-				93A253F41C92413200F9F68D /* WKPreviewActionIdentifiersPrivate.mm */,
+				93A253EC1C922E1E00F9F68D /* WKPreviewActionItem.h */,
+				93A253EE1C922E8E00F9F68D /* WKPreviewActionItem.mm */,
+				93735EBA1C92986300336FA7 /* WKPreviewActionItemInternal.h */,
+				93A253F21C92411200F9F68D /* WKPreviewActionItemIdentifiers.h */,
+				93A253F41C92413200F9F68D /* WKPreviewActionItemIdentifiers.mm */,
+				9395E6891BF2C33200F49BCE /* WKPreviewElementInfo.h */,
+				9395E68B1BF2C35200F49BCE /* WKPreviewElementInfo.mm */,
+				9391074E1BF6BC65008C17AD /* WKPreviewElementInfoInternal.h */,
 				1A158418189044F50017616C /* WKProcessPool.h */,
 				1A158417189044F50017616C /* WKProcessPool.mm */,
 				1A3CC16818907EB0001E6ED8 /* WKProcessPoolInternal.h */,
@@ -7145,7 +7145,7 @@
 				379A873A18BBFE0F00588AF2 /* _WKElementAction.h in Headers */,
 				379A873C18BBFF0700588AF2 /* _WKElementActionInternal.h in Headers */,
 				990D28BB1C6539D300986977 /* AutomationSessionClient.h in Headers */,
-				1A5704F21BE0174000874AF1 /* _WKElementInfo.h in Headers */,
+				1A5704F21BE0174000874AF1 /* WKElementInfo.h in Headers */,
 				1AD01BC91905D37E00C9C45F /* _WKErrorRecoveryAttempting.h in Headers */,
 				005D158F18E4C4EB00734619 /* _WKFindDelegate.h in Headers */,
 				07A5EBBC1C7BA43E00B9CA69 /* WKFrameHandleRef.h in Headers */,
@@ -7204,7 +7204,7 @@
 				7C1BA33E1A4A0E600043E249 /* APIDictionary.h in Headers */,
 				1F7D36C118DA513F00D9D659 /* APIDownloadClient.h in Headers */,
 				516A4A5D120A2CCD00C05B7F /* APIError.h in Headers */,
-				9395E68E1BF410FD00F49BCE /* _WKElementInfoInternal.h in Headers */,
+				9395E68E1BF410FD00F49BCE /* WKElementInfoInternal.h in Headers */,
 				00B9661618E24CBA00CE1F88 /* APIFindClient.h in Headers */,
 				2DD67A2E1BD819730053B251 /* APIFindMatchesClient.h in Headers */,
 				37E25D6E18FDE5D6005D3A00 /* APIFormClient.h in Headers */,
@@ -7373,14 +7373,14 @@
 				1ABC3DF61899E437004F0626 /* NavigationState.h in Headers */,
 				1A6FBA2A11E6862700DB1371 /* NetscapeBrowserFuncs.h in Headers */,
 				990D28AB1C6420C600986977 /* _WKAutomationSession.h in Headers */,
-				93735EBB1C92986300336FA7 /* _WKPreviewActionInternal.h in Headers */,
+				93735EBB1C92986300336FA7 /* WKPreviewActionItemInternal.h in Headers */,
 				1AE286801C7F92C00069AC4F /* _WKWebsiteDataSizeInternal.h in Headers */,
 				1A6FBD2811E69BC200DB1371 /* NetscapePlugin.h in Headers */,
 				1A4A9C5612B816CF008FE984 /* NetscapePluginModule.h in Headers */,
 				1AA5889211EE70400061B882 /* NetscapePluginStream.h in Headers */,
 				E1798C7A16E6818800240139 /* NetworkBlobRegistry.h in Headers */,
 				E4436ECC1A0D040B00EAD204 /* NetworkCache.h in Headers */,
-				9395E68A1BF2C33200F49BCE /* _WKPreviewElementInfo.h in Headers */,
+				9395E68A1BF2C33200F49BCE /* WKPreviewElementInfo.h in Headers */,
 				E49D40D71AD3FB170066B7B9 /* NetworkCacheBlobStorage.h in Headers */,
 				E489D28A1A0A2DB80078C06A /* NetworkCacheCoder.h in Headers */,
 				E489D28C1A0A2DB80078C06A /* NetworkCacheCoders.h in Headers */,
@@ -7407,7 +7407,7 @@
 				5163199516289A6300E22F00 /* NetworkProcessMessages.h in Headers */,
 				E14A954A16E016A40068DE82 /* NetworkProcessPlatformStrategies.h in Headers */,
 				5179556E162877B300FA43B6 /* NetworkProcessProxy.h in Headers */,
-				93A253ED1C922E1E00F9F68D /* _WKPreviewAction.h in Headers */,
+				93A253ED1C922E1E00F9F68D /* WKPreviewActionItem.h in Headers */,
 				513A163D163088F6005D7D22 /* NetworkProcessProxyMessages.h in Headers */,
 				9955A6F51C7986E000EB6A93 /* InspectorBackendDispatchers.h in Headers */,
 				51FD18B61651FBAD00DBE1CE /* NetworkResourceLoader.h in Headers */,
@@ -7726,7 +7726,7 @@
 				939F401C19FB0BBC002B2B42 /* WKActionMenuTypes.h in Headers */,
 				0FCB4E4818BBE044000FCFC9 /* WKActionSheet.h in Headers */,
 				0FCB4E4A18BBE044000FCFC9 /* WKActionSheetAssistant.h in Headers */,
-				9391074F1BF6BC65008C17AD /* _WKPreviewElementInfoInternal.h in Headers */,
+				9391074F1BF6BC65008C17AD /* WKPreviewElementInfoInternal.h in Headers */,
 				C5FA1ED318E1062200B3F402 /* WKAirPlayRoutePicker.h in Headers */,
 				BCDDB32D124EC2E10048D13C /* WKAPICast.h in Headers */,
 				512E34E5130B4D0500ABD19A /* WKApplicationCacheManager.h in Headers */,
@@ -8034,7 +8034,7 @@
 				75A8D2C8187CCFAB00C39C9E /* WKWebsiteDataStore.h in Headers */,
 				75A8D2D6187D1C0E00C39C9E /* WKWebsiteDataStoreInternal.h in Headers */,
 				1A57109F1ABA0027002FABBE /* WKWebsiteDataStoreRef.h in Headers */,
-				93A253F31C92411200F9F68D /* WKPreviewActionIdentifiersPrivate.h in Headers */,
+				93A253F31C92411200F9F68D /* WKPreviewActionItemIdentifiers.h in Headers */,
 				1A3CC16718906ACF001E6ED8 /* WKWebView.h in Headers */,
 				1ADF591B1890528E0043C145 /* WKWebViewConfiguration.h in Headers */,
 				2D7AAFD618C956AF00A7ACD4 /* WKWebViewConfigurationInternal.h in Headers */,
@@ -8638,7 +8638,7 @@
 				9955A6F41C7986DC00EB6A93 /* InspectorBackendDispatchers.cpp in Sources */,
 				A1A4FE5B18DCE9FA00B5EA8A /* _WKDownload.mm in Sources */,
 				379A873918BBFE0F00588AF2 /* _WKElementAction.mm in Sources */,
-				1A5704F11BE0173F00874AF1 /* _WKElementInfo.mm in Sources */,
+				1A5704F11BE0173F00874AF1 /* WKElementInfo.mm in Sources */,
 				1AD01BC81905D37E00C9C45F /* _WKErrorRecoveryAttempting.mm in Sources */,
 				373D122218A473010066D9CC /* _WKFrameHandle.mm in Sources */,
 				93A88B391BC70F3F00ABA5C2 /* _WKHitTestResult.mm in Sources */,
@@ -8828,7 +8828,7 @@
 				E489D28B1A0A2DB80078C06A /* NetworkCacheCoders.cpp in Sources */,
 				E47D1E981B0649FB002676A8 /* NetworkCacheData.cpp in Sources */,
 				E42E06141AA75B7000B11699 /* NetworkCacheDataCocoa.mm in Sources */,
-				93A253F51C92413200F9F68D /* WKPreviewActionIdentifiersPrivate.mm in Sources */,
+				93A253F51C92413200F9F68D /* WKPreviewActionItemIdentifiers.mm in Sources */,
 				E489D28D1A0A2DB80078C06A /* NetworkCacheDecoder.cpp in Sources */,
 				E489D28F1A0A2DB80078C06A /* NetworkCacheEncoder.cpp in Sources */,
 				E413F59F1AC1AF9D00345360 /* NetworkCacheEntry.cpp in Sources */,
@@ -8931,7 +8931,7 @@
 				E1CC1B9112D7EADF00625838 /* PrintInfoMac.mm in Sources */,
 				37716A5A195B910500EE8B1B /* ProcessAssertion.cpp in Sources */,
 				86F9536418FF583C001DB2EF /* ProcessAssertionIOS.mm in Sources */,
-				9395E68C1BF2C35200F49BCE /* _WKPreviewElementInfo.mm in Sources */,
+				9395E68C1BF2C35200F49BCE /* WKPreviewElementInfo.mm in Sources */,
 				C55F91701C595F630029E92D /* DataDetectionResult.mm in Sources */,
 				1AE117F611DBB30900981615 /* ProcessLauncher.cpp in Sources */,
 				BC111B1D112F5FE600337BAB /* ProcessLauncherMac.mm in Sources */,
@@ -9304,7 +9304,7 @@
 				CDCA85C8132ABA4E00E961DF /* WKFullScreenWindowController.mm in Sources */,
 				BC54CC1312D674EE005C67B0 /* WKGeolocationManager.cpp in Sources */,
 				BC06F44F12DBDF3F002D78DE /* WKGeolocationPermissionRequest.cpp in Sources */,
-				93A253EF1C922E8E00F9F68D /* _WKPreviewAction.mm in Sources */,
+				93A253EF1C922E8E00F9F68D /* WKPreviewActionItem.mm in Sources */,
 				BC0E619912D6CD120012A72A /* WKGeolocationPosition.cpp in Sources */,
 				07297FA21C186ADB003F0735 /* WKUserMediaPermissionCheck.cpp in Sources */,
 				0FCB4E5018BBE044000FCFC9 /* WKGeolocationProviderIOS.mm in Sources */,