Bug 177625

Summary: [WK2][NetworkSession] Add support for resuming downloads
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebKit2Assignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, beidson, buildbot, commit-queue, dbates, ggaren, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 177667, 183134    
Bug Blocks:    
Attachments:
Description Flags
WIP Patch
none
WIP Patch
none
WIP Patch
none
WIP Patch
none
WIP Patch
none
WIP Patch
none
WIP Patch
none
WIP Patch
none
WIP Patch
none
Patch
none
Patch none

Chris Dumez
Reported 2017-09-28 15:02:41 PDT
Add support for resuming downloads for the WK2 NETWORK_SESSION code path.
Attachments
WIP Patch (13.49 KB, patch)
2017-09-28 15:03 PDT, Chris Dumez
no flags
WIP Patch (13.82 KB, patch)
2017-09-28 15:38 PDT, Chris Dumez
no flags
WIP Patch (14.15 KB, patch)
2017-09-28 15:53 PDT, Chris Dumez
no flags
WIP Patch (14.27 KB, patch)
2017-09-28 16:05 PDT, Chris Dumez
no flags
WIP Patch (14.21 KB, patch)
2017-09-28 16:19 PDT, Chris Dumez
no flags
WIP Patch (13.93 KB, patch)
2017-09-28 16:33 PDT, Chris Dumez
no flags
WIP Patch (14.62 KB, patch)
2017-09-29 15:54 PDT, Chris Dumez
no flags
WIP Patch (13.87 KB, patch)
2017-09-29 16:04 PDT, Chris Dumez
no flags
WIP Patch (13.92 KB, patch)
2017-10-03 15:55 PDT, Chris Dumez
no flags
Patch (16.23 KB, patch)
2017-10-04 14:07 PDT, Chris Dumez
no flags
Patch (16.53 KB, patch)
2017-10-05 09:09 PDT, Chris Dumez
no flags
Chris Dumez
Comment 1 2017-09-28 15:02:57 PDT
Chris Dumez
Comment 2 2017-09-28 15:03:55 PDT
Created attachment 322122 [details] WIP Patch
Build Bot
Comment 3 2017-09-28 15:06:05 PDT
Attachment 322122 [details] did not pass style-queue: ERROR: Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:44: No space between ^ and block definition. [whitespace/brackets] [4] ERROR: Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:45: Missing space after , [whitespace/comma] [3] Total errors found: 2 in 8 files If any of these errors are false positives, please file a bug against check-webkit-style.
Chris Dumez
Comment 4 2017-09-28 15:38:28 PDT
Created attachment 322129 [details] WIP Patch
Build Bot
Comment 5 2017-09-28 15:41:16 PDT
Attachment 322129 [details] did not pass style-queue: ERROR: Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:44: No space between ^ and block definition. [whitespace/brackets] [4] ERROR: Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:45: Missing space after , [whitespace/comma] [3] Total errors found: 2 in 8 files If any of these errors are false positives, please file a bug against check-webkit-style.
Chris Dumez
Comment 6 2017-09-28 15:53:56 PDT
Created attachment 322132 [details] WIP Patch
Chris Dumez
Comment 7 2017-09-28 16:05:33 PDT
Created attachment 322134 [details] WIP Patch
Chris Dumez
Comment 8 2017-09-28 16:19:57 PDT
Created attachment 322138 [details] WIP Patch
Chris Dumez
Comment 9 2017-09-28 16:33:29 PDT
Created attachment 322141 [details] WIP Patch
Alex Christensen
Comment 10 2017-09-28 17:03:11 PDT
Chris Dumez
Comment 11 2017-09-29 15:54:00 PDT
Created attachment 322248 [details] WIP Patch
Chris Dumez
Comment 12 2017-09-29 16:04:37 PDT
Created attachment 322250 [details] WIP Patch
Chris Dumez
Comment 13 2017-10-03 15:55:56 PDT
Created attachment 322600 [details] WIP Patch
Chris Dumez
Comment 14 2017-10-04 14:07:07 PDT
Daniel Bates
Comment 15 2017-10-04 23:44:16 PDT
Comment on attachment 322726 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=322726&action=review > Source/WebKit/ChangeLog:13 > + when cancelling an download over non-HTTP. an => a > Source/WebKit/ChangeLog:23 > + (WebKit::Download::resume): Please mention the workaround here. > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:46 > + WTFLogAlways("Could not find network session with given sessionID"); sessionID => session ID Would it be helpful to include the value of m_sessionID in the logged message? > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:53 > + NSMutableDictionary *dictionary = [NSPropertyListSerialization propertyListWithData:nsData.get() options:NSPropertyListImmutable format:0 error:NULL]; NULL => nullptr (Since this is Objective-C++) > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:54 > + [dictionary setObject:(NSString *)path forKey:@"NSURLSessionResumeInfoLocalPath"]; static_cast<NSString*>(...) (Since this is Objective-C++) > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:55 > + NSData *updatedData = [NSPropertyListSerialization dataWithPropertyList:dictionary format:NSPropertyListXMLFormat_v1_0 options:0 error:NULL]; NULL => nullptr > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:63 > + NSURLSessionDownloadTask *downloadTaskWithResumeData(NSData *); * is on the wrong side. > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:279 > + WebCore::AuthenticationChallenge authenticationChallenge(challenge); Uniform initializer syntax? > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:677 > +NSURLSessionDownloadTask *NetworkSessionCocoa::downloadTaskWithResumeData(NSData *resumeData) *s are on the wrong side since this is a C++ member function.
Chris Dumez
Comment 16 2017-10-05 09:09:44 PDT
Chris Dumez
Comment 17 2017-10-05 09:10:42 PDT
(In reply to Daniel Bates from comment #15) > Comment on attachment 322726 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=322726&action=review > > > Source/WebKit/ChangeLog:13 > > + when cancelling an download over non-HTTP. > > an => a > > > Source/WebKit/ChangeLog:23 > > + (WebKit::Download::resume): > > Please mention the workaround here. > > > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:46 > > + WTFLogAlways("Could not find network session with given sessionID"); > > sessionID => session ID > > Would it be helpful to include the value of m_sessionID in the logged > message? > > > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:53 > > + NSMutableDictionary *dictionary = [NSPropertyListSerialization propertyListWithData:nsData.get() options:NSPropertyListImmutable format:0 error:NULL]; > > NULL => nullptr > > (Since this is Objective-C++) > > > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:54 > > + [dictionary setObject:(NSString *)path forKey:@"NSURLSessionResumeInfoLocalPath"]; > > static_cast<NSString*>(...) > > (Since this is Objective-C++) > > > Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:55 > > + NSData *updatedData = [NSPropertyListSerialization dataWithPropertyList:dictionary format:NSPropertyListXMLFormat_v1_0 options:0 error:NULL]; > > NULL => nullptr > > > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:63 > > + NSURLSessionDownloadTask *downloadTaskWithResumeData(NSData *); > > * is on the wrong side. > > > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:279 > > + WebCore::AuthenticationChallenge authenticationChallenge(challenge); > > Uniform initializer syntax? > > > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:677 > > +NSURLSessionDownloadTask *NetworkSessionCocoa::downloadTaskWithResumeData(NSData *resumeData) > > *s are on the wrong side since this is a C++ member function. Thanks, I merged all review comments.
Chris Dumez
Comment 18 2017-10-16 12:31:52 PDT
Alex, ping review?
WebKit Commit Bot
Comment 19 2017-10-16 13:29:39 PDT
Comment on attachment 322842 [details] Patch Clearing flags on attachment: 322842 Committed r223431: <https://trac.webkit.org/changeset/223431>
WebKit Commit Bot
Comment 20 2017-10-16 13:29:40 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.