WebKit Bugzilla
Attachment 340921 Details for
Bug 185832
: Regression(AsyncPolicyDelegates): Box.app login Window is blank
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185832-20180521162906.patch (text/plain), 58.00 KB, created by
Chris Dumez
on 2018-05-21 16:29:07 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-05-21 16:29:07 PDT
Size:
58.00 KB
patch
obsolete
>Subversion Revision: 232025 >diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog >index 44e7a19b3ebc4842f2084973d1fdb348cf25aa84..73efbfa089d7893dc21f94f29452e107705c7c96 100644 >--- a/Source/WTF/ChangeLog >+++ b/Source/WTF/ChangeLog >@@ -1,3 +1,17 @@ >+2018-05-21 Chris Dumez <cdumez@apple.com> >+ >+ Regression(AsyncPolicyDelegates): Box.app login Window is blank >+ https://bugs.webkit.org/show_bug.cgi?id=185832 >+ <rdar://problem/40307871> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-18 Filip Pizlo <fpizlo@apple.com> > > DFG should inline InstanceOf ICs >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 0c6056afd860756ceb07b79faaa3e7140c1331b6..dc01964368efa9856b0f8e447dd47febc97c5226 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,50 @@ >+2018-05-21 Chris Dumez <cdumez@apple.com> >+ >+ Regression(AsyncPolicyDelegates): Box.app login Window is blank >+ https://bugs.webkit.org/show_bug.cgi?id=185832 >+ <rdar://problem/40307871> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-21 Sihui Liu <sihui_liu@apple.com> > > Add a diskCacheSizeOverride accessor function on WKContextConfigurationRef >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index c3d63f3b5808f6d02be3be48019cfc76df7f7650..9fb225f8c2c1027f3dae7c9f4db19c592546fd58 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,32 @@ >+2018-05-21 Chris Dumez <cdumez@apple.com> >+ >+ Regression(AsyncPolicyDelegates): Box.app login Window is blank >+ https://bugs.webkit.org/show_bug.cgi?id=185832 >+ <rdar://problem/40307871> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-21 Jer Noble <jer.noble@apple.com> > > Complete fix for enabling modern EME by default >diff --git a/Source/WTF/WTF.xcodeproj/project.pbxproj b/Source/WTF/WTF.xcodeproj/project.pbxproj >index 55a4c6030f4b7232e03f377deeb603bac0b91dad..aa77fbfb5e171bc47f41c3902ef14ccde7b7c110 100644 >--- a/Source/WTF/WTF.xcodeproj/project.pbxproj >+++ b/Source/WTF/WTF.xcodeproj/project.pbxproj >@@ -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 */, >diff --git a/Source/WTF/wtf/WeakObjCPtr.h b/Source/WTF/wtf/WeakObjCPtr.h >new file mode 100644 >index 0000000000000000000000000000000000000000..f910830b85a18d9f85ecaf1ee35b197255f69ecc >--- /dev/null >+++ b/Source/WTF/wtf/WeakObjCPtr.h >@@ -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; >diff --git a/Source/WebKit/Shared/mac/WeakObjCPtr.h b/Source/WebKit/Shared/mac/WeakObjCPtr.h >deleted file mode 100644 >index 7cf000cfb06ff5691cab4ece19c57c0b8af64d3a..0000000000000000000000000000000000000000 >--- a/Source/WebKit/Shared/mac/WeakObjCPtr.h >+++ /dev/null >@@ -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 >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm b/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm >index 81e4e5231b8e00e1b66a08919d0b52d3d645b5ed..bb6be7e973806adfee39fb9dfa7fc820849af7a5 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm >@@ -52,13 +52,13 @@ > #import "WKURLRequestNS.h" > #import "WKURLResponseNS.h" > #import "WKViewInternal.h" >-#import "WeakObjCPtr.h" > #import "WebCertificateInfo.h" > #import "WebPageProxy.h" > #import "WebProcessPool.h" > #import "WebProtectionSpace.h" > #import "_WKRemoteObjectRegistryInternal.h" > #import <wtf/NeverDestroyed.h> >+#import <wtf/WeakObjCPtr.h> > > using namespace WebCore; > using namespace WebKit; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h b/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h >index 0271f5cdc96c052cd081f083484d204b22a44938..220d0fb3d0964774933ee6d762284e8b0489d62a 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm b/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm >index 736ce9dc83097fd853867934a1d634c28e9e2b91..21d316f71a56204a110fd5add0f3a6b839706e7a 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm >@@ -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; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm >index d0cd5d834dcd0e8ed8866156d836cea563988dc2..0a0863a80f61c6622a21dbed72f967bfd886a31f 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm >@@ -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 @@ private: > [m_observer.get() cookiesDidChangeInCookieStore:WebKit::wrapper(cookieStore)]; > } > >- WebKit::WeakObjCPtr<id<WKHTTPCookieStoreObserver>> m_observer; >+ WeakObjCPtr<id<WKHTTPCookieStoreObserver>> m_observer; > }; > > @implementation WKHTTPCookieStore { >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm b/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm >index e29fc31d8f8f28e8571b86a2b8a32b373bbdc4bb..fb5859a77c0a86067ffd81e3663fee0c4dccb671 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm >@@ -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" >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm b/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm >index a27a7b5eb4b2305f84529f8a1798215ab2655917..807a7c58bbe0a00805dd8bbd4b44025b824336a1 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm >@@ -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) >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm b/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm >index cd5f9102b5bfe9fe4adb0cb5fcd5efbc8c5550ec..63b0e8e4b817d9455be7238e898230828aa1df49 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKScriptMessage.mm >@@ -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; > } >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >index 3a4df7d1a45561d7f61a903a1f2383cd71fbec2a..e988f9a9aa6240c395febc40961663a76abbe1e3 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >@@ -266,7 +266,7 @@ @implementation WKWebView { > > _WKRenderingProgressEvents _observedRenderingProgressEvents; > >- WebKit::WeakObjCPtr<id <_WKInputDelegate>> _inputDelegate; >+ WeakObjCPtr<id <_WKInputDelegate>> _inputDelegate; > > #if PLATFORM(IOS) > RetainPtr<_WKRemoteObjectRegistry> _remoteObjectRegistry; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm >index 94068975fcb2cd9585b24abf0a42d237bfe6f482..14562c41709efa60c813a783624ef15c02f5e2bb 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm >@@ -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 @@ @implementation WKWebViewConfiguration { > 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; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm >index eab108da12ac334e0c7d6b12ba70fac18b1626af..5bc0fead1d95ca8fbb813b92375b64c2c4f5e04c 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm >@@ -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 >diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm >index 152e36ec50ecf383046d30628ab3654894987ff6..38bb7da6007840255a440c9c7acd5983095fc503 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm >@@ -30,7 +30,7 @@ > > #import "DownloadProxy.h" > #import "WKWebViewInternal.h" >-#import "WeakObjCPtr.h" >+#import <wtf/WeakObjCPtr.h> > > @implementation _WKDownload { > API::ObjectStorage<WebKit::DownloadProxy> _download; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm >index ad81d66fb3204bb0f453fd76d1b11079c4b275d2..7fdd6fff368d20308a91d912649a1b76bd6ca9f0 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm >@@ -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 @@ @implementation _WKElementAction { > 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 >diff --git a/Source/WebKit/UIProcess/ApplicationStateTracker.h b/Source/WebKit/UIProcess/ApplicationStateTracker.h >index 696e29031a545802f41305576ed21e7374f6515a..a0e93bdbe76e0f9903296a16ae2c2c8f48b3ed03 100644 >--- a/Source/WebKit/UIProcess/ApplicationStateTracker.h >+++ b/Source/WebKit/UIProcess/ApplicationStateTracker.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/Cocoa/AutomationClient.h b/Source/WebKit/UIProcess/Cocoa/AutomationClient.h >index 0e3e764064cb48e03f006eeb7a4b8555f76ae2ee..4f64b42cfb1cd39d490a48204077356c42177764 100644 >--- a/Source/WebKit/UIProcess/Cocoa/AutomationClient.h >+++ b/Source/WebKit/UIProcess/Cocoa/AutomationClient.h >@@ -30,8 +30,8 @@ > #if ENABLE(REMOTE_INSPECTOR) > > #import "APIAutomationClient.h" >-#import "WeakObjCPtr.h" > #import <JavaScriptCore/RemoteInspector.h> >+#import <wtf/WeakObjCPtr.h> > > @class WKProcessPool; > >diff --git a/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h b/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h >index b2b9d4490ab452604758f92781fe10383a1eef92..7b0f2205e09766423d5cf147b6557f6b1b28a9c5 100644 >--- a/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h >+++ b/Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.h >@@ -31,7 +31,7 @@ > #if WK_API_ENABLED > > #import "APIAutomationSessionClient.h" >-#import "WeakObjCPtr.h" >+#import <wtf/WeakObjCPtr.h> > > @protocol _WKAutomationSessionDelegate; > >diff --git a/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h b/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h >index 8b0937cf6d1927af30ea833d60fdcd672a808f99..f074b7b4dc3759e5a3e7ee2c18778165968371e3 100644 >--- a/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h >+++ b/Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/Cocoa/DownloadClient.h b/Source/WebKit/UIProcess/Cocoa/DownloadClient.h >index 57179ac4bda6e631ebc30e11afbd06fe46051416..1dfe803371804f6deefb6c6f5d3b5d07ccb78059 100644 >--- a/Source/WebKit/UIProcess/Cocoa/DownloadClient.h >+++ b/Source/WebKit/UIProcess/Cocoa/DownloadClient.h >@@ -31,7 +31,7 @@ > > #import "APIDownloadClient.h" > #import "ProcessThrottler.h" >-#import "WeakObjCPtr.h" >+#import <wtf/WeakObjCPtr.h> > > @protocol _WKDownloadDelegate; > >diff --git a/Source/WebKit/UIProcess/Cocoa/FindClient.h b/Source/WebKit/UIProcess/Cocoa/FindClient.h >index 6d46936236a03a609cc5e9fccf669670b765a9c2..4fca562fabaa0430ce2821d77c31affc00553fd6 100644 >--- a/Source/WebKit/UIProcess/Cocoa/FindClient.h >+++ b/Source/WebKit/UIProcess/Cocoa/FindClient.h >@@ -31,7 +31,7 @@ > #if WK_API_ENABLED > > #import "APIFindClient.h" >-#import "WeakObjCPtr.h" >+#import <wtf/WeakObjCPtr.h> > > @class WKWebView; > @protocol _WKFindDelegate; >diff --git a/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h b/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h >index 2ae5294ee8282ec2f6ed841945bbbc3d95f2d26e..a525564df1f548822224d3a8920427680edb6a2f 100644 >--- a/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h >+++ b/Source/WebKit/UIProcess/Cocoa/FullscreenClient.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h b/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h >index 5a0cc1a9d92ede69b507d7ececb905dc3247a7e2..f89fa0ce715fbc7a5244463da5b30fdb2f169a05 100644 >--- a/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h >+++ b/Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/Cocoa/NavigationState.h b/Source/WebKit/UIProcess/Cocoa/NavigationState.h >index 4a9c1cd8aa0bcf6353ba7e6615af2810f0fb2c37..f8f2855949f2d72e922dd9c5ae44f84a546776eb 100644 >--- a/Source/WebKit/UIProcess/Cocoa/NavigationState.h >+++ b/Source/WebKit/UIProcess/Cocoa/NavigationState.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm b/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm >index 3f4e9d54bcd7663fd4480d1653f150910e8d362a..64777543f9d46a24a008033f40ccd5c6fcd3f832 100644 >--- a/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm >+++ b/Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm >@@ -29,13 +29,13 @@ > #if USE(SYSTEM_PREVIEW) > > #import "APIUIClient.h" >-#import "WeakObjCPtr.h" > #import "WebPageProxy.h" > #import <MobileCoreServices/MobileCoreServices.h> > #import <QuickLook/QuickLook.h> > #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 @@ - (id<QLPreviewItem>)previewController:(QLPreviewController *)controller preview > _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]; >diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h >index 2ab5623454dd5829a004f140fb1f8fe9b13df33e..c9d213359a4948c02f664a0f9944522c79b662e7 100644 >--- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h >+++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h >@@ -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; >diff --git a/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm b/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm >index 59886dadd4bd762a66bf1985c6af85cd465dc5ab..ec08b3f700a98cf36aba303815d460ffc77ccf70 100644 >--- a/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm >+++ b/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm >@@ -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" >diff --git a/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm b/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm >index 801815633a36955d2ec5cbb76763978c7b61bb34..5f99aec85da7524ba041e75eb08017399049b212 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm >@@ -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; > } >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >index bf1d95fc5b1797feb7423b36635c9d08da9fb99f..16f53901719b658e87ab877a93aac5335855a999 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >@@ -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> > >diff --git a/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm b/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >index 749838282b057edec5331cd6c6f5545cfdaf7e6e..4b97e32a8c8910c54741aafe742c66b2b3752d58 100644 >--- a/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >+++ b/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >@@ -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 @@ @implementation WKSwipeTransitionController > WebKit::ViewGestureController *_gestureController; > RetainPtr<_UINavigationInteractiveTransitionBase> _backTransitionController; > RetainPtr<_UINavigationInteractiveTransitionBase> _forwardTransitionController; >- WebKit::WeakObjCPtr<UIView> _gestureRecognizerView; >+ WeakObjCPtr<UIView> _gestureRecognizerView; > } > > static const float swipeSnapshotRemovalRenderTreeSizeTargetFraction = 0.5; >diff --git a/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm b/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm >index 81e1412da380eea1d203cbb36c30337d103d38d7..d4557ec013e3ca8c53045748366f1909635ca790 100644 >--- a/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm >+++ b/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm >@@ -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) >diff --git a/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm b/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm >index e04b258d28aeddce6e930f3edc48075531dce887..793a2cd132f18859675900f4161f7ef117969f03 100644 >--- a/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm >+++ b/Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm >@@ -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; > } > >diff --git a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >index 28077747f84c901e437cb75d3992e30af569f6c1..30c46b661e83c001993f8ce852fc4a2b2ea740e6 100644 >--- a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >+++ b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >@@ -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) >diff --git a/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm b/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm >index ec19b2935fce15b92123ae26a9033110762e094f..30bf99d5d11731b9a05f9deeac4853ffd0f97226 100644 >--- a/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm >+++ b/Source/WebKit/UIProcess/ios/WKLegacyPDFView.mm >@@ -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. >diff --git a/Source/WebKit/UIProcess/ios/WKPDFView.mm b/Source/WebKit/UIProcess/ios/WKPDFView.mm >index bc9b2037329c045110599f31c30dedeb6589d98e..a90613e4aa6694037765b6f1a8716940349fd28e 100644 >--- a/Source/WebKit/UIProcess/ios/WKPDFView.mm >+++ b/Source/WebKit/UIProcess/ios/WKPDFView.mm >@@ -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 @@ @implementation WKPDFView { > RetainPtr<NSString> _password; > WebKit::InteractionInformationAtPosition _positionInformation; > RetainPtr<NSString> _suggestedFilename; >- WebKit::WeakObjCPtr<WKWebView> _webView; >+ WeakObjCPtr<WKWebView> _webView; > } > > - (void)dealloc >@@ -96,7 +96,7 @@ - (void)web_setContentProviderData:(NSData *)data suggestedFilename:(NSString *) > _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()); > >diff --git a/Source/WebKit/UIProcess/ios/WKScrollView.mm b/Source/WebKit/UIProcess/ios/WKScrollView.mm >index 88203e6ff27286386428d1360ae9af8ad29247c8..373107bead4035a05f2eeb3bb60e6c2c32ef32eb 100644 >--- a/Source/WebKit/UIProcess/ios/WKScrollView.mm >+++ b/Source/WebKit/UIProcess/ios/WKScrollView.mm >@@ -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; > >diff --git a/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm b/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm >index 05ffc79b8838c0feddc8c2798b108fb2fa210104..f2ad7f8d4ca1aa878ece34c5f586175dbb52ab2c 100644 >--- a/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm >+++ b/Source/WebKit/UIProcess/mac/WKInspectorViewController.mm >@@ -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 @@ @end > @implementation WKInspectorViewController { > WebPageProxy* _inspectedPage; > RetainPtr<WKInspectorWKWebView> _webView; >- WebKit::WeakObjCPtr<id <WKInspectorViewControllerDelegate>> _delegate; >+ WeakObjCPtr<id <WKInspectorViewControllerDelegate>> _delegate; > } > > - (instancetype)initWithInspectedPage:(WebKit::WebPageProxy* _Nullable)inspectedPage >diff --git a/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm b/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm >index 3cee2c0c4d06184e6d93c5cf7719efa5ddd9b845..cb7bb9179e382be570fbf745b0baa815bb00a857 100644 >--- a/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm >+++ b/Source/WebKit/UIProcess/mac/WKInspectorWKWebView.mm >@@ -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 >diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >index f175622fb5e495fe8980a7462b83613af3a359d4..a5ecb334e78deb6ef4e4cd0ce26f50bb6dcfea03 100644 >--- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj >+++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >@@ -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 */, >diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm b/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm >index 98796e9fa16447d048a0e94fc44a22681f50129b..866db450d67caaa61f8e70d0bd2b34ea57598e76 100644 >--- a/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm >+++ b/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm >@@ -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; >diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >index a2c7932f68269976c2933694c3eedc6029652dd1..4c9d41f45d1fe0c53fe1a2c6ffcc17aad587018b 100644 >--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >@@ -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 @@ private: > > RetainPtr<WebFrame> m_webFrame; > >- RetainPtr<WebFramePolicyListener> m_policyListener; >+ WeakObjCPtr<WebFramePolicyListener> m_policyListener; > }; >diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >index 1a411348a8eb6c77d87edafcdc49ed1859b5f616..5e465d7af5326a6c2460fdf89051d29608ff7d7f 100644 >--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >@@ -914,8 +914,11 @@ void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const Navigat > > 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 @@ RetainPtr<WebFramePolicyListener> WebFrameLoaderClient::setUpPolicyListener(Fram > // 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)]); >+ >+ m_policyListener = policyListener.get(); > >- return m_policyListener; >+ return policyListener; > } > > String WebFrameLoaderClient::userAgent(const URL& url) >@@ -2426,6 +2432,14 @@ - (void)dealloc > 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]; > } > >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index db55e3c883da710b03e8cd9a1f22b97987cc671c..e67a4b95f4ad69f72be4adc8ab6bce34c25aabc3 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,23 @@ >+2018-05-21 Chris Dumez <cdumez@apple.com> >+ >+ Regression(AsyncPolicyDelegates): Box.app login Window is blank >+ https://bugs.webkit.org/show_bug.cgi?id=185832 >+ <rdar://problem/40307871> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-21 Jer Noble <jer.noble@apple.com> > > Complete fix for enabling modern EME by default >diff --git a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj >index 0372673c68009200fbb179812d8dcc90a870df38..5d2dc3595648bcf7a3791da266081e9207034aca 100644 >--- a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj >+++ b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj >@@ -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 */; }; >@@ -1604,6 +1605,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>"; }; >@@ -3041,6 +3043,7 @@ > 5C0BF88C1DD5957400B00328 /* MemoryPressureHandler.mm */, > 7A99D9931AD4A29D00373141 /* MenuTypesForMouseEvents.mm */, > E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */, >+ 83F22C6320B355EB0034277E /* NoPolicyDelegateResponse.mm */, > A57A34EF16AF677200C2501F /* PageVisibilityStateWithWindowChanges.mm */, > 00BC16851680FE810065F1E5 /* PublicSuffix.mm */, > 37C784DE197C8F2E0010A496 /* RenderedImageFromDOMNode.mm */, >@@ -3676,6 +3679,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 */, >diff --git a/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm b/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm >index 4835419ef0b4a30ea3d72eb7647a023d0b1ee118..3fc1f7f0baa2a66f4f827613e419aa27d6c0d089 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm >+++ b/Tools/TestWebKitAPI/Tests/WebKit/cocoa/WeakObjCPtr.mm >@@ -25,9 +25,7 @@ > > #import "config.h" > >-#import <WebKit/WeakObjCPtr.h> >- >-using WebKit::WeakObjCPtr; >+#import <wtf/WeakObjCPtr.h> > > TEST(WebKit2_WeakObjCPtr, Construction) > { >diff --git a/Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm b/Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm >new file mode 100644 >index 0000000000000000000000000000000000000000..cbc3ac6339b81fc88a3144b51a2b91135d991190 >--- /dev/null >+++ b/Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm >@@ -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
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185832
:
340874
|
340876
|
340885
|
340887
|
340888
|
340901
|
340909
|
340916
|
340920
| 340921