Title: [194076] branches/safari-601-branch/Source/WebKit2

Diff

Modified: branches/safari-601-branch/Source/WebKit2/ChangeLog (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/ChangeLog	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/ChangeLog	2015-12-15 00:35:22 UTC (rev 194076)
@@ -1,5 +1,48 @@
 2015-12-08  Harris Papadopoulos  <[email protected]>
 
+        Merge r188553. rdar://problem/23816165
+
+    2015-08-13  Anders Carlsson  <[email protected]>
+
+            Add WKWindowFeaturesRef and a new modern createNewPage UI client callback
+            https://bugs.webkit.org/show_bug.cgi?id=147989
+
+            Reviewed by Tim Horton.
+
+            Re-land this and make sure we actually allocate a WKWindowFeatures object.
+
+            * Platform/IPC/mac/ConnectionMac.mm:
+            * Shared/API/APIObject.h:
+            * Shared/API/c/WKBase.h:
+            * UIProcess/API/APIWindowFeatures.cpp: Added.
+            * UIProcess/API/APIWindowFeatures.h: Added.
+            * UIProcess/API/C/WKAPICast.h:
+            * UIProcess/API/C/WKPage.cpp:
+            (WKPageSetPageUIClient):
+            * UIProcess/API/C/WKPageUIClient.h:
+            * UIProcess/API/C/WKWindowFeaturesRef.cpp: Added.
+            (WKWindowFeaturesGetTypeID):
+            * UIProcess/API/C/WKWindowFeaturesRef.h: Added.
+            * UIProcess/API/Cocoa/WKWindowFeatures.mm:
+            (-[WKWindowFeatures dealloc]):
+            (-[WKWindowFeatures menuBarVisibility]):
+            (-[WKWindowFeatures statusBarVisibility]):
+            (-[WKWindowFeatures toolbarsVisibility]):
+            (-[WKWindowFeatures allowsResizing]):
+            (-[WKWindowFeatures x]):
+            (-[WKWindowFeatures y]):
+            (-[WKWindowFeatures width]):
+            (-[WKWindowFeatures height]):
+            (-[WKWindowFeatures _apiObject]):
+            (-[WKWindowFeatures _initWithWindowFeatures:]): Deleted.
+            * UIProcess/API/Cocoa/WKWindowFeaturesInternal.h:
+            (WebKit::wrapper):
+            * UIProcess/Cocoa/UIDelegate.mm:
+            (WebKit::UIDelegate::UIClient::createNewPage):
+            * WebKit2.xcodeproj/project.pbxproj:
+
+2015-12-08  Harris Papadopoulos  <[email protected]>
+
         Merge r188386. rdar://problem/23816165
 
     2015-08-12  Anders Carlsson  <[email protected]>

Modified: branches/safari-601-branch/Source/WebKit2/Shared/API/APIObject.h (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/Shared/API/APIObject.h	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/Shared/API/APIObject.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -148,6 +148,7 @@
         VisitedLinkProvider,
         WebsiteDataRecord,
         WebsiteDataStore,
+        WindowFeatures,
 
 #if ENABLE(MEDIA_SESSION)
         MediaSessionMetadata,

Modified: branches/safari-601-branch/Source/WebKit2/Shared/API/c/WKBase.h (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/Shared/API/c/WKBase.h	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/Shared/API/c/WKBase.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -141,6 +141,7 @@
 typedef const struct OpaqueWKVibration* WKVibrationRef;
 typedef const struct OpaqueWKViewportAttributes* WKViewportAttributesRef;
 typedef const struct OpaqueWKWebsiteDataStore* WKWebsiteDataStoreRef;
+typedef const struct OpaqueWKWindowFeatures* WKWindowFeaturesRef;
 
 /* WebKit2 Bundle types */
 

Modified: branches/safari-601-branch/Source/WebKit2/Shared/Cocoa/APIObject.mm (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/Shared/Cocoa/APIObject.mm	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/Shared/Cocoa/APIObject.mm	2015-12-15 00:35:22 UTC (rev 194076)
@@ -60,6 +60,7 @@
 #import "WKWebProcessPlugInScriptWorldInternal.h"
 #import "WKWebsiteDataRecordInternal.h"
 #import "WKWebsiteDataStoreInternal.h"
+#import "WKWindowFeaturesInternal.h"
 #import "_WKDownloadInternal.h"
 #import "_WKFrameHandleInternal.h"
 #import "_WKProcessPoolConfigurationInternal.h"
@@ -217,6 +218,10 @@
         wrapper = [WKWebsiteDataStore alloc];
         break;
 
+    case Type::WindowFeatures:
+        wrapper = [WKWindowFeatures alloc];
+        break;
+
     case Type::BundleFrame:
         wrapper = [WKWebProcessPlugInFrame alloc];
         break;

Copied: branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIWindowFeatures.cpp (from rev 194075, branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h) (0 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIWindowFeatures.cpp	                        (rev 0)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIWindowFeatures.cpp	2015-12-15 00:35:22 UTC (rev 194076)
@@ -0,0 +1,45 @@
+/*
+ * 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 "APIWindowFeatures.h"
+
+namespace API {
+
+Ref<WindowFeatures> WindowFeatures::create(const WebCore::WindowFeatures& windowFeatures)
+{
+    return adoptRef(*new WindowFeatures(windowFeatures));
+}
+
+WindowFeatures::WindowFeatures(const WebCore::WindowFeatures& windowFeatures)
+    : m_windowFeatures(windowFeatures)
+{
+}
+
+WindowFeatures::~WindowFeatures()
+{
+}
+
+}

Copied: branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIWindowFeatures.h (from rev 194075, branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h) (0 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIWindowFeatures.h	                        (rev 0)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIWindowFeatures.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+
+#ifndef APIWindowFeatures_h
+#define APIWindowFeatures_h
+
+#include "APIObject.h"
+#include <WebCore/WindowFeatures.h>
+
+namespace API {
+
+class WindowFeatures final : public ObjectImpl<Object::Type::WindowFeatures> {
+public:
+    static Ref<WindowFeatures> create(const WebCore::WindowFeatures&);
+    virtual ~WindowFeatures();
+
+    const WebCore::WindowFeatures& windowFeatures() const { return m_windowFeatures; }
+
+private:
+    explicit WindowFeatures(const WebCore::WindowFeatures&);
+
+    const WebCore::WindowFeatures m_windowFeatures;
+};
+
+}
+
+#endif // APIWindowFeatures_h

Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKAPICast.h (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKAPICast.h	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKAPICast.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -64,6 +64,7 @@
 class UserContentExtensionStore;
 class UserScript;
 class WebsiteDataStore;
+class WindowFeatures;
 }
 
 namespace WebKit {
@@ -164,6 +165,7 @@
 WK_ADD_API_MAPPING(WKVibrationRef, WebVibrationProxy)
 WK_ADD_API_MAPPING(WKViewportAttributesRef, WebViewportAttributes)
 WK_ADD_API_MAPPING(WKWebsiteDataStoreRef, API::WebsiteDataStore)
+WK_ADD_API_MAPPING(WKWindowFeaturesRef, API::WindowFeatures)
 
 /* Enum conversions */
 

Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2015-12-15 00:35:22 UTC (rev 194076)
@@ -41,6 +41,7 @@
 #include "APIPolicyClient.h"
 #include "APISessionState.h"
 #include "APIUIClient.h"
+#include "APIWindowFeatures.h"
 #include "AuthenticationChallengeProxy.h"
 #include "LegacySessionStateCoding.h"
 #include "Logging.h"
@@ -102,7 +103,7 @@
 };
 
 template<> struct ClientTraits<WKPageUIClientBase> {
-    typedef std::tuple<WKPageUIClientV0, WKPageUIClientV1, WKPageUIClientV2, WKPageUIClientV3, WKPageUIClientV4, WKPageUIClientV5> Versions;
+    typedef std::tuple<WKPageUIClientV0, WKPageUIClientV1, WKPageUIClientV2, WKPageUIClientV3, WKPageUIClientV4, WKPageUIClientV5, WKPageUIClientV6> Versions;
 };
 
 #if ENABLE(CONTEXT_MENUS)
@@ -1341,38 +1342,55 @@
         }
 
     private:
-        virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy*, const SecurityOriginData&, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData) override
+        virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy* initiatingFrame, const SecurityOriginData& securityOriginData, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, const NavigationActionData& navigationActionData) override
         {
-            if (!m_client.base.version && !m_client.createNewPage_deprecatedForUseWithV0)
-                return 0;
+            if (m_client.base.version < 6) {
+                if (!m_client.base.version && !m_client.createNewPage_deprecatedForUseWithV0)
+                    return nullptr;
 
-            if (m_client.base.version > 0 && !m_client.createNewPage)
-                return 0;
+                if (!m_client.createNewPage_deprecatedForUseWithV1)
+                    return nullptr;
 
-            API::Dictionary::MapType map;
-            if (windowFeatures.x)
-                map.set("x", API::Double::create(*windowFeatures.x));
-            if (windowFeatures.y)
-                map.set("y", API::Double::create(*windowFeatures.y));
-            if (windowFeatures.width)
-                map.set("width", API::Double::create(*windowFeatures.width));
-            if (windowFeatures.height)
-                map.set("height", API::Double::create(*windowFeatures.height));
-            map.set("menuBarVisible", API::Boolean::create(windowFeatures.menuBarVisible));
-            map.set("statusBarVisible", API::Boolean::create(windowFeatures.statusBarVisible));
-            map.set("toolBarVisible", API::Boolean::create(windowFeatures.toolBarVisible));
-            map.set("locationBarVisible", API::Boolean::create(windowFeatures.locationBarVisible));
-            map.set("scrollbarsVisible", API::Boolean::create(windowFeatures.scrollbarsVisible));
-            map.set("resizable", API::Boolean::create(windowFeatures.resizable));
-            map.set("fullscreen", API::Boolean::create(windowFeatures.fullscreen));
-            map.set("dialog", API::Boolean::create(windowFeatures.dialog));
-            Ref<API::Dictionary> featuresMap = API::Dictionary::create(WTF::move(map));
+                API::Dictionary::MapType map;
+                if (windowFeatures.x)
+                    map.set("x", API::Double::create(*windowFeatures.x));
+                if (windowFeatures.y)
+                    map.set("y", API::Double::create(*windowFeatures.y));
+                if (windowFeatures.width)
+                    map.set("width", API::Double::create(*windowFeatures.width));
+                if (windowFeatures.height)
+                    map.set("height", API::Double::create(*windowFeatures.height));
+                map.set("menuBarVisible", API::Boolean::create(windowFeatures.menuBarVisible));
+                map.set("statusBarVisible", API::Boolean::create(windowFeatures.statusBarVisible));
+                map.set("toolBarVisible", API::Boolean::create(windowFeatures.toolBarVisible));
+                map.set("locationBarVisible", API::Boolean::create(windowFeatures.locationBarVisible));
+                map.set("scrollbarsVisible", API::Boolean::create(windowFeatures.scrollbarsVisible));
+                map.set("resizable", API::Boolean::create(windowFeatures.resizable));
+                map.set("fullscreen", API::Boolean::create(windowFeatures.fullscreen));
+                map.set("dialog", API::Boolean::create(windowFeatures.dialog));
+                Ref<API::Dictionary> featuresMap = API::Dictionary::create(WTF::move(map));
 
-            if (!m_client.base.version)
-                return adoptRef(toImpl(m_client.createNewPage_deprecatedForUseWithV0(toAPI(page), toAPI(featuresMap.ptr()), toAPI(navigationActionData.modifiers), toAPI(navigationActionData.mouseButton), m_client.base.clientInfo)));
+                if (!m_client.base.version)
+                    return adoptRef(toImpl(m_client.createNewPage_deprecatedForUseWithV0(toAPI(page), toAPI(featuresMap.ptr()), toAPI(navigationActionData.modifiers), toAPI(navigationActionData.mouseButton), m_client.base.clientInfo)));
 
-            Ref<API::URLRequest> request = API::URLRequest::create(resourceRequest);
-            return adoptRef(toImpl(m_client.createNewPage(toAPI(page), toAPI(request.ptr()), toAPI(featuresMap.ptr()), toAPI(navigationActionData.modifiers), toAPI(navigationActionData.mouseButton), m_client.base.clientInfo)));
+                Ref<API::URLRequest> request = API::URLRequest::create(resourceRequest);
+                return adoptRef(toImpl(m_client.createNewPage_deprecatedForUseWithV1(toAPI(page), toAPI(request.ptr()), toAPI(featuresMap.ptr()), toAPI(navigationActionData.modifiers), toAPI(navigationActionData.mouseButton), m_client.base.clientInfo)));
+            }
+
+            if (!m_client.createNewPage)
+                return nullptr;
+
+            auto configuration = page->configuration().copy();
+            configuration->setRelatedPage(page);
+
+            auto sourceFrameInfo = API::FrameInfo::create(*initiatingFrame, securityOriginData.securityOrigin());
+
+            bool shouldOpenAppLinks = !protocolHostAndPortAreEqual(WebCore::URL(WebCore::ParsedURLString, initiatingFrame->url()), resourceRequest.url());
+            auto apiNavigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.ptr(), nullptr, resourceRequest, WebCore::URL(), shouldOpenAppLinks);
+
+            auto apiWindowFeatures = API::WindowFeatures::create(windowFeatures);
+
+            return adoptRef(toImpl(m_client.createNewPage(toAPI(page), toAPI(configuration.ptr()), toAPI(apiNavigationAction.ptr()), toAPI(apiWindowFeatures.ptr()), m_client.base.clientInfo)));
         }
 
         virtual void showPage(WebPageProxy* page) override

Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageUIClient.h (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageUIClient.h	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageUIClient.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -49,7 +49,7 @@
 typedef uint32_t WKPluginUnavailabilityReason;
 
 typedef void (*WKPageUIClientCallback)(WKPageRef page, const void* clientInfo);
-typedef WKPageRef (*WKPageCreateNewPageCallback)(WKPageRef page, WKURLRequestRef urlRequest, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
+typedef WKPageRef (*WKPageCreateNewPageCallback)(WKPageRef page, WKPageConfigurationRef configuration, WKNavigationActionRef navigationAction, WKWindowFeaturesRef windowFeatures, const void *clientInfo);
 typedef void (*WKPageRunJavaScriptAlertCallback)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
 typedef bool (*WKPageRunJavaScriptConfirmCallback)(WKPageRef page, WKStringRef message, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
 typedef WKStringRef (*WKPageRunJavaScriptPromptCallback)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
@@ -101,6 +101,7 @@
 typedef void (*WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV0)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, const void *clientInfo);
 typedef bool (*WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV0)(WKPageRef page, WKStringRef message, WKFrameRef frame, const void *clientInfo);
 typedef WKStringRef (*WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV0)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, const void *clientInfo);
+typedef WKPageRef (*WKPageCreateNewPageCallback_deprecatedForUseWithV1)(WKPageRef page, WKURLRequestRef urlRequest, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
 
 typedef struct WKPageUIClientBase {
     int                                                                 version;
@@ -197,7 +198,7 @@
     void*                                                               shouldInterruptJavaScript_unavailable;
 
     // Version 1.
-    WKPageCreateNewPageCallback                                         createNewPage;
+    WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
@@ -248,7 +249,7 @@
     void*                                                               shouldInterruptJavaScript_unavailable;
 
     // Version 1.
-    WKPageCreateNewPageCallback                                         createNewPage;
+    WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
@@ -304,7 +305,7 @@
     void*                                                               shouldInterruptJavaScript_unavailable;
 
     // Version 1.
-    WKPageCreateNewPageCallback                                         createNewPage;
+    WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
@@ -363,7 +364,7 @@
     void*                                                               shouldInterruptJavaScript_unavailable;
 
     // Version 1.
-    WKPageCreateNewPageCallback                                         createNewPage;
+    WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
@@ -428,7 +429,7 @@
     void*                                                               shouldInterruptJavaScript_unavailable;
 
     // Version 1.
-    WKPageCreateNewPageCallback                                         createNewPage;
+    WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
@@ -456,10 +457,8 @@
     WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;
 } WKPageUIClientV5;
 
-enum { kWKPageUIClientCurrentVersion WK_ENUM_DEPRECATED("Use an explicit version number instead") = 2 };
-typedef struct WKPageUIClient {
-    int                                                                 version;
-    const void *                                                        clientInfo;
+typedef struct WKPageUIClientV6 {
+    WKPageUIClientBase                                                  base;
 
     // Version 0.
     WKPageCreateNewPageCallback_deprecatedForUseWithV0                  createNewPage_deprecatedForUseWithV0;
@@ -468,9 +467,9 @@
     WKPageTakeFocusCallback                                             takeFocus;
     WKPageFocusCallback                                                 focus;
     WKPageUnfocusCallback                                               unfocus;
-    WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV0             runJavaScriptAlert;
-    WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV0           runJavaScriptConfirm;
-    WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV0            runJavaScriptPrompt;
+    WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV0             runJavaScriptAlert_deprecatedForUseWithV0;
+    WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV0           runJavaScriptConfirm_deprecatedForUseWithV0;
+    WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV0            runJavaScriptPrompt_deprecatedForUseWithV0;
     WKPageSetStatusTextCallback                                         setStatusText;
     WKPageMouseDidMoveOverElementCallback_deprecatedForUseWithV0        mouseDidMoveOverElement_deprecatedForUseWithV0;
     WKPageMissingPluginButtonClickedCallback_deprecatedForUseWithV0     missingPluginButtonClicked_deprecatedForUseWithV0;
@@ -503,7 +502,7 @@
     void*                                                               shouldInterruptJavaScript_unavailable;
 
     // Version 1.
-    WKPageCreateNewPageCallback                                         createNewPage;
+    WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage_deprecatedForUseWithV1;
     WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
@@ -512,8 +511,29 @@
     WKPageShowColorPickerCallback                                       showColorPicker;
     WKPageHideColorPickerCallback                                       hideColorPicker;
     WKPageUnavailablePluginButtonClickedCallback                        unavailablePluginButtonClicked;
-} WKPageUIClient WK_C_DEPRECATED("Use an explicit versioned struct instead");
 
+    // Version 3.
+    WKPagePinnedStateDidChangeCallback                                  pinnedStateDidChange;
+
+    // Version 4.
+    WKPageDidBeginTrackingPotentialLongMousePressCallback               didBeginTrackingPotentialLongMousePress;
+    WKPageDidRecognizeLongMousePressCallback                            didRecognizeLongMousePress;
+    WKPageDidCancelTrackingPotentialLongMousePressCallback              didCancelTrackingPotentialLongMousePress;
+    WKPageIsPlayingAudioDidChangeCallback                               isPlayingAudioDidChange;
+
+    // Version 5.
+    WKPageDecidePolicyForUserMediaPermissionRequestCallback             decidePolicyForUserMediaPermissionRequest;
+    WKPageDidClickAutoFillButtonCallback                                didClickAutoFillButton;
+    WKPageRunJavaScriptAlertCallback                                    runJavaScriptAlert;
+    WKPageRunJavaScriptConfirmCallback                                  runJavaScriptConfirm;
+    WKPageRunJavaScriptPromptCallback                                   runJavaScriptPrompt;
+    WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;
+
+    // Version 6.
+    WKPageCreateNewPageCallback                                         createNewPage;
+
+} WKPageUIClientV6;
+
 #ifdef __cplusplus
 }
 #endif

Copied: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKWindowFeaturesRef.cpp (from rev 194075, branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h) (0 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKWindowFeaturesRef.cpp	                        (rev 0)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKWindowFeaturesRef.cpp	2015-12-15 00:35:22 UTC (rev 194076)
@@ -0,0 +1,35 @@
+/*
+ * 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 "WKWindowFeaturesRef.h"
+
+#include "APIWindowFeatures.h"
+#include "WKAPICast.h"
+
+WKTypeID WKWindowFeaturesGetTypeID()
+{
+    return WebKit::toAPI(API::WindowFeatures::APIType);
+}

Copied: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKWindowFeaturesRef.h (from rev 194075, branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h) (0 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKWindowFeaturesRef.h	                        (rev 0)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKWindowFeaturesRef.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+#ifndef WKWindowFeaturesRef_h
+#define WKWindowFeaturesRef_h
+
+#include <WebKit/WKBase.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WK_EXPORT WKTypeID WKWindowFeaturesGetTypeID();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // WKWindowFeaturesRef_h

Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeatures.mm (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeatures.mm	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeatures.mm	2015-12-15 00:35:22 UTC (rev 194076)
@@ -31,82 +31,74 @@
 #import <WebCore/WindowFeatures.h>
 #import <wtf/RetainPtr.h>
 
-@implementation WKWindowFeatures {
-    RetainPtr<NSNumber> _menuBarVisibility;
-    RetainPtr<NSNumber> _statusBarVisibility;
-    RetainPtr<NSNumber> _toolbarsVisibility;
+@implementation WKWindowFeatures
 
-    RetainPtr<NSNumber> _allowsResizing;
-
-    RetainPtr<NSNumber> _x;
-    RetainPtr<NSNumber> _y;
-    RetainPtr<NSNumber> _width;
-    RetainPtr<NSNumber> _height;
-}
-
-- (instancetype)_initWithWindowFeatures:(const WebCore::WindowFeatures&)windowFeatures
+- (void)dealloc
 {
-    if (!(self = [super init]))
-        return nil;
+    _windowFeatures->API::WindowFeatures::~WindowFeatures();
 
-    // FIXME: These should be set to nil if the features didn't exist in the string.
-    _menuBarVisibility = @(windowFeatures.menuBarVisible);
-    _statusBarVisibility = @(windowFeatures.statusBarVisible);
-    _toolbarsVisibility = @(windowFeatures.toolBarVisible || windowFeatures.locationBarVisible);
-    _allowsResizing = @(windowFeatures.resizable);
-
-    if (windowFeatures.x)
-        _x = @(*windowFeatures.x);
-    if (windowFeatures.y)
-        _y = @(*windowFeatures.y);
-    if (windowFeatures.width)
-        _width = @(*windowFeatures.width);
-    if (windowFeatures.height)
-        _height = @(*windowFeatures.height);
-
-    return self;
+    [super dealloc];
 }
 
 - (NSNumber *)menuBarVisibility
 {
-    return _menuBarVisibility.get();
+    return @(_windowFeatures->windowFeatures().menuBarVisible);
 }
 
 - (NSNumber *)statusBarVisibility
 {
-    return _statusBarVisibility.get();
+    return @(_windowFeatures->windowFeatures().statusBarVisible);
 }
 
 - (NSNumber *)toolbarsVisibility
 {
-    return _toolbarsVisibility.get();
+    return @(_windowFeatures->windowFeatures().toolBarVisible);
 }
 
 - (NSNumber *)allowsResizing
 {
-    return _allowsResizing.get();
+    return @(_windowFeatures->windowFeatures().resizable);
 }
 
 - (NSNumber *)x
 {
-    return _x.get();
+    if (auto x = _windowFeatures->windowFeatures().x)
+        return @(*x);
+
+    return nil;
 }
 
 - (NSNumber *)y
 {
-    return _y.get();
+    if (auto y = _windowFeatures->windowFeatures().y)
+        return @(*y);
+
+    return nil;
 }
 
 - (NSNumber *)width
 {
-    return _width.get();
+    if (auto width = _windowFeatures->windowFeatures().width)
+        return @(*width);
+
+    return nil;
 }
 
 - (NSNumber *)height
 {
-    return _height.get();
+    if (auto height = _windowFeatures->windowFeatures().height)
+        return @(*height);
+
+    return nil;
 }
 
+#pragma mark WKObject protocol implementation
+
+- (API::Object&)_apiObject
+{
+    return *_windowFeatures;
+}
+
 @end
 
 #endif

Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeaturesInternal.h	2015-12-15 00:35:22 UTC (rev 194076)
@@ -27,14 +27,23 @@
 
 #if WK_API_ENABLED
 
-namespace WebCore {
-struct WindowFeatures;
-}
+#import "APIWindowFeatures.h"
+#import "WKObject.h"
 
-@interface WKWindowFeatures ()
+namespace WebKit {
 
-- (instancetype)_initWithWindowFeatures:(const WebCore::WindowFeatures&)windowFeatures;
+inline WKWindowFeatures *wrapper(API::WindowFeatures& windowFeatures)
+{
+    ASSERT([windowFeatures.wrapper() isKindOfClass:[WKWindowFeatures class]]);
 
+    return (WKWindowFeatures *)windowFeatures.wrapper();
+}
+
+}
+@interface WKWindowFeatures () <WKObject> {
+@package
+    API::ObjectStorage<API::WindowFeatures> _windowFeatures;
+}
 @end
 
 #endif

Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm	2015-12-15 00:35:22 UTC (rev 194076)
@@ -114,10 +114,12 @@
     auto sourceFrameInfo = API::FrameInfo::create(*initiatingFrame, securityOriginData.securityOrigin());
 
     bool shouldOpenAppLinks = !protocolHostAndPortAreEqual(WebCore::URL(WebCore::ParsedURLString, initiatingFrame->url()), request.url());
-    auto navigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.ptr(), nullptr, request, WebCore::URL(), shouldOpenAppLinks);
+    auto apiNavigationAction = API::NavigationAction::create(navigationActionData, sourceFrameInfo.ptr(), nullptr, request, WebCore::URL(), shouldOpenAppLinks);
 
-    RetainPtr<WKWebView> webView = [delegate.get() webView:m_uiDelegate.m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:wrapper(navigationAction) windowFeatures:adoptNS([[WKWindowFeatures alloc] _initWithWindowFeatures:windowFeatures]).get()];
+    auto apiWindowFeatures = API::WindowFeatures::create(windowFeatures);
 
+    RetainPtr<WKWebView> webView = [delegate.get() webView:m_uiDelegate.m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:wrapper(apiNavigationAction) windowFeatures:wrapper(apiWindowFeatures)];
+
     if (!webView)
         return nullptr;
 

Modified: branches/safari-601-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (194075 => 194076)


--- branches/safari-601-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2015-12-15 00:35:16 UTC (rev 194075)
+++ branches/safari-601-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2015-12-15 00:35:22 UTC (rev 194076)
@@ -285,6 +285,8 @@
 		1A64245E12DE29A100CAAE2C /* UpdateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A64245C12DE29A100CAAE2C /* UpdateInfo.h */; };
 		1A64245F12DE29A100CAAE2C /* UpdateInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A64245D12DE29A100CAAE2C /* UpdateInfo.cpp */; };
 		1A6509CE18B4146200614332 /* WKProcessPoolPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A6509CD18B4146200614332 /* WKProcessPoolPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		1A6563E41B7A8C50009CF787 /* APIWindowFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6563E21B7A8C50009CF787 /* APIWindowFeatures.cpp */; };
