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

Side by Side Diff: android_webview/glue/java/src/com/android/webview/chromium/ServiceWorkerClientAdapter.java

Issue 2298093008: android webview: Upstream android 7 glue layer (Closed)
Patch Set: Created 4 years, 3 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
(Empty)
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
3 // found in the LICENSE file.
4
5 package com.android.webview.chromium;
6
7 import android.annotation.TargetApi;
8 import android.net.Uri;
9 import android.os.Build;
10 import android.webkit.ServiceWorkerClient;
11 import android.webkit.WebResourceRequest;
12 import android.webkit.WebResourceResponse;
13
14 import org.chromium.android_webview.AwContentsClient.AwWebResourceRequest;
15 import org.chromium.android_webview.AwServiceWorkerClient;
16 import org.chromium.android_webview.AwWebResourceResponse;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 /**
22 * An adapter class that forwards the callbacks from {@link AwServiceWorkerClien t}
23 * to the corresponding {@link ServiceWorkerClient}.
24 */
25 @TargetApi(Build.VERSION_CODES.N)
26 public class ServiceWorkerClientAdapter extends AwServiceWorkerClient {
27
28 private ServiceWorkerClient mServiceWorkerClient;
29
30 public ServiceWorkerClientAdapter(ServiceWorkerClient client) {
31 mServiceWorkerClient = client;
32 }
33
34 @Override
35 public AwWebResourceResponse shouldInterceptRequest(AwWebResourceRequest req uest) {
36 WebResourceResponse response = mServiceWorkerClient.shouldInterceptReque st(
37 new WebResourceRequestImpl(request));
38 if (response == null) return null;
39
40 // AwWebResourceResponse should support null headers. b/16332774.
41 Map<String, String> responseHeaders = response.getResponseHeaders();
42 if (responseHeaders == null) responseHeaders = new HashMap<String, Strin g>();
43
44 return new AwWebResourceResponse(
45 response.getMimeType(),
46 response.getEncoding(),
47 response.getData(),
48 response.getStatusCode(),
49 response.getReasonPhrase(),
50 responseHeaders);
51 }
52
53 private static class WebResourceRequestImpl implements WebResourceRequest {
54 private final AwWebResourceRequest mRequest;
55
56 public WebResourceRequestImpl(AwWebResourceRequest request) {
57 mRequest = request;
58 }
59
60 @Override
61 public Uri getUrl() {
62 return Uri.parse(mRequest.url);
63 }
64
65 @Override
66 public boolean isForMainFrame() {
67 return mRequest.isMainFrame;
68 }
69
70 @Override
71 public boolean hasGesture() {
72 return mRequest.hasUserGesture;
73 }
74
75 @Override
76 public String getMethod() {
77 return mRequest.method;
78 }
79
80 @Override
81 public Map<String, String> getRequestHeaders() {
82 return mRequest.requestHeaders;
83 }
84
85 // TODO(mnaganov): Uncomment when we completely switch builds to the nex t API level.
86 //@Override
87 public boolean isRedirect() {
88 return mRequest.isRedirect;
89 }
90 }
91 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698