Diff
Modified: trunk/Source/WebKit2/ChangeLog (164459 => 164460)
--- trunk/Source/WebKit2/ChangeLog 2014-02-21 01:20:48 UTC (rev 164459)
+++ trunk/Source/WebKit2/ChangeLog 2014-02-21 01:50:03 UTC (rev 164460)
@@ -1,3 +1,31 @@
+2014-02-20 Anders Carlsson <[email protected]>
+
+ We need something like WKPageUIClient in the Obj-C API
+ https://bugs.webkit.org/show_bug.cgi?id=129123
+ <rdar://problem/15338439>
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/API/APIUIClient.h:
+ * UIProcess/API/Cocoa/WKUIDelegate.h: Added.
+ * UIProcess/API/Cocoa/WKWebView.h:
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView initWithFrame:configuration:]):
+ (-[WKWebView UIDelegate]):
+ (-[WKWebView setUIDelegate:]):
+ * UIProcess/Cocoa/UIClient.h: Added.
+ * UIProcess/Cocoa/UIClient.mm: Added.
+ (WebKit::UIClient::UIClient):
+ (WebKit::UIClient::~UIClient):
+ (WebKit::UIClient::delegate):
+ (WebKit::UIClient::setDelegate):
+ (WebKit::UIClient::runJavaScriptAlert):
+ (WebKit::UIClient::runJavaScriptConfirm):
+ (WebKit::UIClient::runJavaScriptPrompt):
+ * UIProcess/WebPageProxy.h:
+ (WebKit::WebPageProxy::uiClient):
+ * WebKit2.xcodeproj/project.pbxproj:
+
2014-02-20 Brady Eidson <[email protected]>
Add very basic image control rendering
Modified: trunk/Source/WebKit2/UIProcess/API/APIUIClient.h (164459 => 164460)
--- trunk/Source/WebKit2/UIProcess/API/APIUIClient.h 2014-02-21 01:20:48 UTC (rev 164459)
+++ trunk/Source/WebKit2/UIProcess/API/APIUIClient.h 2014-02-21 01:50:03 UTC (rev 164460)
@@ -29,6 +29,7 @@
#include "WKPage.h"
#include "WebEvent.h"
#include "WebHitTestResult.h"
+#include "WebPageProxy.h"
#include <WebCore/FloatRect.h>
#include <functional>
#include <wtf/PassRefPtr.h>
Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h (0 => 164460)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h 2014-02-21 01:50:03 UTC (rev 164460)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2014 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 <Foundation/Foundation.h>
+#import <WebKit2/WKFoundation.h>
+
+#if WK_API_ENABLED
+
+@class WKFrameInfo;
+
+@protocol WKUIDelegate <NSObject>
+
+@optional
+
+- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)())completionHandler;
+
+- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL result))completionHandler;
+
+- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *result))completionHandler;
+
+@end
+
+#endif // WK_API_ENABLED
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h (164459 => 164460)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h 2014-02-21 01:20:48 UTC (rev 164459)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h 2014-02-21 01:50:03 UTC (rev 164460)
@@ -40,6 +40,7 @@
@class WKWebViewConfiguration;
@protocol WKNavigationDelegate;
+@protocol WKUIDelegate;
/*!
A @link WKWebView @/link displays interactive Web content.
@@ -59,6 +60,8 @@
@property (nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
+@property (nonatomic, weak) id <WKUIDelegate> UIDelegate;
+
/*! @abstract The view's back-forward list. */
@property (nonatomic, readonly) WKBackForwardList *backForwardList;
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (164459 => 164460)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-02-21 01:20:48 UTC (rev 164459)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-02-21 01:50:03 UTC (rev 164460)
@@ -32,6 +32,7 @@
#import "RemoteLayerTreeTransaction.h"
#import "RemoteObjectRegistry.h"
#import "RemoteObjectRegistryMessages.h"
+#import "UIClient.h"
#import "ViewGestureController.h"
#import "WKBackForwardListInternal.h"
#import "WKBackForwardListItemInternal.h"
@@ -43,6 +44,7 @@
#import "WKPreferencesInternal.h"
#import "WKProcessClassInternal.h"
#import "WKRemoteObjectRegistryInternal.h"
+#import "WKUIDelegate.h"
#import "WKWebViewConfigurationPrivate.h"
#import "WebCertificateInfo.h"
#import "WebContext.h"
@@ -161,6 +163,8 @@
_page->setPolicyClient(_navigationState->createPolicyClient());
_page->setLoaderClient(_navigationState->createLoaderClient());
+ _page->setUIClient(std::make_unique<WebKit::UIClient>(self));
+
return self;
}
@@ -194,6 +198,16 @@
_navigationState->setNavigationDelegate(navigationDelegate);
}
+- (id <WKUIDelegate>)UIDelegate
+{
+ return [static_cast<WebKit::UIClient&>(_page->uiClient()).delegate().leakRef() autorelease];
+}
+
+- (void)setUIDelegate:(id<WKUIDelegate>)UIDelegate
+{
+ static_cast<WebKit::UIClient&>(_page->uiClient()).setDelegate(UIDelegate);
+}
+
- (WKNavigation *)loadRequest:(NSURLRequest *)request
{
uint64_t navigationID = _page->loadRequest(request);
Added: trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h (0 => 164460)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h 2014-02-21 01:50:03 UTC (rev 164460)
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#ifndef UIClient_h
+#define UIClient_h
+
+#import "WKFoundation.h"
+
+#if WK_API_ENABLED
+
+#import "APIUIClient.h"
+#import "WeakObjCPtr.h"
+#import <wtf/RetainPtr.h>
+
+@class WKWebView;
+@protocol WKUIDelegate;
+
+namespace WebKit {
+
+class UIClient : public API::UIClient {
+public:
+ explicit UIClient(WKWebView *);
+ ~UIClient();
+
+ RetainPtr<id <WKUIDelegate> > delegate();
+ void setDelegate(id <WKUIDelegate>);
+
+private:
+ // API::UIClient
+ virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) override;
+ virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) override;
+ virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (const WTF::String&)> completionHandler) override;
+
+ WKWebView *m_webView;
+ WeakObjCPtr<id <WKUIDelegate> > m_delegate;
+
+ struct {
+ bool webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler : 1;
+ bool webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1;
+ bool webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler : 1;
+ } m_delegateMethods;
+};
+
+} // namespace WebKit
+
+#endif // WK_API_ENABLED
+
+#endif // UIClient_h
Added: trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm (0 => 164460)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm 2014-02-21 01:50:03 UTC (rev 164460)
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2014 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 "config.h"
+#import "UIClient.h"
+
+#if WK_API_ENABLED
+
+#import "WKFrameInfoInternal.h"
+#import "WKUIDelegate.h"
+
+namespace WebKit {
+
+UIClient::UIClient(WKWebView *webView)
+ : m_webView(webView)
+{
+}
+
+UIClient::~UIClient()
+{
+}
+
+RetainPtr<id <WKUIDelegate> > UIClient::delegate()
+{
+ return m_delegate.get();
+}
+
+void UIClient::setDelegate(id <WKUIDelegate> delegate)
+{
+ m_delegate = delegate;
+
+ m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)];
+ m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)];
+ m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)];
+}
+
+void UIClient::runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void ()> completionHandler)
+{
+ if (!m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler) {
+ completionHandler();
+ return;
+ }
+
+ auto delegate = m_delegate.get();
+ if (!delegate) {
+ completionHandler();
+ return;
+ }
+
+ [delegate webView:m_webView runJavaScriptAlertPanelWithMessage:message initiatedByFrame:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*webFrameProxy]).get() completionHandler:[completionHandler] {
+ completionHandler();
+ }];
+}
+
+void UIClient::runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void (bool)> completionHandler)
+{
+ if (!m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler) {
+ completionHandler(false);
+ return;
+ }
+
+ auto delegate = m_delegate.get();
+ if (!delegate) {
+ completionHandler(false);
+ return;
+ }
+
+ [delegate webView:m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*webFrameProxy]).get() completionHandler:[completionHandler](BOOL result) {
+ completionHandler(result);
+ }];
+}
+
+void UIClient::runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String& message, const WTF::String& defaultValue, WebKit::WebFrameProxy* webFrameProxy, std::function<void (const WTF::String&)> completionHandler)
+{
+ if (!m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler) {
+ completionHandler(String());
+ return;
+ }
+
+ auto delegate = m_delegate.get();
+ if (!delegate) {
+ completionHandler(String());
+ return;
+ }
+
+ [delegate webView:m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*webFrameProxy]).get() completionHandler:[completionHandler](NSString *result) {
+ completionHandler(result);
+ }];
+}
+
+} // namespace WebKit
+
+#endif // WK_API_ENABLED
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (164459 => 164460)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2014-02-21 01:20:48 UTC (rev 164459)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2014-02-21 01:50:03 UTC (rev 164460)
@@ -374,6 +374,8 @@
void initializeFormClient(const WKPageFormClientBase*);
void setLoaderClient(std::unique_ptr<API::LoaderClient>);
void setPolicyClient(std::unique_ptr<API::PolicyClient>);
+
+ API::UIClient& uiClient() { return *m_uiClient; }
void setUIClient(std::unique_ptr<API::UIClient>);
#if PLATFORM(EFL)
void initializeUIPopupMenuClient(const WKPageUIPopupMenuClientBase*);
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (164459 => 164460)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-02-21 01:20:48 UTC (rev 164459)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-02-21 01:50:03 UTC (rev 164460)
@@ -341,6 +341,7 @@
1AD25E96167AB08100EA9BCD /* DownloadProxyMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD25E94167AB08100EA9BCD /* DownloadProxyMap.h */; };
1AD3306E16B1D991004F60E7 /* StorageAreaImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */; };
1AD3306F16B1D991004F60E7 /* StorageAreaImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD3306D16B1D991004F60E7 /* StorageAreaImpl.h */; };
+ 1AD8790A18B6C38A006CAFD7 /* WKUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD8790918B6C38A006CAFD7 /* WKUIDelegate.h */; };
1ADCB86A189831B30022EE5A /* NavigationActionData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ADCB868189831B30022EE5A /* NavigationActionData.cpp */; };
1ADCB86B189831B30022EE5A /* NavigationActionData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADCB869189831B30022EE5A /* NavigationActionData.h */; };
1ADF591A1890528E0043C145 /* WKWebViewConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */; };
@@ -375,6 +376,8 @@
1AFDD3151891B54000153970 /* APIPolicyClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFDD3141891B54000153970 /* APIPolicyClient.h */; };
1AFDD3171891C94700153970 /* WKPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFDD3161891C94700153970 /* WKPreferences.h */; settings = {ATTRIBUTES = (Private, ); }; };
1AFDD3191891CA1200153970 /* WKPreferences.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AFDD3181891CA1200153970 /* WKPreferences.mm */; };
+ 1AFE436518B6C081009C7A48 /* UIClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AFE436318B6C081009C7A48 /* UIClient.mm */; };
+ 1AFE436618B6C081009C7A48 /* UIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFE436418B6C081009C7A48 /* UIClient.h */; };
1AFF49001833DE78009AB15A /* WKDeprecatedFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFF48FE1833DE78009AB15A /* WKDeprecatedFunctions.cpp */; };
1C8E25A81270E3BB00BC7BD0 /* WebInspectorFrontendClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C8E256B1270DE3800BC7BD0 /* WebInspectorFrontendClient.cpp */; };
1C8E25A91270E3BC00BC7BD0 /* WebInspectorFrontendClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C8E256A1270DE3800BC7BD0 /* WebInspectorFrontendClient.h */; };
@@ -2029,6 +2032,7 @@
1AD25E94167AB08100EA9BCD /* DownloadProxyMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DownloadProxyMap.h; sourceTree = "<group>"; };
1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageAreaImpl.cpp; sourceTree = "<group>"; };
1AD3306D16B1D991004F60E7 /* StorageAreaImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageAreaImpl.h; sourceTree = "<group>"; };
+ 1AD8790918B6C38A006CAFD7 /* WKUIDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUIDelegate.h; sourceTree = "<group>"; };
1ADCB868189831B30022EE5A /* NavigationActionData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NavigationActionData.cpp; sourceTree = "<group>"; };
1ADCB869189831B30022EE5A /* NavigationActionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationActionData.h; sourceTree = "<group>"; };
1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewConfiguration.mm; sourceTree = "<group>"; };
@@ -2063,6 +2067,8 @@
1AFDD3141891B54000153970 /* APIPolicyClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIPolicyClient.h; sourceTree = "<group>"; };
1AFDD3161891C94700153970 /* WKPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreferences.h; sourceTree = "<group>"; };
1AFDD3181891CA1200153970 /* WKPreferences.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPreferences.mm; sourceTree = "<group>"; };
+ 1AFE436318B6C081009C7A48 /* UIClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UIClient.mm; sourceTree = "<group>"; };
+ 1AFE436418B6C081009C7A48 /* UIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIClient.h; sourceTree = "<group>"; };
1AFF48FE1833DE78009AB15A /* WKDeprecatedFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKDeprecatedFunctions.cpp; sourceTree = "<group>"; };
1BB417C912C00CCA002BE67B /* TextCheckerCompletion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextCheckerCompletion.cpp; sourceTree = "<group>"; };
1C77C1951288A872006A742F /* WebInspectorProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebInspectorProxy.messages.in; sourceTree = "<group>"; };
@@ -4032,6 +4038,8 @@
1A422F8C18B29C6400D8CD96 /* HistoryClient.mm */,
1ABC3DF41899E437004F0626 /* NavigationState.h */,
1ABC3DF31899E437004F0626 /* NavigationState.mm */,
+ 1AFE436418B6C081009C7A48 /* UIClient.h */,
+ 1AFE436318B6C081009C7A48 /* UIClient.mm */,
);
path = Cocoa;
sourceTree = "<group>";
@@ -4388,6 +4396,7 @@
1A43E827188F3CDC009E4D30 /* WKProcessClassConfiguration.mm */,
1A43E82B188F3CF5009E4D30 /* WKProcessClassConfigurationPrivate.h */,
1A3CC16818907EB0001E6ED8 /* WKProcessClassInternal.h */,
+ 1AD8790918B6C38A006CAFD7 /* WKUIDelegate.h */,
1A3CC16518906ACF001E6ED8 /* WKWebView.h */,
1A3CC16418906ACF001E6ED8 /* WKWebView.mm */,
1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */,
@@ -6301,6 +6310,7 @@
377EAD4817E2C77B002D193D /* WKUserContentInjectedFrames.h in Headers */,
BC8699B5116AADAA002A925B /* WKView.h in Headers */,
BC8F2F2B16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.h in Headers */,
+ 1AD8790A18B6C38A006CAFD7 /* WKUIDelegate.h in Headers */,
290F4272172A0C7400939FF0 /* ChildProcessSupplement.h in Headers */,
1A6F9F9011E13EFC00DB1371 /* CommandLine.h in Headers */,
37C4E9F6131C6E7E0029BD5A /* config.h in Headers */,
@@ -6494,6 +6504,7 @@
7CD622781739D863005BD7FF /* PluginSandboxProfile.h in Headers */,
1AAB037A185A7C6A00EDF501 /* MessageSender.h in Headers */,
1A6FB7AF11E64B6800DB1371 /* PluginView.h in Headers */,
+ 1AFE436618B6C081009C7A48 /* UIClient.h in Headers */,
E1CC1B9012D7EADF00625838 /* PrintInfo.h in Headers */,
BC1A7C581136E19C00FB7167 /* ProcessLauncher.h in Headers */,
BC597075116591D000551FCA /* ProcessModel.h in Headers */,
@@ -7770,6 +7781,7 @@
1AAB037C185F99D800EDF501 /* APIData.cpp in Sources */,
BC8147AA12F64CDA007B2C32 /* InjectedBundlePagePolicyClient.cpp in Sources */,
659C551E130006410025C0C2 /* InjectedBundlePageResourceLoadClient.cpp in Sources */,
+ 1AFE436518B6C081009C7A48 /* UIClient.mm in Sources */,
BCA8C6AF11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp in Sources */,
0F5947A3187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.cpp in Sources */,
BC33E0D212408E8600360F3F /* InjectedBundleRangeHandle.cpp in Sources */,