+		1A6563E51B7A8C50009CF787 /* APIWindowFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A6563E31B7A8C50009CF787 /* APIWindowFeatures.h */; };
 		1A66BF8F18A052ED002071B4 /* WKWebViewInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A66BF8E18A052ED002071B4 /* WKWebViewInternal.h */; };
 		1A6F9F9011E13EFC00DB1371 /* CommandLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A6F9F8E11E13EFC00DB1371 /* CommandLine.h */; };
 		1A6F9FB711E1408500DB1371 /* CommandLinePOSIX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6F9FB611E1408500DB1371 /* CommandLinePOSIX.cpp */; };
@@ -300,6 +302,8 @@
 		1A7284481959F8040007BCE5 /* SessionStateConversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7284441959ED100007BCE5 /* SessionStateConversion.cpp */; };
 		1A7865B916CAC71500ACE83A /* PluginProcessConnectionManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7865B716CAC71500ACE83A /* PluginProcessConnectionManagerMessageReceiver.cpp */; };
 		1A7865BA16CAC71500ACE83A /* PluginProcessConnectionManagerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7865B816CAC71500ACE83A /* PluginProcessConnectionManagerMessages.h */; };
+		1A7C0DF61B7D1F1000A9B848 /* WKWindowFeaturesRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7C0DF41B7D1F1000A9B848 /* WKWindowFeaturesRef.cpp */; };
+		1A7C0DF71B7D1F1000A9B848 /* WKWindowFeaturesRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7C0DF51B7D1F1000A9B848 /* WKWindowFeaturesRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		1A7C6CDA1378950800B9C04D /* EnvironmentVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7C6CD81378950800B9C04D /* EnvironmentVariables.cpp */; };
 		1A7C6CDB1378950800B9C04D /* EnvironmentVariables.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7C6CD91378950800B9C04D /* EnvironmentVariables.h */; };
 		1A7E377518E4A33A003D0FFF /* WKScriptMessageHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7E377418E4A33A003D0FFF /* WKScriptMessageHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -2381,6 +2385,8 @@
 		1A64245C12DE29A100CAAE2C /* UpdateInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpdateInfo.h; sourceTree = "<group>"; };
 		1A64245D12DE29A100CAAE2C /* UpdateInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UpdateInfo.cpp; sourceTree = "<group>"; };
 		1A6509CD18B4146200614332 /* WKProcessPoolPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKProcessPoolPrivate.h; sourceTree = "<group>"; };
+		1A6563E21B7A8C50009CF787 /* APIWindowFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIWindowFeatures.cpp; sourceTree = "<group>"; };
+		1A6563E31B7A8C50009CF787 /* APIWindowFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIWindowFeatures.h; sourceTree = "<group>"; };
 		1A66BF8E18A052ED002071B4 /* WKWebViewInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebViewInternal.h; sourceTree = "<group>"; };
 		1A6D141F1B0167D500785FF0 /* Info-OSX-10.9-10.10.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-OSX-10.9-10.10.plist"; sourceTree = "<group>"; };
 		1A6D14211B01681600785FF0 /* PluginService.32-64-10.9-10.10.Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "PluginService.32-64-10.9-10.10.Info.plist"; path = "PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist"; sourceTree = SOURCE_ROOT; };
@@ -2399,6 +2405,8 @@
 		1A7865B616CAC6FD00ACE83A /* PluginProcessConnectionManager.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = PluginProcessConnectionManager.messages.in; sourceTree = "<group>"; };
 		1A7865B716CAC71500ACE83A /* PluginProcessConnectionManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginProcessConnectionManagerMessageReceiver.cpp; sourceTree = "<group>"; };
 		1A7865B816CAC71500ACE83A /* PluginProcessConnectionManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginProcessConnectionManagerMessages.h; sourceTree = "<group>"; };
+		1A7C0DF41B7D1F1000A9B848 /* WKWindowFeaturesRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKWindowFeaturesRef.cpp; sourceTree = "<group>"; };
+		1A7C0DF51B7D1F1000A9B848 /* WKWindowFeaturesRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWindowFeaturesRef.h; sourceTree = "<group>"; };
 		1A7C6CD81378950800B9C04D /* EnvironmentVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EnvironmentVariables.cpp; sourceTree = "<group>"; };
 		1A7C6CD91378950800B9C04D /* EnvironmentVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EnvironmentVariables.h; sourceTree = "<group>"; };
 		1A7DA54D1AFD8B380018239D /* Info-OSX-10.9-10.10.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-OSX-10.9-10.10.plist"; sourceTree = "<group>"; };
@@ -6248,6 +6256,8 @@
 				1A4832C61A9BC13C008B4DFE /* APIWebsiteDataRecord.h */,
 				1A3635A71A3144A300ED6197 /* APIWebsiteDataStore.cpp */,
 				1A3635A81A3144A300ED6197 /* APIWebsiteDataStore.h */,
