Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: chrome/installer/mac/app/OmahaCommunication.m

Issue 2203583002: Added unpacking step (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added use of temporary folders, removed semaphore from main installer code, adjusted some files' APIs, resolved remaining comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "OmahaCommunication.h" 5 #import "OmahaCommunication.h"
6 6
7 #import "OmahaXMLRequest.h" 7 #import "OmahaXMLRequest.h"
8 #import "OmahaXMLParser.h" 8 #import "OmahaXMLParser.h"
9 9
10 // TODO: turn this string to a command-line flag
10 static NSString* const omahaURLPath = 11 static NSString* const omahaURLPath =
11 @"https://tools.google.com/service/update2"; 12 @"https://tools.google.com/service/update2";
12 13
13 @interface NSURLSession () 14 @interface NSURLSession ()
14 - (NSURLSessionDataTask*)dataTaskWithRequest:(NSURLRequest*)request 15 - (NSURLSessionDataTask*)dataTaskWithRequest:(NSURLRequest*)request
15 completionHandler: 16 completionHandler:
16 (void (^)(NSData* data, 17 (void (^)(NSData* data,
17 NSURLResponse* response, 18 NSURLResponse* response,
18 NSError* error))completionHandler; 19 NSError* error))completionHandler;
19 @end 20 @end
20 21
21 @implementation OmahaCommunication 22 @implementation OmahaCommunication
22 23
23 @synthesize requestXMLBody = requestXMLBody_; 24 @synthesize requestXMLBody = requestXMLBody_;
24 @synthesize delegate = delegate_; 25 @synthesize delegate = delegate_;
25 26
26 - (id)init { 27 - (id)init {
27 return [self initWithBody:[OmahaXMLRequest createXMLRequestBody]]; 28 return [self initWithBody:[OmahaXMLRequest createXMLRequestBody]];
28 } 29 }
29 30
30 - (id)initWithBody:(NSXMLDocument*)xmlBody { 31 - (id)initWithBody:(NSXMLDocument*)xmlBody {
31 if ((self = [super init])) { 32 if ((self = [super init])) {
32 requestXMLBody_ = xmlBody; 33 requestXMLBody_ = xmlBody;
33 } 34 }
34 return self; 35 return self;
35 } 36 }
36 37
37 - (void)fetchDownloadURLs { 38 - (void)fetchDownloadURLs {
38 // TODO: turn this string to a command-line flag 39 // Forming the request
39 NSURL* requestURL = [NSURL URLWithString:omahaURLPath]; 40 NSURL* requestURL = [NSURL URLWithString:omahaURLPath];
40 NSMutableURLRequest* request = 41 NSMutableURLRequest* request =
41 [NSMutableURLRequest requestWithURL:requestURL]; 42 [NSMutableURLRequest requestWithURL:requestURL];
42 [request addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"]; 43 [request addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
43 NSData* requestBody = 44 NSData* requestBody =
44 [[requestXMLBody_ XMLString] dataUsingEncoding:NSUTF8StringEncoding]; 45 [[requestXMLBody_ XMLString] dataUsingEncoding:NSUTF8StringEncoding];
45 request.HTTPBody = requestBody; 46 request.HTTPBody = requestBody;
46 request.HTTPMethod = @"POST"; 47 request.HTTPMethod = @"POST";
48 // Sending the request
47 [[[NSURLSession sharedSession] 49 [[[NSURLSession sharedSession]
48 dataTaskWithRequest:request 50 dataTaskWithRequest:request
49 completionHandler:^(NSData* data, NSURLResponse* response, 51 completionHandler:^(NSData* data, NSURLResponse* response,
50 NSError* error) { 52 NSError* error) {
51 NSArray* completeURLs = nil; 53 NSArray* completeURLs = nil;
52 if (!error) { 54 if (!error) {
53 completeURLs = [OmahaXMLParser parseXML:data error:&error]; 55 completeURLs = [OmahaXMLParser parseXML:data error:&error];
54 } 56 }
55 // Deals with errors both from the network error and the 57 // Deals with errors both from the network error and the
56 // parsing error, as the user only needs to know there was a problem 58 // parsing error, as the user only needs to know there was a problem
57 // talking with the Google Update server. 59 // talking with the Google Update server.
58 if (error) { 60 if (error) {
59 [delegate_ onOmahaFailureWithError:error]; 61 [delegate_ omahaCommunication:self onOmahaFailureWithError:error];
60 } else { 62 } else {
61 [delegate_ onOmahaSuccessWithURLs:completeURLs]; 63 [delegate_ omahaCommunication:self
64 onOmahaSuccessWithURLs:completeURLs];
62 } 65 }
63 }] resume]; 66 }] resume];
64 } 67 }
65 68
66 @end 69 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698