Changeset 220049 in webkit
- Timestamp:
- Jul 30, 2017 10:36:26 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r219994 r220049 1 2017-07-30 Brady Eidson <beidson@apple.com> 2 3 Add URLSchemeHandler API tests that verify the lack of URLSchemeTask object leaks. 4 https://bugs.webkit.org/show_bug.cgi?id=174958 5 6 Reviewed by Darin Adler. 7 8 This patch adds a new template class "InstanceCounted<T>". 9 10 For each specialization, "InstanceCounted" will keep track of the total number of 11 instances in existence. 12 13 This makes explicate leak checking in API tests possible. 14 15 Since this adds some runtime and storage overhead the code that actually does anything 16 is only compiled in debug builds. 17 18 * WTF.xcodeproj/project.pbxproj: 19 * wtf/InstanceCounted.h: Added. 20 (WTF::InstanceCounted::InstanceCounted): 21 (WTF::InstanceCounted::instanceCount): 22 (WTF::InstanceCounted::~InstanceCounted): 23 1 24 2017-07-27 Yusuke Suzuki <utatane.tea@gmail.com> 2 25 -
trunk/Source/WTF/WTF.xcodeproj/project.pbxproj
r219898 r220049 298 298 515F794D1CFC9F4A00CCED93 /* CrossThreadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossThreadTask.h; sourceTree = "<group>"; }; 299 299 515F79551CFD3A6900CCED93 /* CrossThreadQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossThreadQueue.h; sourceTree = "<group>"; }; 300 5182C22C1F2BC7E60059BA7C /* InstanceCounted.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InstanceCounted.h; sourceTree = "<group>"; }; 300 301 5311BD511EA71CAD00525281 /* Signals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Signals.cpp; sourceTree = "<group>"; }; 301 302 5311BD551EA7E15A00525281 /* LocklessBag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocklessBag.h; sourceTree = "<group>"; }; … … 824 825 A8A472BC151A825A004123FF /* InlineASM.h */, 825 826 A70DA0821799F04D00529A9B /* Insertion.h */, 827 5182C22C1F2BC7E60059BA7C /* InstanceCounted.h */, 826 828 7CDD7FF7186D291E007433CD /* IteratorAdaptors.h */, 827 829 7CDD7FF9186D2A54007433CD /* IteratorRange.h */, -
trunk/Source/WebKit/ChangeLog
r220046 r220049 1 2017-07-30 Brady Eidson <beidson@apple.com> 2 3 Add URLSchemeHandler API tests that verify the lack of URLSchemeTask object leaks. 4 https://bugs.webkit.org/show_bug.cgi?id=174958 5 6 Reviewed by Darin Adler. 7 8 * UIProcess/API/APIURLSchemeTask.h: 9 10 * UIProcess/API/C/WKTestingSupport.cpp: 11 (WKGetAPIURLSchemeTaskInstanceCount): 12 (WKGetWebURLSchemeTaskInstanceCount): 13 * UIProcess/API/C/WKTestingSupport.h: 14 15 * UIProcess/WebURLSchemeTask.h: 16 17 * WebKit.xcodeproj/project.pbxproj: 18 1 19 2017-07-29 Yusuke Suzuki <utatane.tea@gmail.com> 2 20 -
trunk/Source/WebKit/UIProcess/API/APIURLSchemeTask.h
r216037 r220049 27 27 28 28 #include "APIObject.h" 29 #include <wtf/InstanceCounted.h> 29 30 30 31 namespace WebKit { … … 34 35 namespace API { 35 36 36 class URLSchemeTask final : public ObjectImpl<Object::Type::URLSchemeTask> {37 class URLSchemeTask final : public ObjectImpl<Object::Type::URLSchemeTask>, public InstanceCounted<URLSchemeTask> { 37 38 public: 38 39 static Ref<URLSchemeTask> create(WebKit::WebURLSchemeTask&); -
trunk/Source/WebKit/UIProcess/API/C/WKTestingSupport.cpp
r220048 r220049 24 24 */ 25 25 26 #pragma once 26 #include "config.h" 27 #include "WKTestingSupport.h" 27 28 28 #include "APIObject.h" 29 #include "APIURLSchemeTask.h" 30 #include "WebURLSchemeTask.h" 29 31 30 namespace WebKit { 31 class WebURLSchemeTask; 32 size_t WKGetAPIURLSchemeTaskInstanceCount() 33 { 34 return API::URLSchemeTask::instanceCount(); 32 35 } 33 36 34 namespace API { 35 36 class URLSchemeTask final : public ObjectImpl<Object::Type::URLSchemeTask> { 37 public: 38 static Ref<URLSchemeTask> create(WebKit::WebURLSchemeTask&); 39 40 WebKit::WebURLSchemeTask& task() { return m_webURLSchemeTask.get(); } 41 42 private: 43 URLSchemeTask(WebKit::WebURLSchemeTask&); 44 45 Ref<WebKit::WebURLSchemeTask> m_webURLSchemeTask; 46 }; 47 37 size_t WKGetWebURLSchemeTaskInstanceCount() 38 { 39 return WebKit::WebURLSchemeTask::instanceCount(); 48 40 } -
trunk/Source/WebKit/UIProcess/API/C/WKTestingSupport.h
r220048 r220049 26 26 #pragma once 27 27 28 #include "APIObject.h"28 #include <WebKit/WKBase.h> 29 29 30 namespace WebKit { 31 class WebURLSchemeTask; 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 WK_EXPORT size_t WKGetAPIURLSchemeTaskInstanceCount(); 35 WK_EXPORT size_t WKGetWebURLSchemeTaskInstanceCount(); 36 37 #ifdef __cplusplus 32 38 } 33 34 namespace API { 35 36 class URLSchemeTask final : public ObjectImpl<Object::Type::URLSchemeTask> { 37 public: 38 static Ref<URLSchemeTask> create(WebKit::WebURLSchemeTask&); 39 40 WebKit::WebURLSchemeTask& task() { return m_webURLSchemeTask.get(); } 41 42 private: 43 URLSchemeTask(WebKit::WebURLSchemeTask&); 44 45 Ref<WebKit::WebURLSchemeTask> m_webURLSchemeTask; 46 }; 47 48 } 39 #endif -
trunk/Source/WebKit/UIProcess/WebURLSchemeTask.h
r220011 r220049 27 27 28 28 #include <WebCore/ResourceRequest.h> 29 #include <wtf/InstanceCounted.h> 29 30 #include <wtf/RefCounted.h> 30 31 #include <wtf/RefPtr.h> … … 41 42 class WebPageProxy; 42 43 43 class WebURLSchemeTask : public RefCounted<WebURLSchemeTask> {44 class WebURLSchemeTask : public RefCounted<WebURLSchemeTask>, public InstanceCounted<WebURLSchemeTask> { 44 45 WTF_MAKE_NONCOPYABLE(WebURLSchemeTask); 45 46 public: -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r220038 r220049 1097 1097 51F7DC43180CC93600212CA3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; }; 1098 1098 51F7DC44180CC93600212CA3 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; 1099 51F886A51F2C227E00C193EF /* WKTestingSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F886A31F2C214A00C193EF /* WKTestingSupport.cpp */; }; 1100 51F886A61F2C228100C193EF /* WKTestingSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F886A41F2C214A00C193EF /* WKTestingSupport.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1099 1101 51FA2D7415212DF100C1BA0B /* InjectedBundleDOMWindowExtension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51FA2D5C15211A5000C1BA0B /* InjectedBundleDOMWindowExtension.cpp */; }; 1100 1102 51FA2D7715212E2600C1BA0B /* WKBundleDOMWindowExtension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51FA2D7515212E1E00C1BA0B /* WKBundleDOMWindowExtension.cpp */; }; … … 3357 3359 51F060DE1654317500F3281B /* WebResourceLoaderMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebResourceLoaderMessages.h; sourceTree = "<group>"; }; 3358 3360 51F7DC4A180CC93600212CA3 /* com.apple.WebKit.Databases.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.Databases.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; 3361 51F886A31F2C214A00C193EF /* WKTestingSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKTestingSupport.cpp; sourceTree = "<group>"; }; 3362 51F886A41F2C214A00C193EF /* WKTestingSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKTestingSupport.h; sourceTree = "<group>"; }; 3359 3363 51FA2D541521118600C1BA0B /* WKBundleDOMWindowExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleDOMWindowExtension.h; sourceTree = "<group>"; }; 3360 3364 51FA2D5A15211A1E00C1BA0B /* InjectedBundleDOMWindowExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleDOMWindowExtension.h; sourceTree = "<group>"; }; … … 7031 7035 1ADE46B01954EC61000F7985 /* WKSessionStateRef.cpp */, 7032 7036 1ADE46B11954EC61000F7985 /* WKSessionStateRef.h */, 7037 51F886A31F2C214A00C193EF /* WKTestingSupport.cpp */, 7038 51F886A41F2C214A00C193EF /* WKTestingSupport.h */, 7033 7039 314888FE1D91B11D00377042 /* WKTextChecker.cpp */, 7034 7040 314888FF1D91B11D00377042 /* WKTextChecker.h */, … … 8897 8903 1AF4592F19464B2000F9D4A2 /* WKError.h in Headers */, 8898 8904 BCFD548C132D82680055D816 /* WKErrorCF.h in Headers */, 8905 51F886A61F2C228100C193EF /* WKTestingSupport.h in Headers */, 8899 8906 37B5045219EEF31300CE2CF8 /* WKErrorPrivate.h in Headers */, 8900 8907 BC4075FC124FF0270068F20A /* WKErrorRef.h in Headers */, … … 9987 9994 51795567162876CB00FA43B6 /* NetworkProcessMac.mm in Sources */, 9988 9995 5163199416289A6000E22F00 /* NetworkProcessMessageReceiver.cpp in Sources */, 9996 51F886A51F2C227E00C193EF /* WKTestingSupport.cpp in Sources */, 9989 9997 E14A954916E016A40068DE82 /* NetworkProcessPlatformStrategies.cpp in Sources */, 9990 9998 5179556D162877B100FA43B6 /* NetworkProcessProxy.cpp in Sources */, -
trunk/Tools/ChangeLog
r220037 r220049 1 2017-07-30 Brady Eidson <beidson@apple.com> 2 3 Add URLSchemeHandler API tests that verify the lack of URLSchemeTask object leaks. 4 https://bugs.webkit.org/show_bug.cgi?id=174958 5 6 Reviewed by Darin Adler. 7 8 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 9 * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-leaks.mm: Added. 10 (-[LeakSchemeHandler webView:startURLSchemeTask:]): 11 (-[LeakSchemeHandler webView:stopURLSchemeTask:]): 12 (runUntilTasksInFlight): 13 (TEST): 14 1 15 2017-07-28 Commit Queue <commit-queue@webkit.org> 2 16 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r219904 r220049 164 164 51714EB81CF8CA17004723C4 /* WebProcessKillIDBCleanup.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51714EB61CF8C7A4004723C4 /* WebProcessKillIDBCleanup.mm */; }; 165 165 517E7E04151119C100D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */; }; 166 5182C22E1F2BCE540059BA7C /* WKURLSchemeHandler-leaks.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5182C22D1F2BCB410059BA7C /* WKURLSchemeHandler-leaks.mm */; }; 166 167 5198A2401EA7E59F008910B7 /* InitialWarmedProcessUsed.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5198A23F1EA7E595008910B7 /* InitialWarmedProcessUsed.mm */; }; 167 168 51A5877D1D1B49CD004BA9AF /* IndexedDBMultiProcess-3.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51A5877C1D1B3D8D004BA9AF /* IndexedDBMultiProcess-3.html */; }; … … 1201 1202 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCachePruneWithinResourceLoadDelegate.mm; sourceTree = "<group>"; }; 1202 1203 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = MemoryCachePruneWithinResourceLoadDelegate.html; sourceTree = "<group>"; }; 1204 5182C22D1F2BCB410059BA7C /* WKURLSchemeHandler-leaks.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = "WKURLSchemeHandler-leaks.mm"; sourceTree = "<group>"; }; 1203 1205 5198A23F1EA7E595008910B7 /* InitialWarmedProcessUsed.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InitialWarmedProcessUsed.mm; sourceTree = "<group>"; }; 1204 1206 51A5877C1D1B3D8D004BA9AF /* IndexedDBMultiProcess-3.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "IndexedDBMultiProcess-3.html"; sourceTree = "<group>"; }; … … 1923 1925 5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */, 1924 1926 51C683DD1EA134DB00650183 /* WKURLSchemeHandler-1.mm */, 1927 5182C22D1F2BCB410059BA7C /* WKURLSchemeHandler-leaks.mm */, 1925 1928 5CE354D81E70D9C300BEFE3B /* WKContentExtensionStore.mm */, 1926 1929 2EFF06D61D8AF34A0004BB30 /* WKWebViewCandidateTests.mm */, … … 3259 3262 7CCE7EAB1A411A2400447C4C /* WebKitAgnosticTest.mm in Sources */, 3260 3263 51714EB81CF8CA17004723C4 /* WebProcessKillIDBCleanup.mm in Sources */, 3264 5182C22E1F2BCE540059BA7C /* WKURLSchemeHandler-leaks.mm in Sources */, 3261 3265 536770341CC8022800D425B1 /* WebScriptObjectDescription.mm in Sources */, 3262 3266 5120C83D1E6751290025B250 /* WebsiteDataStoreCustomPaths.mm in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.