+				1A6563E21B7A8C50009CF787 /* APIWindowFeatures.cpp */,
+				1A6563E31B7A8C50009CF787 /* APIWindowFeatures.h */,
 			);
 			path = API;
 			sourceTree = "<group>";
@@ -6381,6 +6391,8 @@
 				7C89D2A21A678875003A5FDE /* WKUserScriptRef.h */,
 				1A57109C1ABA0027002FABBE /* WKWebsiteDataStoreRef.cpp */,
 				1A57109D1ABA0027002FABBE /* WKWebsiteDataStoreRef.h */,
+				1A7C0DF41B7D1F1000A9B848 /* WKWindowFeaturesRef.cpp */,
+				1A7C0DF51B7D1F1000A9B848 /* WKWindowFeaturesRef.h */,
 			);
 			path = C;
 			sourceTree = "<group>";
@@ -8044,6 +8056,7 @@
 				1A4832D71A9CDF96008B4DFE /* WebsiteData.h in Headers */,
 				1A4832D11A9BDC2F008B4DFE /* WebsiteDataRecord.h in Headers */,
 				1A53C2AA1A325730004E8C70 /* WebsiteDataStore.h in Headers */,
+				1A6563E51B7A8C50009CF787 /* APIWindowFeatures.h in Headers */,
 				836034A01ACB34D600626549 /* WebSQLiteDatabaseTracker.h in Headers */,
 				1A52C0F81A38CDC70016160A /* WebStorageNamespaceProvider.h in Headers */,
 				BCC5715B115ADAEF001CCAF9 /* WebSystemInterface.h in Headers */,
