Changeset 196082 in webkit
- Timestamp:
- Feb 3, 2016 2:57:43 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r196080 r196082 1 2016-02-03 Jer Noble <jer.noble@apple.com> 2 3 [Mac] Wrap a resource and resource loader in a NSURLSession-like object for use by lower level frameworks 4 https://bugs.webkit.org/show_bug.cgi?id=153669 5 6 Reviewed by Alex Christensen. 7 8 API Test: WebCore.WebCoreNSURLSession 9 10 Add a NSURLSession-like object, which wraps a CachedResourceLoader and CachedRawResource, which we can 11 hand to lower-level frameworks, so that network loads by those frameworks use WebKit's loader. 12 13 * platform/network/cocoa/WebCoreNSURLSession.h: Added. 14 * platform/network/cocoa/WebCoreNSURLSession.mm: Added. 15 (-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]): 16 (-[WebCoreNSURLSession dealloc]): 17 (-[WebCoreNSURLSession copyWithZone:]): 18 (-[WebCoreNSURLSession delegateQueue]): 19 (-[WebCoreNSURLSession configuration]): 20 (-[WebCoreNSURLSession loader]): 21 (-[WebCoreNSURLSession finishTasksAndInvalidate]): 22 (-[WebCoreNSURLSession invalidateAndCancel]): 23 (-[WebCoreNSURLSession resetWithCompletionHandler:]): 24 (-[WebCoreNSURLSession flushWithCompletionHandler:]): 25 (-[WebCoreNSURLSession getTasksWithCompletionHandler:]): 26 (-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]): 27 (-[WebCoreNSURLSession dataTaskWithRequest:]): 28 (-[WebCoreNSURLSession dataTaskWithURL:]): 29 (-[WebCoreNSURLSession uploadTaskWithRequest:fromFile:]): 30 (-[WebCoreNSURLSession uploadTaskWithRequest:fromData:]): 31 (-[WebCoreNSURLSession uploadTaskWithStreamedRequest:]): 32 (-[WebCoreNSURLSession downloadTaskWithRequest:]): 33 (-[WebCoreNSURLSession downloadTaskWithURL:]): 34 (-[WebCoreNSURLSession downloadTaskWithResumeData:]): 35 (-[WebCoreNSURLSession streamTaskWithHostName:port:]): 36 (-[WebCoreNSURLSession streamTaskWithNetService:]): 37 (-[WebCoreNSURLSession isKindOfClass:]): 38 39 Add a C++ class which can act as a CachedRawResourceClient, passing the results back to a WebCoreNSURLSessionDataTask: 40 41 (WebCore::WebCoreNSURLSessionDataTaskClient::WebCoreNSURLSessionDataTaskClient): 42 (WebCore::WebCoreNSURLSessionDataTaskClient::dataSent): 43 (WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived): 44 (WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived): 45 (WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived): 46 (WebCore::WebCoreNSURLSessionDataTaskClient::notifyFinished): 47 48 Add a NSURLSessionDataTask-like object, which takes a request, then uses it to create and wrap a CachedRawResource. 49 Becase NSURSessionDataTask is intended to be used off-main-thread, care must be taken to dispatch back to the main- 50 (or web-) thread before calling CachedRawResource functions. 51 52 (-[WebCoreNSURLSessionDataTask initWithSession:identifier:URL:]): 53 (-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]): 54 (-[WebCoreNSURLSessionDataTask copyWithZone:]): 55 (-[WebCoreNSURLSessionDataTask _restart]): 56 (-[WebCoreNSURLSessionDataTask _cancel]): 57 (-[WebCoreNSURLSessionDataTask _finish]): 58 (-[WebCoreNSURLSessionDataTask _setDefersLoading:]): 59 (-[WebCoreNSURLSessionDataTask cancel]): 60 (-[WebCoreNSURLSessionDataTask suspend]): 61 (-[WebCoreNSURLSessionDataTask resume]): 62 (-[WebCoreNSURLSessionDataTask _timingData]): 63 (-[WebCoreNSURLSessionDataTask resource:sentBytes:totalBytesToBeSent:]): 64 (-[WebCoreNSURLSessionDataTask resource:receivedResponse:]): 65 (-[WebCoreNSURLSessionDataTask resource:receivedData:length:]): 66 (-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]): 67 (-[WebCoreNSURLSessionDataTask resourceFinished:]): 68 * WebCore.xcodeproj/project.pbxproj: Add new files to project. 69 1 70 2016-02-03 Darin Adler <darin@apple.com> 2 71 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r196031 r196082 5991 5991 CD1B4A65160786AE00282DF9 /* MediaKeyNeededEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDA98DC216014EEE00FEA3B1 /* MediaKeyNeededEvent.cpp */; }; 5992 5992 CD1E7347167BC78E009A885D /* TextTrackRepresentation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD1E7346167BC78E009A885D /* TextTrackRepresentation.cpp */; }; 5993 CD225C0B1C46FBF400140761 /* WebCoreNSURLSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD225C091C46FBF400140761 /* WebCoreNSURLSession.mm */; }; 5994 CD225C0C1C46FBF400140761 /* WebCoreNSURLSession.h in Headers */ = {isa = PBXBuildFile; fileRef = CD225C0A1C46FBF400140761 /* WebCoreNSURLSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5993 5995 CD27F6E51457685A0078207D /* JSMediaController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD27F6E2145767580078207D /* JSMediaController.cpp */; }; 5994 5996 CD27F6E7145770D30078207D /* MediaController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD27F6E6145770D30078207D /* MediaController.cpp */; }; … … 13881 13883 CD19A2671A13E700008D650E /* DiagnosticLoggingClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagnosticLoggingClient.h; sourceTree = "<group>"; }; 13882 13884 CD1E7346167BC78E009A885D /* TextTrackRepresentation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackRepresentation.cpp; sourceTree = "<group>"; }; 13885 CD225C091C46FBF400140761 /* WebCoreNSURLSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreNSURLSession.mm; sourceTree = "<group>"; }; 13886 CD225C0A1C46FBF400140761 /* WebCoreNSURLSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreNSURLSession.h; sourceTree = "<group>"; }; 13883 13887 CD27F6E014575C1B0078207D /* MediaController.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = MediaController.idl; sourceTree = "<group>"; }; 13884 13888 CD27F6E2145767580078207D /* JSMediaController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaController.cpp; sourceTree = "<group>"; }; … … 18069 18073 7E7DE1FC195CEF260035363B /* ResourceRequestCocoa.mm */, 18070 18074 A1F78D0B1C25422C00245446 /* ResourceResponseCocoa.mm */, 18075 CD225C091C46FBF400140761 /* WebCoreNSURLSession.mm */, 18076 CD225C0A1C46FBF400140761 /* WebCoreNSURLSession.h */, 18071 18077 ); 18072 18078 path = cocoa; … … 27475 27481 E4295FA412B0614E00D1ACE0 /* ResourceLoadPriority.h in Headers */, 27476 27482 8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */, 27483 CD225C0C1C46FBF400140761 /* WebCoreNSURLSession.h in Headers */, 27477 27484 7EE6846D12D26E3800E79415 /* ResourceRequest.h in Headers */, 27478 27485 514C767D0CE923A1007EF3CD /* ResourceRequestBase.h in Headers */, … … 28922 28929 FD31600112B0267600C1A359 /* ChannelSplitterNode.cpp in Sources */, 28923 28930 6550B69F099DF0270090D781 /* CharacterData.cpp in Sources */, 28931 CD225C0B1C46FBF400140761 /* WebCoreNSURLSession.mm in Sources */, 28924 28932 9326DC0C09DAD5D600AFC847 /* CharsetData.cpp in Sources */, 28925 28933 F55B3DB11251F12D003EF269 /* CheckboxInputType.cpp in Sources */, -
trunk/Tools/ChangeLog
r196065 r196082 1 2016-02-03 Jer Noble <jer.noble@apple.com> 2 3 [Mac] Wrap a resource and resource loader in a NSURLSession-like object for use by lower level frameworks 4 https://bugs.webkit.org/show_bug.cgi?id=153669 5 6 Reviewed by Alex Christensen. 7 8 Add an API test for WebCoreNSURLSession, testing that it behaves like a regulare NSURLSession, including 9 calling appropriate NSURLSessionDelegate callbacks. 10 11 Drive-by fix: Add a FeatureDefines.xcconfig to TestWebKitAPI. Without this, the ENABLE macros in WebCore 12 header files will not match the one used when compiling WebCore, leading to strange crashes and weird 13 inconsistencies when calling, e.g., inline methods. 14 15 * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added. 16 * TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: 17 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 18 * TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm: Added. 19 (-[TestNSURLSessionLoaderDelegate webView:didCommitLoadForFrame:]): 20 (-[TestNSURLSessionDataDelegate URLSession:task:didCompleteWithError:]): 21 (-[TestNSURLSessionDataDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): 22 (-[TestNSURLSessionDataDelegate URLSession:dataTask:didReceiveData:]): 23 (TestWebKitAPI::WebCoreNSURLSessionTest::SetUp): 24 (TestWebKitAPI::WebCoreNSURLSessionTest::TearDown): 25 (TestWebKitAPI::TEST_F): 26 1 27 2016-02-03 Konstantin Tokarev <annulen@yandex.ru> 2 28 -
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig
r192801 r196082 22 22 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 23 24 #include "FeatureDefines.xcconfig" 25 24 26 PRODUCT_NAME = TestWebKitAPI; 25 27 GCC_ENABLE_OBJC_EXCEPTIONS = YES; -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r195764 r196082 317 317 CD59F53419E9110D00CF1835 /* file-with-mse.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD59F53219E910AA00CF1835 /* file-with-mse.html */; }; 318 318 CD59F53519E9110D00CF1835 /* test-mse.mp4 in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD59F53319E910BC00CF1835 /* test-mse.mp4 */; }; 319 CD89D03A1C4EDB2A00040A04 /* WebCoreNSURLSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD89D0381C4EDB2A00040A04 /* WebCoreNSURLSession.mm */; }; 319 320 CDBFCC451A9FF45300A7B691 /* FullscreenZoomInitialFrame.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDBFCC431A9FF44800A7B691 /* FullscreenZoomInitialFrame.mm */; }; 320 321 CDBFCC461A9FF49E00A7B691 /* FullscreenZoomInitialFrame.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CDBFCC421A9FF44800A7B691 /* FullscreenZoomInitialFrame.html */; }; … … 792 793 CD59F53219E910AA00CF1835 /* file-with-mse.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "file-with-mse.html"; sourceTree = "<group>"; }; 793 794 CD59F53319E910BC00CF1835 /* test-mse.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "test-mse.mp4"; sourceTree = "<group>"; }; 795 CD773F711C5057DB0002257C /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; }; 796 CD89D0381C4EDB2A00040A04 /* WebCoreNSURLSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreNSURLSession.mm; sourceTree = "<group>"; }; 794 797 CDBFCC421A9FF44800A7B691 /* FullscreenZoomInitialFrame.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = FullscreenZoomInitialFrame.html; sourceTree = "<group>"; }; 795 798 CDBFCC431A9FF44800A7B691 /* FullscreenZoomInitialFrame.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FullscreenZoomInitialFrame.mm; sourceTree = "<group>"; }; … … 984 987 isa = PBXGroup; 985 988 children = ( 989 CD89D0371C4EDB1300040A04 /* cocoa */, 986 990 93A720E518F1A0E800A848E1 /* CalculationValue.cpp */, 987 991 7CB184C41AA3F2100066EDFD /* ContentExtensions.cpp */, … … 1093 1097 BC90957E12554CF900083756 /* Base.xcconfig */, 1094 1098 BC90957F12554CF900083756 /* DebugRelease.xcconfig */, 1099 CD773F711C5057DB0002257C /* FeatureDefines.xcconfig */, 1095 1100 BC575AE2126E88B1006F0F12 /* InjectedBundle.xcconfig */, 1096 1101 BC90958012554CF900083756 /* TestWebKitAPI.xcconfig */, … … 1464 1469 ); 1465 1470 path = mac; 1471 sourceTree = "<group>"; 1472 }; 1473 CD89D0371C4EDB1300040A04 /* cocoa */ = { 1474 isa = PBXGroup; 1475 children = ( 1476 CD89D0381C4EDB2A00040A04 /* WebCoreNSURLSession.mm */, 1477 ); 1478 name = cocoa; 1466 1479 sourceTree = "<group>"; 1467 1480 }; … … 1845 1858 2E7765CF16C4D81100BA2BB1 /* mainMac.mm in Sources */, 1846 1859 41973B5B1AF2286A006C7B36 /* FileSystem.cpp in Sources */, 1860 CD89D03A1C4EDB2A00040A04 /* WebCoreNSURLSession.mm in Sources */, 1847 1861 A1C4FB6E1BACCE50003742D0 /* QuickLook.mm in Sources */, 1848 1862 7A5623111AD5AF3E0096B920 /* MenuTypesForMouseEvents.cpp in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.