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

Side by Side Diff: ios/chrome/common/physical_web/physical_web_request.mm

Issue 2512613005: [ObjC ARC] Converts ios/chrome/common/physical_web:physical_web to ARC.Automatically generated AR… (Closed)
Patch Set: Created 4 years, 1 month 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "ios/chrome/common/physical_web/physical_web_request.h" 5 #import "ios/chrome/common/physical_web/physical_web_request.h"
6 6
7 #include "base/ios/weak_nsobject.h" 7 #include "base/ios/weak_nsobject.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/mac/scoped_block.h" 10 #include "base/mac/scoped_block.h"
11 #include "base/mac/scoped_nsobject.h" 11 #include "base/mac/scoped_nsobject.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/strings/sys_string_conversions.h" 13 #include "base/strings/sys_string_conversions.h"
14 #include "components/version_info/version_info.h" 14 #include "components/version_info/version_info.h"
15 #include "google_apis/google_api_keys.h" 15 #include "google_apis/google_api_keys.h"
16 #import "ios/chrome/common/physical_web/physical_web_device.h" 16 #import "ios/chrome/common/physical_web/physical_web_device.h"
17 #import "ios/chrome/common/physical_web/physical_web_types.h" 17 #import "ios/chrome/common/physical_web/physical_web_types.h"
18 #include "ios/web/public/user_agent.h" 18 #include "ios/web/public/user_agent.h"
19 19
20 #if !defined(__has_feature) || !__has_feature(objc_arc)
21 #error "This file requires ARC support."
22 #endif
23
20 typedef void (^SessionCompletionProceduralBlock)(NSData* data, 24 typedef void (^SessionCompletionProceduralBlock)(NSData* data,
21 NSURLResponse* response, 25 NSURLResponse* response,
22 NSError* error); 26 NSError* error);
23 27
24 namespace { 28 namespace {
25 29
26 NSString* const kUrlsKey = @"urls"; 30 NSString* const kUrlsKey = @"urls";
27 NSString* const kUrlKey = @"url"; 31 NSString* const kUrlKey = @"url";
28 NSString* const kResultsKey = @"results"; 32 NSString* const kResultsKey = @"results";
29 NSString* const kPageInfoKey = @"pageInfo"; 33 NSString* const kPageInfoKey = @"pageInfo";
(...skipping 26 matching lines...) Expand all
56 base::scoped_nsobject<PhysicalWebDevice> device_; 60 base::scoped_nsobject<PhysicalWebDevice> device_;
57 base::scoped_nsobject<NSMutableURLRequest> request_; 61 base::scoped_nsobject<NSMutableURLRequest> request_;
58 base::scoped_nsobject<NSURLSessionDataTask> urlSessionTask_; 62 base::scoped_nsobject<NSURLSessionDataTask> urlSessionTask_;
59 base::scoped_nsobject<NSMutableData> data_; 63 base::scoped_nsobject<NSMutableData> data_;
60 base::scoped_nsobject<NSDate> startDate_; 64 base::scoped_nsobject<NSDate> startDate_;
61 } 65 }
62 66
63 - (instancetype)initWithDevice:(PhysicalWebDevice*)device { 67 - (instancetype)initWithDevice:(PhysicalWebDevice*)device {
64 self = [super init]; 68 self = [super init];
65 if (self) { 69 if (self) {
66 device_.reset([device retain]); 70 device_.reset(device);
67 } 71 }
68 return self; 72 return self;
69 } 73 }
70 74
71 - (instancetype)init { 75 - (instancetype)init {
72 NOTREACHED(); 76 NOTREACHED();
73 return nil; 77 return nil;
74 } 78 }
75 79
76 - (NSURL*)requestURL { 80 - (NSURL*)requestURL {
(...skipping 11 matching lines...) Expand all
88 92
89 // Creates the HTTP post request. 93 // Creates the HTTP post request.
90 base::scoped_nsobject<NSURLComponents> components( 94 base::scoped_nsobject<NSURLComponents> components(
91 [[NSURLComponents alloc] initWithString:kMetadataServiceUrl]); 95 [[NSURLComponents alloc] initWithString:kMetadataServiceUrl]);
92 NSString* apiKey = 96 NSString* apiKey =
93 [NSString stringWithUTF8String:google_apis::GetAPIKey().c_str()]; 97 [NSString stringWithUTF8String:google_apis::GetAPIKey().c_str()];
94 [components 98 [components
95 setQueryItems:@[ [NSURLQueryItem queryItemWithName:kKeyQueryItemName 99 setQueryItems:@[ [NSURLQueryItem queryItemWithName:kKeyQueryItemName
96 value:apiKey] ]]; 100 value:apiKey] ]];
97 NSURL* url = [components URL]; 101 NSURL* url = [components URL];
98 request_.reset([[NSMutableURLRequest requestWithURL:url] retain]); 102 request_.reset([NSMutableURLRequest requestWithURL:url]);
99 [request_ setHTTPMethod:kHTTPPOSTRequestMethod]; 103 [request_ setHTTPMethod:kHTTPPOSTRequestMethod];
100 104
101 // body of the POST request. 105 // body of the POST request.
102 NSDictionary* jsonBody = 106 NSDictionary* jsonBody =
103 @{ kUrlsKey : @[ @{kUrlKey : [[device_ requestURL] absoluteString]} ] }; 107 @{ kUrlsKey : @[ @{kUrlKey : [[device_ requestURL] absoluteString]} ] };
104 [request_ setHTTPBody:[NSJSONSerialization dataWithJSONObject:jsonBody 108 [request_ setHTTPBody:[NSJSONSerialization dataWithJSONObject:jsonBody
105 options:0 109 options:0
106 error:NULL]]; 110 error:NULL]];
107 [request_ setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 111 [request_ setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
108 [request_ setValue:base::SysUTF8ToNSString(GetUserAgent()) 112 [request_ setValue:base::SysUTF8ToNSString(GetUserAgent())
109 forHTTPHeaderField:@"User-Agent"]; 113 forHTTPHeaderField:@"User-Agent"];
110 114
111 // Set the Accept-Language header from the locale language code. This may 115 // Set the Accept-Language header from the locale language code. This may
112 // cause us to fetch metadata for the wrong region in languages such as 116 // cause us to fetch metadata for the wrong region in languages such as
113 // Chinese that vary significantly between regions. 117 // Chinese that vary significantly between regions.
114 // TODO(mattreynolds): Use the same Accept-Language string as WKWebView. 118 // TODO(mattreynolds): Use the same Accept-Language string as WKWebView.
115 NSString* acceptLanguage = 119 NSString* acceptLanguage =
116 [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]; 120 [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
117 [request_ setValue:acceptLanguage forHTTPHeaderField:@"Acccept-Language"]; 121 [request_ setValue:acceptLanguage forHTTPHeaderField:@"Acccept-Language"];
118 122
119 startDate_.reset([[NSDate date] retain]); 123 startDate_.reset([NSDate date]);
120 // Starts the request. 124 // Starts the request.
121 NSURLSessionConfiguration* sessionConfiguration = 125 NSURLSessionConfiguration* sessionConfiguration =
122 [NSURLSessionConfiguration ephemeralSessionConfiguration]; 126 [NSURLSessionConfiguration ephemeralSessionConfiguration];
123 sessionConfiguration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyNever; 127 sessionConfiguration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyNever;
124 NSURLSession* session = 128 NSURLSession* session =
125 [NSURLSession sessionWithConfiguration:sessionConfiguration 129 [NSURLSession sessionWithConfiguration:sessionConfiguration
126 delegate:nil 130 delegate:nil
127 delegateQueue:[NSOperationQueue mainQueue]]; 131 delegateQueue:[NSOperationQueue mainQueue]];
128 base::WeakNSObject<PhysicalWebRequest> weakSelf(self); 132 base::WeakNSObject<PhysicalWebRequest> weakSelf(self);
129 SessionCompletionProceduralBlock completionHandler = 133 SessionCompletionProceduralBlock completionHandler =
130 ^(NSData* data, NSURLResponse* response, NSError* error) { 134 ^(NSData* data, NSURLResponse* response, NSError* error) {
131 base::scoped_nsobject<PhysicalWebRequest> strongSelf([weakSelf retain]); 135 base::scoped_nsobject<PhysicalWebRequest> strongSelf(weakSelf);
132 if (!strongSelf) { 136 if (!strongSelf) {
133 return; 137 return;
134 } 138 }
135 if (error) { 139 if (error) {
136 [strongSelf callBlockWithError:error jsonObject:nil]; 140 [strongSelf callBlockWithError:error jsonObject:nil];
137 } else { 141 } else {
138 [strongSelf.get()->data_ appendData:data]; 142 [strongSelf.get()->data_ appendData:data];
139 [strongSelf sessionDidFinishLoading]; 143 [strongSelf sessionDidFinishLoading];
140 } 144 }
141 }; 145 };
142 urlSessionTask_.reset([ 146 urlSessionTask_.reset([session dataTaskWithRequest:request_
143 [session dataTaskWithRequest:request_ completionHandler:completionHandler] 147 completionHandler:completionHandler]);
144 retain]);
145 [urlSessionTask_ resume]; 148 [urlSessionTask_ resume];
146 } 149 }
147 150
148 - (void)sessionDidFinishLoading { 151 - (void)sessionDidFinishLoading {
149 NSError* error = nil; 152 NSError* error = nil;
150 NSDictionary* jsonObject = 153 NSDictionary* jsonObject =
151 [NSJSONSerialization JSONObjectWithData:data_ options:0 error:&error]; 154 [NSJSONSerialization JSONObjectWithData:data_ options:0 error:&error];
152 if (error != nil) { 155 if (error != nil) {
153 [self callBlockWithError:error jsonObject:nil]; 156 [self callBlockWithError:error jsonObject:nil];
154 return; 157 return;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 rssi:[device_ rssi] 254 rssi:[device_ rssi]
252 rank:physical_web::kMaxRank 255 rank:physical_web::kMaxRank
253 scanTimestamp:[device_ scanTimestamp]]); 256 scanTimestamp:[device_ scanTimestamp]]);
254 if (block_.get() != nil) { 257 if (block_.get() != nil) {
255 block_.get()(device, nil); 258 block_.get()(device, nil);
256 } 259 }
257 } 260 }
258 } 261 }
259 262
260 @end 263 @end
OLDNEW
« no previous file with comments | « ios/chrome/common/physical_web/physical_web_device.mm ('k') | ios/chrome/common/physical_web/physical_web_scanner.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698