@@ -8169,6 +8182,7 @@
 				C54256B818BEC18C00DE4179 /* WKFormPopover.h in Headers */,
 				C54256BA18BEC18C00DE4179 /* WKFormSelectControl.h in Headers */,
 				BCE4695A1214EDF4000B98EB /* WKFormSubmissionListener.h in Headers */,
+				1A7C0DF71B7D1F1000A9B848 /* WKWindowFeaturesRef.h in Headers */,
 				37DFA7001810BB92001F4A9F /* WKFoundation.h in Headers */,
 				BCD0139B110FA420003B8A67 /* WKFrame.h in Headers */,
 				1A4D664C18A3030E00D82E21 /* WKFrameInfo.h in Headers */,
@@ -9361,6 +9375,7 @@
 				7CEFA9621AC0999300B910FD /* APIUserContentExtensionStoreCocoa.mm in Sources */,
 				7C89D2A61A6789EA003A5FDE /* APIUserScript.cpp in Sources */,
 				C5E1AFEC16B21012006CC1F2 /* APIWebArchive.mm in Sources */,
+				1A7C0DF61B7D1F1000A9B848 /* WKWindowFeaturesRef.cpp in Sources */,
 				C5E1AFEE16B21025006CC1F2 /* APIWebArchiveResource.mm in Sources */,
 				1A4832C71A9BC13C008B4DFE /* APIWebsiteDataRecord.cpp in Sources */,
 				1A3635A91A3144A300ED6197 /* APIWebsiteDataStore.cpp in Sources */,
@@ -10025,6 +10040,7 @@
 				37BF2F071947DEB400723C48 /* WKNSURLRequest.mm in Sources */,
 				BC407601124FF0270068F20A /* WKNumber.cpp in Sources */,
 				7CD5EBB81746A15B000C1C45 /* WKObjCTypeWrapperRef.mm in Sources */,
+				1A6563E41B7A8C50009CF787 /* APIWindowFeatures.cpp in Sources */,
 				374436881820E7240049579F /* WKObject.mm in Sources */,
 				BC85806312B8505700EDEB2E /* WKOpenPanelParameters.cpp in Sources */,
 				BC85806212B8505700EDEB2E /* WKOpenPanelResultListener.cpp in Sources */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to