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

Side by Side Diff: sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java

Issue 1157783002: Update to newer network service implementation and mojoms from monet (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 6 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 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 package org.domokit.oknet; 5 package org.domokit.oknet;
6 6
7 import android.util.Log; 7 import android.util.Log;
8 8
9 import com.squareup.okhttp.Call; 9 import com.squareup.okhttp.Call;
10 import com.squareup.okhttp.Callback; 10 import com.squareup.okhttp.Callback;
11 import com.squareup.okhttp.Headers; 11 import com.squareup.okhttp.Headers;
12 import com.squareup.okhttp.MediaType; 12 import com.squareup.okhttp.MediaType;
13 import com.squareup.okhttp.OkHttpClient; 13 import com.squareup.okhttp.OkHttpClient;
14 import com.squareup.okhttp.Request; 14 import com.squareup.okhttp.Request;
15 import com.squareup.okhttp.Response; 15 import com.squareup.okhttp.Response;
16 import com.squareup.okhttp.ResponseBody; 16 import com.squareup.okhttp.ResponseBody;
17 17
18 import org.chromium.base.TraceEvent; 18 import org.chromium.base.TraceEvent;
19 import org.chromium.mojo.system.Core; 19 import org.chromium.mojo.system.Core;
20 import org.chromium.mojo.system.DataPipe; 20 import org.chromium.mojo.system.DataPipe;
21 import org.chromium.mojo.system.MojoException; 21 import org.chromium.mojo.system.MojoException;
22 import org.chromium.mojo.system.MojoResult; 22 import org.chromium.mojo.system.MojoResult;
23 import org.chromium.mojo.system.Pair; 23 import org.chromium.mojo.system.Pair;
24 import org.chromium.mojom.mojo.HttpHeader;
24 import org.chromium.mojom.mojo.NetworkError; 25 import org.chromium.mojom.mojo.NetworkError;
25 import org.chromium.mojom.mojo.UrlLoader; 26 import org.chromium.mojom.mojo.UrlLoader;
26 import org.chromium.mojom.mojo.UrlLoaderStatus; 27 import org.chromium.mojom.mojo.UrlLoaderStatus;
27 import org.chromium.mojom.mojo.UrlRequest; 28 import org.chromium.mojom.mojo.UrlRequest;
28 import org.chromium.mojom.mojo.UrlResponse; 29 import org.chromium.mojom.mojo.UrlResponse;
29 30
30 import java.io.IOException; 31 import java.io.IOException;
31 import java.nio.ByteBuffer; 32 import java.nio.ByteBuffer;
32 import java.nio.charset.Charset; 33 import java.nio.charset.Charset;
33 import java.util.concurrent.Executor; 34 import java.util.concurrent.Executor;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 @Override 114 @Override
114 public void start(UrlRequest request, StartResponse callback) { 115 public void start(UrlRequest request, StartResponse callback) {
115 TraceEvent.startAsync("UrlLoaderImpl", mTracingId); 116 TraceEvent.startAsync("UrlLoaderImpl", mTracingId);
116 mIsLoading = true; 117 mIsLoading = true;
117 mError = null; 118 mError = null;
118 119
119 Request.Builder builder = 120 Request.Builder builder =
120 new Request.Builder().url(request.url).method(request.method, nu ll); 121 new Request.Builder().url(request.url).method(request.method, nu ll);
121 122
122 if (request.headers != null) { 123 if (request.headers != null) {
123 for (String header : request.headers) { 124 for (HttpHeader header : request.headers) {
124 String[] parts = header.split(":"); 125 builder.addHeader(header.name, header.value);
125 String name = parts[0].trim();
126 String value = parts.length > 1 ? parts[1].trim() : "";
127 builder.addHeader(name, value);
128 } 126 }
129 } 127 }
130 128
131 // TODO(abarth): body, responseBodyBufferSize, autoFollowRedirects, bypa ssCache. 129 // TODO(abarth): body, responseBodyBufferSize, autoFollowRedirects, bypa ssCache.
132 final StartResponse responseCallback = callback; 130 final StartResponse responseCallback = callback;
133 Call call = mClient.newCall(builder.build()); 131 Call call = mClient.newCall(builder.build());
134 call.enqueue(new Callback() { 132 call.enqueue(new Callback() {
135 @Override 133 @Override
136 public void onFailure(Request request, IOException e) { 134 public void onFailure(Request request, IOException e) {
137 Log.w(TAG, "Network failure loading " + request.urlString()); 135 Log.w(TAG, "Network failure loading " + request.urlString());
(...skipping 15 matching lines...) Expand all
153 urlResponse.url = response.request().urlString(); 151 urlResponse.url = response.request().urlString();
154 urlResponse.statusCode = response.code(); 152 urlResponse.statusCode = response.code();
155 urlResponse.statusLine = response.message(); 153 urlResponse.statusLine = response.message();
156 154
157 if (urlResponse.statusCode >= 400) { 155 if (urlResponse.statusCode >= 400) {
158 Log.w(TAG, "Failed to load: " + urlResponse.url + " (" 156 Log.w(TAG, "Failed to load: " + urlResponse.url + " ("
159 + urlResponse.statusCode + ")"); 157 + urlResponse.statusCode + ")");
160 } 158 }
161 159
162 Headers headers = response.headers(); 160 Headers headers = response.headers();
163 urlResponse.headers = new String[headers.size()]; 161 urlResponse.headers = new HttpHeader[headers.size()];
164 for (int i = 0; i < headers.size(); ++i) { 162 for (int i = 0; i < headers.size(); ++i) {
165 String name = headers.name(i); 163 HttpHeader header = new HttpHeader();
166 String value = headers.value(i); 164 header.name = headers.name(i);
167 urlResponse.headers[i] = name + ": " + value; 165 header.value = headers.value(i);
166 urlResponse.headers[i] = header;
168 } 167 }
169 168
170 ResponseBody body = response.body(); 169 ResponseBody body = response.body();
171 MediaType mediaType = body.contentType(); 170 MediaType mediaType = body.contentType();
172 if (mediaType != null) { 171 if (mediaType != null) {
173 urlResponse.mimeType = mediaType.type() + "/" + mediaType.su btype(); 172 urlResponse.mimeType = mediaType.type() + "/" + mediaType.su btype();
174 Charset charset = mediaType.charset(); 173 Charset charset = mediaType.charset();
175 if (charset != null) 174 if (charset != null) {
176 urlResponse.charset = charset.displayName(); 175 urlResponse.charset = charset.displayName();
176 }
177 } 177 }
178 178
179 Pair<DataPipe.ProducerHandle, DataPipe.ConsumerHandle> handles = 179 Pair<DataPipe.ProducerHandle, DataPipe.ConsumerHandle> handles =
180 mCore.createDataPipe(null); 180 mCore.createDataPipe(null);
181 DataPipe.ProducerHandle producerHandle = handles.first; 181 DataPipe.ProducerHandle producerHandle = handles.first;
182 DataPipe.ConsumerHandle consumerHandle = handles.second; 182 DataPipe.ConsumerHandle consumerHandle = handles.second;
183 urlResponse.body = consumerHandle; 183 urlResponse.body = consumerHandle;
184 responseCallback.call(urlResponse); 184 responseCallback.call(urlResponse);
185 mExecutor.execute(new CopyToPipeJob(body, producerHandle)); 185 mExecutor.execute(new CopyToPipeJob(body, producerHandle));
186 } 186 }
187 }); 187 });
188 } 188 }
189 189
190 @Override 190 @Override
191 public void followRedirect(FollowRedirectResponse callback) { 191 public void followRedirect(FollowRedirectResponse callback) {
192 // TODO(abarth): Implement redirects. 192 // TODO(abarth): Implement redirects.
193 callback.call(new UrlResponse()); 193 callback.call(new UrlResponse());
194 } 194 }
195 195
196 @Override 196 @Override
197 public void queryStatus(QueryStatusResponse callback) { 197 public void queryStatus(QueryStatusResponse callback) {
198 UrlLoaderStatus status = new UrlLoaderStatus(); 198 UrlLoaderStatus status = new UrlLoaderStatus();
199 status.error = mError; 199 status.error = mError;
200 status.isLoading = mIsLoading; 200 status.isLoading = mIsLoading;
201 callback.call(status); 201 callback.call(status);
202 } 202 }
203 } 203 }
OLDNEW
« no previous file with comments | « sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java ('k') | sky/services/platform/url_request_types.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698