Diff
Modified: trunk/Source/WTF/ChangeLog (232081 => 232082)
--- trunk/Source/WTF/ChangeLog 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WTF/ChangeLog 2018-05-22 22:41:06 UTC (rev 232082)
@@ -1,3 +1,17 @@
+2018-05-22 Chris Dumez <[email protected]>
+
+ Regression(AsyncPolicyDelegates): Box.app login Window is blank
+ https://bugs.webkit.org/show_bug.cgi?id=185832
+ <rdar://problem/40307871>
+
+ Reviewed by Geoffrey Garen.
+
+ Moved WeakObjCPtr.h from WebKit2 to WTF with RetainPtr.h, so that it can be used
+ in WebKitLegacy code.
+
+ * WTF.xcodeproj/project.pbxproj:
+ * wtf/WeakObjCPtr.h: Renamed from Source/WebKit/Shared/mac/WeakObjCPtr.h.
+
2018-05-22 Filip Pizlo <[email protected]>
Get rid of TLCs
Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (232081 => 232082)
--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj 2018-05-22 22:41:06 UTC (rev 232082)
@@ -396,6 +396,7 @@
8134013615B092FD001FF0B8 /* Base64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Base64.cpp; sourceTree = "<group>"; };
8134013715B092FD001FF0B8 /* Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = "<group>"; };
83A8AC3D1FABBE94002064AC /* ObjectIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectIdentifier.h; sourceTree = "<group>"; };
+ 83ABB3C020B3823200BA3306 /* WeakObjCPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakObjCPtr.h; sourceTree = "<group>"; };
83F2BADE1CF9524E003E99C3 /* Function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Function.h; sourceTree = "<group>"; };
83FBA93119DF459700F30ADB /* TypeCasts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCasts.h; sourceTree = "<group>"; };
86F46F5F1A2840EE00CCBF22 /* RefCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RefCounter.h; sourceTree = "<group>"; };
@@ -1117,6 +1118,7 @@
A8A47372151A825B004123FF /* VMTags.h */,
0F66B2881DC97BAB004A1D3F /* WallTime.cpp */,
0F66B2891DC97BAB004A1D3F /* WallTime.h */,
+ 83ABB3C020B3823200BA3306 /* WeakObjCPtr.h */,
974CFC8D16A4F327006D5404 /* WeakPtr.h */,
0F3501631BB258C800F0A2A3 /* WeakRandom.h */,
0FE4479A1B7AAA03009498EB /* WordLock.cpp */,
Copied: trunk/Source/WTF/wtf/WeakObjCPtr.h (from rev 232081, trunk/Source/WebKit/Shared/mac/WeakObjCPtr.h) (0 => 232082)
--- trunk/Source/WTF/wtf/WeakObjCPtr.h (rev 0)
+++ trunk/Source/WTF/wtf/WeakObjCPtr.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2013-2018 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.
+ */
+
+#pragma once
+
+#include <objc/runtime.h>
+#include <type_traits>
+#include <wtf/RetainPtr.h>
+
+#if __has_include(<objc/objc-internal.h>)
+#include <objc/objc-internal.h>
+#else
+extern "C" {
+id objc_loadWeakRetained(id*);
+id objc_initWeak(id*, id);
+void objc_destroyWeak(id*);
+void objc_copyWeak(id*, id*);
+void objc_moveWeak(id*, id*);
+}
+#endif
+
+namespace WTF {
+
+template<typename T> class WeakObjCPtr {
+public:
+ typedef typename std::remove_pointer<T>::type ValueType;
+
+ WeakObjCPtr()
+ : m_weakReference(nullptr)
+ {
+ }
+
+ WeakObjCPtr(ValueType *ptr)
+ {
+ objc_initWeak(&m_weakReference, ptr);
+ }
+
+ WeakObjCPtr(const WeakObjCPtr& other)
+ {
+ objc_copyWeak(&m_weakReference, const_cast<id*>(&other.m_weakReference));
+ }
+
+ WeakObjCPtr(WeakObjCPtr&& other)
+ {
+ objc_moveWeak(&m_weakReference, &other.m_weakReference);
+ }
+
+ ~WeakObjCPtr()
+ {
+ objc_destroyWeak(&m_weakReference);
+ }
+
+ WeakObjCPtr& operator=(ValueType *ptr)
+ {
+ objc_storeWeak(&m_weakReference, ptr);
+
+ return *this;
+ }
+
+ bool operator!() const
+ {
+ return !get();
+ }
+
+ RetainPtr<ValueType> get() const
+ {
+ return adoptNS(objc_loadWeakRetained(const_cast<id*>(&m_weakReference)));
+ }
+
+ ValueType *getAutoreleased() const
+ {
+ return static_cast<ValueType *>(objc_loadWeak(const_cast<id*>(&m_weakReference)));
+ }
+
+ explicit operator ValueType *() const { return getAutoreleased(); }
+
+private:
+ id m_weakReference;
+};
+
+} // namespace WTF
+
+using WTF::WeakObjCPtr;
Modified: trunk/Source/WebKit/ChangeLog (232081 => 232082)
--- trunk/Source/WebKit/ChangeLog 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/ChangeLog 2018-05-22 22:41:06 UTC (rev 232082)
@@ -1,3 +1,50 @@
+2018-05-22 Chris Dumez <[email protected]>
+
+ Regression(AsyncPolicyDelegates): Box.app login Window is blank
+ https://bugs.webkit.org/show_bug.cgi?id=185832
+ <rdar://problem/40307871>
+
+ Reviewed by Geoffrey Garen.
+
+ Moved WeakObjCPtr.h header from WebKit/ to wtf/ so that it can be used in
+ WebKitLegacy code.
+
+ * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
+ * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
+ * UIProcess/API/Cocoa/WKConnection.mm:
+ * UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
+ * UIProcess/API/Cocoa/WKProcessGroup.mm:
+ * UIProcess/API/Cocoa/WKProcessPool.mm:
+ * UIProcess/API/Cocoa/WKScriptMessage.mm:
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+ * UIProcess/API/Cocoa/_WKAutomationSession.mm:
+ * UIProcess/API/Cocoa/_WKDownload.mm:
+ * UIProcess/API/Cocoa/_WKElementAction.mm:
+ * UIProcess/ApplicationStateTracker.h:
+ * UIProcess/Cocoa/AutomationClient.h:
+ * UIProcess/Cocoa/AutomationSessionClient.h:
+ * UIProcess/Cocoa/DiagnosticLoggingClient.h:
+ * UIProcess/Cocoa/DownloadClient.h:
+ * UIProcess/Cocoa/FindClient.h:
+ * UIProcess/Cocoa/FullscreenClient.h:
+ * UIProcess/Cocoa/IconLoadingDelegate.h:
+ * UIProcess/Cocoa/NavigationState.h:
+ * UIProcess/Cocoa/UIDelegate.h:
+ * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
+ * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:
+ * UIProcess/Cocoa/WebViewImpl.h:
+ * UIProcess/ios/ViewGestureControllerIOS.mm:
+ * UIProcess/ios/WKActionSheetAssistant.mm:
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ * UIProcess/ios/WKPDFView.mm:
+ (-[WKPDFView web_setContentProviderData:suggestedFilename:]):
+ * UIProcess/ios/WKScrollView.mm:
+ * UIProcess/mac/WKInspectorViewController.mm:
+ * UIProcess/mac/WKInspectorWKWebView.mm:
+ * WebKit.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+
2018-05-22 Sihui Liu <[email protected]>
Conversion between SecurityOriginData and DatabaseIdentifier is asymmetric when port is null
Deleted: trunk/Source/WebKit/Shared/mac/WeakObjCPtr.h (232081 => 232082)
--- trunk/Source/WebKit/Shared/mac/WeakObjCPtr.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/Shared/mac/WeakObjCPtr.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2013 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 WeakObjCPtr_h
-#define WeakObjCPtr_h
-
-#include <objc/runtime.h>
-#include <type_traits>
-#include <wtf/RetainPtr.h>
-
-#if __has_include(<objc/objc-internal.h>)
-#include <objc/objc-internal.h>
-#else
-extern "C" {
-id objc_loadWeakRetained(id*);
-id objc_initWeak(id*, id);
-void objc_destroyWeak(id*);
-void objc_copyWeak(id*, id*);
-void objc_moveWeak(id*, id*);
-}
-#endif
-
-namespace WebKit {
-
-template<typename T> class WeakObjCPtr {
-public:
- typedef typename std::remove_pointer<T>::type ValueType;
-
- WeakObjCPtr()
- : m_weakReference(nullptr)
- {
- }
-
- WeakObjCPtr(ValueType *ptr)
- {
- objc_initWeak(&m_weakReference, ptr);
- }
-
- WeakObjCPtr(const WeakObjCPtr& other)
- {
- objc_copyWeak(&m_weakReference, const_cast<id*>(&other.m_weakReference));
- }
-
- WeakObjCPtr(WeakObjCPtr&& other)
- {
- objc_moveWeak(&m_weakReference, &other.m_weakReference);
- }
-
- ~WeakObjCPtr()
- {
- objc_destroyWeak(&m_weakReference);
- }
-
- WeakObjCPtr& operator=(ValueType *ptr)
- {
- objc_storeWeak(&m_weakReference, ptr);
-
- return *this;
- }
-
- bool operator!() const
- {
- return !get();
- }
-
- RetainPtr<ValueType> get() const
- {
- return adoptNS(objc_loadWeakRetained(const_cast<id*>(&m_weakReference)));
- }
-
- ValueType *getAutoreleased() const
- {
- return static_cast<ValueType *>(objc_loadWeak(const_cast<id*>(&m_weakReference)));
- }
-
- explicit operator ValueType *() const { return getAutoreleased(); }
-
-private:
- id m_weakReference;
-};
-
-} // namespace WebKit
-
-#endif // WeakObjCPtr_h
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -52,7 +52,6 @@
#import "WKURLRequestNS.h"
#import "WKURLResponseNS.h"
#import "WKViewInternal.h"
-#import "WeakObjCPtr.h"
#import "WebCertificateInfo.h"
#import "WebPageProxy.h"
#import "WebProcessPool.h"
@@ -59,6 +58,7 @@
#import "WebProtectionSpace.h"
#import "_WKRemoteObjectRegistryInternal.h"
#import <wtf/NeverDestroyed.h>
+#import <wtf/WeakObjCPtr.h>
using namespace WebCore;
using namespace WebKit;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -27,12 +27,12 @@
#if WK_API_ENABLED
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
+#import <wtf/WeakObjCPtr.h>
@interface WKBrowsingContextController () {
@package
- WebKit::WeakObjCPtr<id <WKBrowsingContextHistoryDelegate>> _historyDelegate;
+ WeakObjCPtr<id <WKBrowsingContextHistoryDelegate>> _historyDelegate;
}
+ (NSMutableSet *)customSchemes;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -32,8 +32,8 @@
#import "WKRetainPtr.h"
#import "WKSharedAPICast.h"
#import "WKStringCF.h"
-#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
#import <wtf/text/WTFString.h>
using namespace WebKit;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -29,12 +29,12 @@
#if WK_API_ENABLED
#import "HTTPCookieAcceptPolicy.h"
-#import "WeakObjCPtr.h"
#import <WebCore/Cookie.h>
#import <WebCore/URL.h>
#import <pal/spi/cf/CFNetworkSPI.h>
#import <wtf/HashMap.h>
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
static NSArray<NSHTTPCookie *> *coreCookiesToNSCookies(const Vector<WebCore::Cookie>& coreCookies)
{
@@ -59,7 +59,7 @@
[m_observer.get() cookiesDidChangeInCookieStore:WebKit::wrapper(cookieStore)];
}
- WebKit::WeakObjCPtr<id<WKHTTPCookieStoreObserver>> m_observer;
+ WeakObjCPtr<id<WKHTTPCookieStoreObserver>> m_observer;
};
@implementation WKHTTPCookieStore {
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -40,11 +40,11 @@
#import "WKNavigationDataInternal.h"
#import "WKRetainPtr.h"
#import "WKStringCF.h"
-#import "WeakObjCPtr.h"
#import "WebCertificateInfo.h"
#import "WebFrameProxy.h"
#import "WebProcessPool.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
#if PLATFORM(IOS)
#import "WKAPICast.h"
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -36,7 +36,6 @@
#import "SandboxUtilities.h"
#import "UIGamepadProvider.h"
#import "WKObject.h"
-#import "WeakObjCPtr.h"
#import "WebCertificateInfo.h"
#import "WebCookieManagerProxy.h"
#import "WebProcessMessages.h"
@@ -50,6 +49,7 @@
#import <pal/spi/cf/CFNetworkSPI.h>
#import <pal/spi/cocoa/NSKeyedArchiverSPI.h>
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
#if PLATFORM(IOS)
#import <WebCore/WebCoreThreadSystemInterface.h>
@@ -59,8 +59,8 @@
static WKProcessPool *sharedProcessPool;
@implementation WKProcessPool {
- WebKit::WeakObjCPtr<id <_WKAutomationDelegate>> _automationDelegate;
- WebKit::WeakObjCPtr<id <_WKDownloadDelegate>> _downloadDelegate;
+ WeakObjCPtr<id <_WKAutomationDelegate>> _automationDelegate;
+ WeakObjCPtr<id <_WKDownloadDelegate>> _downloadDelegate;
RetainPtr<_WKAutomationSession> _automationSession;
#if PLATFORM(IOS)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -29,12 +29,12 @@
#if WK_API_ENABLED
#import "WKFrameInfo.h"
-#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@implementation WKScriptMessage {
RetainPtr<id> _body;
- WebKit::WeakObjCPtr<WKWebView> _webView;
+ WeakObjCPtr<WKWebView> _webView;
RetainPtr<WKFrameInfo> _frameInfo;
RetainPtr<NSString> _name;
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -266,7 +266,7 @@
_WKRenderingProgressEvents _observedRenderingProgressEvents;
- WebKit::WeakObjCPtr<id <_WKInputDelegate>> _inputDelegate;
+ WeakObjCPtr<id <_WKInputDelegate>> _inputDelegate;
#if PLATFORM(IOS)
RetainPtr<_WKRemoteObjectRegistry> _remoteObjectRegistry;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -37,7 +37,6 @@
#import "WKUserContentController.h"
#import "WKWebView.h"
#import "WKWebViewContentProviderRegistry.h"
-#import "WeakObjCPtr.h"
#import "WebKit2Initialize.h"
#import "_WKVisitedLinkStore.h"
#import "_WKWebsiteDataStoreInternal.h"
@@ -45,6 +44,7 @@
#import <WebCore/Settings.h>
#import <WebCore/URLParser.h>
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
#if PLATFORM(IOS)
#import "UIKitSPI.h"
@@ -109,8 +109,8 @@
LazyInitialized<RetainPtr<WKUserContentController>> _userContentController;
LazyInitialized<RetainPtr<_WKVisitedLinkStore>> _visitedLinkStore;
LazyInitialized<RetainPtr<WKWebsiteDataStore>> _websiteDataStore;
- WebKit::WeakObjCPtr<WKWebView> _relatedWebView;
- WebKit::WeakObjCPtr<WKWebView> _alternateWebViewForNavigationGestures;
+ WeakObjCPtr<WKWebView> _relatedWebView;
+ WeakObjCPtr<WKWebView> _alternateWebViewForNavigationGestures;
RetainPtr<NSString> _groupIdentifier;
LazyInitialized<RetainPtr<NSString>> _applicationNameForUserAgent;
LazyInitialized<RetainPtr<NSMutableDictionary<NSString *, id <WKURLSchemeHandler>>>> _urlSchemeHandlers;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,14 +31,14 @@
#import "AutomationSessionClient.h"
#import "WKAPICast.h"
#import "WKProcessPool.h"
-#import "WeakObjCPtr.h"
#import "WebAutomationSession.h"
#import "_WKAutomationSessionConfiguration.h"
#import "_WKAutomationSessionDelegate.h"
+#import <wtf/WeakObjCPtr.h>
@implementation _WKAutomationSession {
RetainPtr<_WKAutomationSessionConfiguration> _configuration;
- WebKit::WeakObjCPtr<id <_WKAutomationSessionDelegate>> _delegate;
+ WeakObjCPtr<id <_WKAutomationSessionDelegate>> _delegate;
}
- (instancetype)init
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -30,7 +30,7 @@
#import "DownloadProxy.h"
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
+#import <wtf/WeakObjCPtr.h>
@implementation _WKDownload {
API::ObjectStorage<WebKit::DownloadProxy> _download;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -33,11 +33,11 @@
#import "GestureTypes.h"
#import "WKActionSheetAssistant.h"
#import "WKContentViewInteraction.h"
-#import "WeakObjCPtr.h"
#import "_WKActivatedElementInfoInternal.h"
#import <WebCore/LocalizedStrings.h>
#import <wtf/RetainPtr.h>
#import <wtf/SoftLinking.h>
+#import <wtf/WeakObjCPtr.h>
#import <wtf/text/WTFString.h>
#if HAVE(SAFARI_SERVICES_FRAMEWORK)
@@ -52,7 +52,7 @@
RetainPtr<NSString> _title;
WKElementActionHandlerInternal _actionHandler;
WKElementActionDismissalHandler _dismissalHandler;
- WebKit::WeakObjCPtr<WKActionSheetAssistant> _defaultActionSheetAssistant;
+ WeakObjCPtr<WKActionSheetAssistant> _defaultActionSheetAssistant;
}
- (id)_initWithTitle:(NSString *)title actionHandler:(WKElementActionHandlerInternal)handler type:(_WKElementActionType)type assistant:(WKActionSheetAssistant *)assistant
Modified: trunk/Source/WebKit/UIProcess/ApplicationStateTracker.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ApplicationStateTracker.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ApplicationStateTracker.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -28,8 +28,8 @@
#if PLATFORM(IOS)
-#import "WeakObjCPtr.h"
#import <wtf/Forward.h>
+#import <wtf/WeakObjCPtr.h>
#import <wtf/WeakPtr.h>
OBJC_CLASS BKSApplicationStateMonitor;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -30,8 +30,8 @@
#if ENABLE(REMOTE_INSPECTOR)
#import "APIAutomationClient.h"
-#import "WeakObjCPtr.h"
#import <_javascript_Core/RemoteInspector.h>
+#import <wtf/WeakObjCPtr.h>
@class WKProcessPool;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,7 +31,7 @@
#if WK_API_ENABLED
#import "APIAutomationSessionClient.h"
-#import "WeakObjCPtr.h"
+#import <wtf/WeakObjCPtr.h>
@protocol _WKAutomationSessionDelegate;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,8 +31,8 @@
#if WK_API_ENABLED
#import "APIDiagnosticLoggingClient.h"
-#import "WeakObjCPtr.h"
#import <WebCore/DiagnosticLoggingResultType.h>
+#import <wtf/WeakObjCPtr.h>
@class WKWebView;
@protocol _WKDiagnosticLoggingDelegate;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/DownloadClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,7 +31,7 @@
#import "APIDownloadClient.h"
#import "ProcessThrottler.h"
-#import "WeakObjCPtr.h"
+#import <wtf/WeakObjCPtr.h>
@protocol _WKDownloadDelegate;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/FindClient.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/FindClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/FindClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,7 +31,7 @@
#if WK_API_ENABLED
#import "APIFindClient.h"
-#import "WeakObjCPtr.h"
+#import <wtf/WeakObjCPtr.h>
@class WKWebView;
@protocol _WKFindDelegate;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -30,8 +30,8 @@
#if WK_API_ENABLED
#import "APIFullscreenClient.h"
-#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
#if PLATFORM(MAC)
@class NSView;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -30,8 +30,8 @@
#if WK_API_ENABLED
#import "APIIconLoadingClient.h"
-#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@class WKWebView;
@protocol _WKIconLoadingDelegate;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -34,9 +34,9 @@
#import "PageLoadState.h"
#import "ProcessTerminationReason.h"
#import "ProcessThrottler.h"
-#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
#import <wtf/RunLoop.h>
+#import <wtf/WeakObjCPtr.h>
@class WKWebView;
@protocol WKHistoryDelegatePrivate;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -29,7 +29,6 @@
#if USE(SYSTEM_PREVIEW)
#import "APIUIClient.h"
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
#import <MobileCoreServices/MobileCoreServices.h>
#import <QuickLook/QuickLook.h>
@@ -36,6 +35,7 @@
#import <UIKit/UIViewController.h>
#import <pal/spi/ios/QuickLookSPI.h>
#import <wtf/SoftLinking.h>
+#import <wtf/WeakObjCPtr.h>
#if USE(APPLE_INTERNAL_SDK)
#import <WebKitAdditions/SystemPreviewTypes.cpp>
@@ -87,7 +87,7 @@
_item = adoptNS([allocQLItemInstance() initWithPreviewItemProvider:_itemProvider.get() contentType:contentType previewTitle:@"Preview" fileSize:@(0)]);
[_item setUseLoadingTimeout:NO];
- WebKit::WeakObjCPtr<_WKPreviewControllerDataSource> weakSelf { self };
+ WeakObjCPtr<_WKPreviewControllerDataSource> weakSelf { self };
[_itemProvider registerItemForTypeIdentifier:contentType loadHandler:[weakSelf = WTFMove(weakSelf)] (NSItemProviderCompletionHandler completionHandler, Class expectedValueClass, NSDictionary * options) {
if (auto strongSelf = weakSelf.get())
[strongSelf setCompletionHandler:completionHandler];
Modified: trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,8 +31,8 @@
#import "APIContextMenuClient.h"
#import "APIUIClient.h"
-#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@class _WKActivatedElementInfo;
@class WKWebView;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -33,7 +33,6 @@
#import "PlaybackSessionManagerProxy.h"
#import "VideoFullscreenManagerMessages.h"
#import "VideoFullscreenManagerProxyMessages.h"
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
#import "WebProcessProxy.h"
#import <QuartzCore/CoreAnimation.h>
@@ -41,6 +40,7 @@
#import <WebCore/TimeRanges.h>
#import <pal/spi/cocoa/QuartzCoreSPI.h>
#import <wtf/MachSendRight.h>
+#import <wtf/WeakObjCPtr.h>
#if PLATFORM(IOS)
#import "RemoteLayerTreeDrawingAreaProxy.h"
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,17 +31,17 @@
#import "_WKErrorRecoveryAttempting.h"
#import "_WKFrameHandleInternal.h"
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
#import "WebFrameProxy.h"
#import "WebPageProxy.h"
#import "WebProcessProxy.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@interface WKReloadFrameErrorRecoveryAttempter () <_WKErrorRecoveryAttempting>
@end
@implementation WKReloadFrameErrorRecoveryAttempter {
- WebKit::WeakObjCPtr<WKWebView> _webView;
+ WeakObjCPtr<WKWebView> _webView;
RetainPtr<_WKFrameHandle> _frameHandle;
String _urlString;
}
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -30,7 +30,6 @@
#include "PluginComplexTextInputState.h"
#include "WKDragDestinationAction.h"
#include "WKLayoutMode.h"
-#include "WeakObjCPtr.h"
#include "WebPageProxy.h"
#include "_WKOverlayScrollbarStyle.h"
#include <WebCore/TextIndicatorWindow.h>
@@ -38,6 +37,7 @@
#include <pal/spi/cocoa/AVKitSPI.h>
#include <wtf/BlockPtr.h>
#include <wtf/RetainPtr.h>
+#include <wtf/WeakObjCPtr.h>
#include <wtf/WeakPtr.h>
#include <wtf/text/WTFString.h>
Modified: trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -35,7 +35,6 @@
#import "ViewSnapshotStore.h"
#import "WKBackForwardListItemInternal.h"
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
#import "WebBackForwardList.h"
#import "WebPageGroup.h"
#import "WebPageMessages.h"
@@ -44,6 +43,7 @@
#import <UIKit/UIScreenEdgePanGestureRecognizer.h>
#import <WebCore/IOSurface.h>
#import <pal/spi/cocoa/QuartzCoreSPI.h>
+#import <wtf/WeakObjCPtr.h>
using namespace WebCore;
@@ -63,7 +63,7 @@
WebKit::ViewGestureController *_gestureController;
RetainPtr<_UINavigationInteractiveTransitionBase> _backTransitionController;
RetainPtr<_UINavigationInteractiveTransitionBase> _forwardTransitionController;
- WebKit::WeakObjCPtr<UIView> _gestureRecognizerView;
+ WeakObjCPtr<UIView> _gestureRecognizerView;
}
static const float swipeSnapshotRemovalRenderTreeSizeTargetFraction = 0.5;
Modified: trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -35,7 +35,6 @@
#import "WKActionSheet.h"
#import "WKContentViewInteraction.h"
#import "WKNSURLExtras.h"
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
#import "_WKActivatedElementInfoInternal.h"
#import "_WKElementActionInternal.h"
@@ -45,6 +44,7 @@
#import <WebCore/PathUtilities.h>
#import <WebCore/WebCoreNSURLExtras.h>
#import <wtf/SoftLinking.h>
+#import <wtf/WeakObjCPtr.h>
#import <wtf/text/WTFString.h>
#if HAVE(APP_LINKS)
Modified: trunk/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -30,12 +30,12 @@
#import "ApplicationStateTracker.h"
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@implementation WKApplicationStateTrackingView {
- WebKit::WeakObjCPtr<WKWebView> _webView;
+ WeakObjCPtr<WKWebView> _webView;
std::unique_ptr<WebKit::ApplicationStateTracker> _applicationStateTracker;
}
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -60,7 +60,6 @@
#import "WKWebViewConfigurationPrivate.h"
#import "WKWebViewInternal.h"
#import "WKWebViewPrivate.h"
-#import "WeakObjCPtr.h"
#import "WebEvent.h"
#import "WebIOSEventFactory.h"
#import "WebPageMessages.h"
@@ -96,6 +95,7 @@
#import <wtf/RetainPtr.h>
#import <wtf/SetForScope.h>
#import <wtf/SoftLinking.h>
+#import <wtf/WeakObjCPtr.h>
#import <wtf/text/TextStream.h>
#if ENABLE(DRAG_SUPPORT)
Modified: trunk/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -37,7 +37,6 @@
#import "WKPDFPageNumberIndicator.h"
#import "WKPasswordView.h"
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
#import "_WKFindDelegate.h"
#import "_WKWebViewPrintFormatterInternal.h"
@@ -48,6 +47,7 @@
#import <pal/spi/cg/CoreGraphicsSPI.h>
#import <wtf/RetainPtr.h>
#import <wtf/Vector.h>
+#import <wtf/WeakObjCPtr.h>
// All of UIPDFPage* are deprecated, so just ignore deprecated declarations
// in this file until we switch off them.
Modified: trunk/Source/WebKit/UIProcess/ios/WKPDFView.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/WKPDFView.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/WKPDFView.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -32,7 +32,6 @@
#import "FindClient.h"
#import "WKActionSheetAssistant.h"
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
#import "WebPageProxy.h"
#import "_WKWebViewPrintFormatterInternal.h"
#import <PDFKit/PDFHostViewController.h>
@@ -40,6 +39,7 @@
#import <wtf/BlockPtr.h>
#import <wtf/MainThread.h>
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@interface WKPDFView () <PDFHostViewControllerDelegate, WKActionSheetAssistantDelegate>
@end
@@ -61,7 +61,7 @@
RetainPtr<NSString> _password;
WebKit::InteractionInformationAtPosition _positionInformation;
RetainPtr<NSString> _suggestedFilename;
- WebKit::WeakObjCPtr<WKWebView> _webView;
+ WeakObjCPtr<WKWebView> _webView;
}
- (void)dealloc
@@ -96,7 +96,7 @@
_data = adoptNS([data copy]);
_suggestedFilename = adoptNS([filename copy]);
- WebKit::WeakObjCPtr<WKPDFView> weakSelf = self;
+ WeakObjCPtr<WKPDFView> weakSelf = self;
[PDFHostViewController createHostView:[self, weakSelf = WTFMove(weakSelf)](PDFHostViewController * _Nullable hostViewController) {
ASSERT(isMainThread());
Modified: trunk/Source/WebKit/UIProcess/ios/WKScrollView.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/ios/WKScrollView.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/ios/WKScrollView.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -29,8 +29,8 @@
#if PLATFORM(IOS)
#import "WKWebViewInternal.h"
-#import "WeakObjCPtr.h"
#import <pal/spi/cg/CoreGraphicsSPI.h>
+#import <wtf/WeakObjCPtr.h>
using namespace WebKit;
Modified: trunk/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -39,10 +39,10 @@
#import "WKUIDelegatePrivate.h"
#import "WKWebViewConfigurationPrivate.h"
#import "WKWebViewPrivate.h"
-#import "WeakObjCPtr.h"
#import "WebInspectorProxy.h"
#import "WebInspectorUtilities.h"
#import "WebPageProxy.h"
+#import <wtf/WeakObjCPtr.h>
using namespace WebKit;
@@ -52,7 +52,7 @@
@implementation WKInspectorViewController {
WebPageProxy* _inspectedPage;
RetainPtr<WKInspectorWKWebView> _webView;
- WebKit::WeakObjCPtr<id <WKInspectorViewControllerDelegate>> _delegate;
+ WeakObjCPtr<id <WKInspectorViewControllerDelegate>> _delegate;
}
- (instancetype)initWithInspectedPage:(WebKit::WebPageProxy* _Nullable)inspectedPage
Modified: trunk/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm (232081 => 232082)
--- trunk/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -29,10 +29,10 @@
#if PLATFORM(MAC) && WK_API_ENABLED
#import "WKInspectorPrivateMac.h"
-#import "WeakObjCPtr.h"
+#import <wtf/WeakObjCPtr.h>
@implementation WKInspectorWKWebView {
- WebKit::WeakObjCPtr<id <WKInspectorWKWebViewDelegate>> _inspectorWKWebViewDelegate;
+ WeakObjCPtr<id <WKInspectorWKWebViewDelegate>> _inspectorWKWebViewDelegate;
}
- (NSInteger)tag
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (232081 => 232082)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2018-05-22 22:41:06 UTC (rev 232082)
@@ -363,7 +363,6 @@
1AA654D11B14F71400BF1D3E /* WKWebsiteDataRecordPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA654D01B14F71400BF1D3E /* WKWebsiteDataRecordPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
1AA83F6C1A5B63FF00026EC6 /* WebDatabaseProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA83F6A1A5B63FF00026EC6 /* WebDatabaseProvider.cpp */; };
1AA83F6D1A5B63FF00026EC6 /* WebDatabaseProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA83F6B1A5B63FF00026EC6 /* WebDatabaseProvider.h */; };
- 1AA9BAE1184FFAC7003B6BC6 /* WeakObjCPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA9BAE0184FFAC7003B6BC6 /* WeakObjCPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
1AAB0379185A7C6A00EDF501 /* MessageSender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AAB0377185A7C6A00EDF501 /* MessageSender.cpp */; };
1AAB037A185A7C6A00EDF501 /* MessageSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AAB0378185A7C6A00EDF501 /* MessageSender.h */; };
1AAB037C185F99D800EDF501 /* APIData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AAB037B185F99D800EDF501 /* APIData.cpp */; };
@@ -2701,7 +2700,6 @@
1AA654D01B14F71400BF1D3E /* WKWebsiteDataRecordPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebsiteDataRecordPrivate.h; sourceTree = "<group>"; };
1AA83F6A1A5B63FF00026EC6 /* WebDatabaseProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebDatabaseProvider.cpp; sourceTree = "<group>"; };
1AA83F6B1A5B63FF00026EC6 /* WebDatabaseProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDatabaseProvider.h; sourceTree = "<group>"; };
- 1AA9BAE0184FFAC7003B6BC6 /* WeakObjCPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakObjCPtr.h; sourceTree = "<group>"; };
1AAB0377185A7C6A00EDF501 /* MessageSender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessageSender.cpp; sourceTree = "<group>"; };
1AAB0378185A7C6A00EDF501 /* MessageSender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageSender.h; sourceTree = "<group>"; };
1AAB037B185F99D800EDF501 /* APIData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIData.cpp; sourceTree = "<group>"; };
@@ -7690,7 +7688,6 @@
E18E6948169B77C8009B6670 /* SecItemShim.h */,
511F8A77138B460900A95F44 /* SecItemShimLibrary.h */,
511F8A78138B460900A95F44 /* SecItemShimLibrary.mm */,
- 1AA9BAE0184FFAC7003B6BC6 /* WeakObjCPtr.h */,
BCE23262122C6CF300D5C35A /* WebCoreArgumentCodersMac.mm */,
BC111B5B112F629800337BAB /* WebEventFactory.h */,
BC111B5C112F629800337BAB /* WebEventFactory.mm */,
@@ -9222,7 +9219,6 @@
1A60224D18C16B9F00C3E8C9 /* VisitedLinkStoreMessages.h in Headers */,
1AF4CEF018BC481800BC2D34 /* VisitedLinkTableController.h in Headers */,
1A8E7D3D18C15149005A702A /* VisitedLinkTableControllerMessages.h in Headers */,
- 1AA9BAE1184FFAC7003B6BC6 /* WeakObjCPtr.h in Headers */,
CEDA12E3152CD1B300D9E08D /* WebAlternativeTextClient.h in Headers */,
9955A6EC1C7980C200EB6A93 /* WebAutomationSession.h in Headers */,
99C3AE2D1DADA6AD00AF5C16 /* WebAutomationSessionMacros.h in Headers */,
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (232081 => 232082)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -53,7 +53,6 @@
#import "WKWebProcessPlugInPageGroupInternal.h"
#import "WKWebProcessPlugInRangeHandleInternal.h"
#import "WKWebProcessPlugInScriptWorldInternal.h"
-#import "WeakObjCPtr.h"
#import "WebPage.h"
#import "WebProcess.h"
#import "_WKRemoteObjectRegistryInternal.h"
@@ -65,6 +64,7 @@
#import <WebCore/HTMLFormElement.h>
#import <WebCore/HTMLInputElement.h>
#import <pal/spi/cocoa/NSKeyedArchiverSPI.h>
+#import <wtf/WeakObjCPtr.h>
using namespace WebCore;
using namespace WebKit;
Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (232081 => 232082)
--- trunk/Source/WebKitLegacy/mac/ChangeLog 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog 2018-05-22 22:41:06 UTC (rev 232082)
@@ -1,3 +1,32 @@
+2018-05-22 Chris Dumez <[email protected]>
+
+ Regression(AsyncPolicyDelegates): Box.app login Window is blank
+ https://bugs.webkit.org/show_bug.cgi?id=185832
+ <rdar://problem/40307871>
+
+ Reviewed by Geoffrey Garen.
+
+ We used to have a bug where where we would fail to wait for the policy decision for
+ the navigation response from the client and the load would keep going, racing with
+ the client's policy decision. If the client did not respond in time, the behavior
+ would be the same as "Use" policy action.
+
+ Box.app fails to make any policy decision in its decidePolicyForMIMEType delegate
+ but the load happened to proceed anyway due to our bug. Now that we've fixed the
+ WebKit bug, however, the load would hang because the completion handler for the
+ decidePolicyForNavigationResponse would never get called.
+
+ To work around the issue, I made the policy listener weak on the WebFrameLoaderClient
+ instead of retaining it. If the policy listener object gets destroyed because getting
+ resolved, we now use "Use" policy action in its dealloc function to maintain previous
+ behavior.
+
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::cancelPolicyCheck):
+ (WebFrameLoaderClient::setUpPolicyListener):
+ (-[WebFramePolicyListener dealloc]):
+
2018-05-22 Ryan Haddad <[email protected]>
Unreviewed, rolling out r232052.
Modified: trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h (232081 => 232082)
--- trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h 2018-05-22 22:41:06 UTC (rev 232082)
@@ -31,6 +31,7 @@
#import <wtf/Forward.h>
#import <wtf/HashMap.h>
#import <wtf/RetainPtr.h>
+#import <wtf/WeakObjCPtr.h>
@class WebDownload;
@class WebFrame;
@@ -260,5 +261,5 @@
RetainPtr<WebFrame> m_webFrame;
- RetainPtr<WebFramePolicyListener> m_policyListener;
+ WeakObjCPtr<WebFramePolicyListener> m_policyListener;
};
Modified: trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm (232081 => 232082)
--- trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -914,8 +914,11 @@
void WebFrameLoaderClient::cancelPolicyCheck()
{
+ if (!m_policyListener)
+ return;
+
[m_policyListener invalidate];
- m_policyListener = nullptr;
+ m_policyListener = nil;
}
void WebFrameLoaderClient::dispatchUnableToImplementPolicy(const ResourceError& error)
@@ -1524,14 +1527,17 @@
// FIXME: <rdar://5634381> We need to support multiple active policy listeners.
[m_policyListener invalidate];
+ RetainPtr<WebFramePolicyListener> policyListener;
#if HAVE(APP_LINKS)
if (appLinkURL)
- m_policyListener = adoptNS([[WebFramePolicyListener alloc] initWithFrame:core(m_webFrame.get()) policyFunction:WTFMove(function) appLinkURL:appLinkURL]);
+ policyListener = adoptNS([[WebFramePolicyListener alloc] initWithFrame:core(m_webFrame.get()) policyFunction:WTFMove(function) appLinkURL:appLinkURL]);
else
#endif
- m_policyListener = adoptNS([[WebFramePolicyListener alloc] initWithFrame:core(m_webFrame.get()) policyFunction:WTFMove(function)]);
+ policyListener = adoptNS([[WebFramePolicyListener alloc] initWithFrame:core(m_webFrame.get()) policyFunction:WTFMove(function)]);
- return m_policyListener;
+ m_policyListener = policyListener.get();
+
+ return policyListener;
}
String WebFrameLoaderClient::userAgent(const URL& url)
@@ -2426,6 +2432,14 @@
if (WebCoreObjCScheduleDeallocateOnMainThread([WebFramePolicyListener class], self))
return;
+ // If the app did not respond before the listener is destroyed, then we let the load
+ // proceed with policy "Use".
+ _frame = nullptr;
+ if (auto policyFunction = std::exchange(_policyFunction, nullptr)) {
+ RELEASE_LOG_ERROR(Loading, "Client application failed to make a policy decision via WebPolicyDecisionListener, letting the load proceed");
+ policyFunction(PolicyAction::Use);
+ }
+
[super dealloc];
}
Modified: trunk/Tools/ChangeLog (232081 => 232082)
--- trunk/Tools/ChangeLog 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Tools/ChangeLog 2018-05-22 22:41:06 UTC (rev 232082)
@@ -1,3 +1,23 @@
+2018-05-22 Chris Dumez <[email protected]>
+
+ Regression(AsyncPolicyDelegates): Box.app login Window is blank
+ https://bugs.webkit.org/show_bug.cgi?id=185832
+ <rdar://problem/40307871>
+
+ Reviewed by Geoffrey Garen.
+
+ Add API test coverage.
+
+ * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+ * TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm:
+ * TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm: Added.
+ (-[NoPolicyDelegateDecisionDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]):
+ (-[NoPolicyDelegateDecisionDelegate webView:decidePolicyForMIMEType:request:frame:decisionListener:]):
+ (-[NoPolicyDelegateDecisionDelegate webView:didFinishLoadForFrame:]):
+ (TestWebKitAPI::TEST):
+ * TestWebKitAPI/cocoa/TestWKWebView.mm:
+ (-[WKWebView _isBackground]):
+
2018-05-22 Sihui Liu <[email protected]>
Conversion between SecurityOriginData and DatabaseIdentifier is asymmetric when port is null
Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (232081 => 232082)
--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2018-05-22 22:41:06 UTC (rev 232082)
@@ -565,6 +565,7 @@
83BAEE8D1EF4625500DDE894 /* PluginLoadClientPolicies.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83BAEE8C1EF4625500DDE894 /* PluginLoadClientPolicies.mm */; };
83DB79691EF63B3C00BFA5E5 /* Function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83DB79671EF63B3C00BFA5E5 /* Function.cpp */; };
83DE134D1EF1C50800C1B355 /* ResponsivenessTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83DE134C1EF1C4FE00C1B355 /* ResponsivenessTimer.cpp */; };
+ 83F22C6420B355F80034277E /* NoPolicyDelegateResponse.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83F22C6320B355EB0034277E /* NoPolicyDelegateResponse.mm */; };
8C10AF98206467920018FD90 /* localstorage-empty-string-value.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 8C10AF97206467830018FD90 /* localstorage-empty-string-value.html */; };
8C10AF99206467A90018FD90 /* LocalStoragePersistence.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8C10AF96206467770018FD90 /* LocalStoragePersistence.mm */; };
8E4A85371E1D1AB200F53B0F /* GridPosition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8E4A85361E1D1AA100F53B0F /* GridPosition.cpp */; };
@@ -1605,6 +1606,7 @@
83BAEE8C1EF4625500DDE894 /* PluginLoadClientPolicies.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginLoadClientPolicies.mm; sourceTree = "<group>"; };
83DB79671EF63B3C00BFA5E5 /* Function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Function.cpp; sourceTree = "<group>"; };
83DE134C1EF1C4FE00C1B355 /* ResponsivenessTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResponsivenessTimer.cpp; sourceTree = "<group>"; };
+ 83F22C6320B355EB0034277E /* NoPolicyDelegateResponse.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NoPolicyDelegateResponse.mm; sourceTree = "<group>"; };
86BD19971A2DB05B006DCF0A /* RefCounter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RefCounter.cpp; sourceTree = "<group>"; };
8A2C750D16CED9550024F352 /* ResizeWindowAfterCrash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResizeWindowAfterCrash.cpp; sourceTree = "<group>"; };
8A3AF93A16C9ED2700D248C1 /* ReloadPageAfterCrash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReloadPageAfterCrash.cpp; sourceTree = "<group>"; };
@@ -3044,6 +3046,7 @@
5C0BF88C1DD5957400B00328 /* MemoryPressureHandler.mm */,
7A99D9931AD4A29D00373141 /* MenuTypesForMouseEvents.mm */,
E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */,
+ 83F22C6320B355EB0034277E /* NoPolicyDelegateResponse.mm */,
A57A34EF16AF677200C2501F /* PageVisibilityStateWithWindowChanges.mm */,
00BC16851680FE810065F1E5 /* PublicSuffix.mm */,
37C784DE197C8F2E0010A496 /* RenderedImageFromDOMNode.mm */,
@@ -3680,6 +3683,7 @@
7CCE7F041A411AE600447C4C /* NewFirstVisuallyNonEmptyLayoutForImages.cpp in Sources */,
7CCE7F051A411AE600447C4C /* NewFirstVisuallyNonEmptyLayoutFrames.cpp in Sources */,
0F5651F71FCE4DDC00310FBC /* NoHistoryItemScrollToFragment.mm in Sources */,
+ 83F22C6420B355F80034277E /* NoPolicyDelegateResponse.mm in Sources */,
2ECFF5551D9B12F800B55394 /* NowPlayingControlsTests.mm in Sources */,
A10F047E1E3AD29C00C95E19 /* NSFileManagerExtras.mm in Sources */,
37A22AA71DCAA27200AFBFC4 /* ObservedRenderingProgressEventsAfterCrash.mm in Sources */,
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm (232081 => 232082)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm 2018-05-22 22:01:34 UTC (rev 232081)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -25,10 +25,8 @@
#import "config.h"
-#import <WebKit/WeakObjCPtr.h>
+#import <wtf/WeakObjCPtr.h>
-using WebKit::WeakObjCPtr;
-
TEST(WebKit2_WeakObjCPtr, Construction)
{
NSObject *object = [[NSObject alloc] init];
Added: trunk/Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm (0 => 232082)
--- trunk/Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm 2018-05-22 22:41:06 UTC (rev 232082)
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2018 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 "PlatformUtilities.h"
+#import <WebKit/WebViewPrivate.h>
+#import <wtf/RetainPtr.h>
+
+@interface NoPolicyDelegateDecisionDelegate : NSObject <WebPolicyDelegate, WebFrameLoadDelegate> {
+}
+@end
+
+static bool didFinishLoad;
+static bool didNavigationActionCheck;
+static bool didNavigationResponseCheck;
+
+@implementation NoPolicyDelegateDecisionDelegate
+
+- (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id<WebPolicyDecisionListener>)listener
+{
+ // Implements decidePolicyForNavigationAction but fails to call the decision listener.
+ didNavigationActionCheck = YES;
+}
+
+- (void)webView:(WebView *)webView decidePolicyForMIMEType:(NSString *)type request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id<WebPolicyDecisionListener>)listener
+{
+ // Implements decidePolicyForMIMEType but fails to call the decision listener.
+ didNavigationResponseCheck = YES;
+}
+
+- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
+{
+ didFinishLoad = true;
+}
+
+@end
+
+namespace TestWebKitAPI {
+
+TEST(WebKitLegacy, NoPolicyDelegateDecision)
+{
+ auto webView = adoptNS([[WebView alloc] initWithFrame:NSZeroRect frameName:nil groupName:nil]);
+ auto delegate = adoptNS([NoPolicyDelegateDecisionDelegate new]);
+
+ webView.get().frameLoadDelegate = delegate.get();
+ webView.get().policyDelegate = delegate.get();
+ [[webView.get() mainFrame] loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"verboseMarkup" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]];
+
+ Util::run(&didFinishLoad);
+
+ EXPECT_TRUE(didNavigationActionCheck);
+ EXPECT_TRUE(didNavigationResponseCheck);
+}
+
+} // namespace TestWebKitAPI