ContentSettingsAdapter.java revision f2036938bc8f731e42e69d1956a490b607cf865f
1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.webview.chromium;
18
19import android.util.Log;
20import android.webkit.WebSettings.LayoutAlgorithm;
21import android.webkit.WebSettings.PluginState;
22import android.webkit.WebSettings.RenderPriority;
23import android.webkit.WebSettings.TextSize;
24import android.webkit.WebSettings.ZoomDensity;
25
26import org.chromium.android_webview.AwSettings;
27
28public class ContentSettingsAdapter extends android.webkit.WebSettings {
29
30    private static final String TAG = ContentSettingsAdapter.class.getSimpleName();
31
32    private AwSettings mAwSettings;
33
34    public ContentSettingsAdapter(AwSettings awSettings) {
35        mAwSettings = awSettings;
36    }
37
38    @Override
39    @Deprecated
40    public void setNavDump(boolean enabled) {
41        // Intentional no-op.
42    }
43
44    @Override
45    @Deprecated
46    public boolean getNavDump() {
47        // Intentional no-op.
48        return false;
49    }
50
51    @Override
52    public void setSupportZoom(boolean support) {
53        mAwSettings.setSupportZoom(support);
54    }
55
56    @Override
57    public boolean supportZoom() {
58        return mAwSettings.supportZoom();
59    }
60
61    @Override
62    public void setBuiltInZoomControls(boolean enabled) {
63        mAwSettings.setBuiltInZoomControls(enabled);
64    }
65
66    @Override
67    public boolean getBuiltInZoomControls() {
68        return mAwSettings.getBuiltInZoomControls();
69    }
70
71    @Override
72    public void setDisplayZoomControls(boolean enabled) {
73        mAwSettings.setDisplayZoomControls(enabled);
74    }
75
76    @Override
77    public boolean getDisplayZoomControls() {
78        return mAwSettings.getDisplayZoomControls();
79    }
80
81    @Override
82    public void setAllowFileAccess(boolean allow) {
83        mAwSettings.setAllowFileAccess(allow);
84    }
85
86    @Override
87    public boolean getAllowFileAccess() {
88        return mAwSettings.getAllowFileAccess();
89    }
90
91    @Override
92    public void setAllowContentAccess(boolean allow) {
93        mAwSettings.setAllowContentAccess(allow);
94    }
95
96    @Override
97    public boolean getAllowContentAccess() {
98        return mAwSettings.getAllowContentAccess();
99    }
100
101    @Override
102    public void setLoadWithOverviewMode(boolean overview) {
103        mAwSettings.setLoadWithOverviewMode(overview);
104    }
105
106    @Override
107    public boolean getLoadWithOverviewMode() {
108        return mAwSettings.getLoadWithOverviewMode();
109    }
110
111    @Override
112    public void setEnableSmoothTransition(boolean enable) {
113        // Intentional no-op.
114    }
115
116    @Override
117    public boolean enableSmoothTransition() {
118        // Intentional no-op.
119        return false;
120    }
121
122    @Override
123    public void setUseWebViewBackgroundForOverscrollBackground(boolean view) {
124        // Intentional no-op.
125    }
126
127    @Override
128    public boolean getUseWebViewBackgroundForOverscrollBackground() {
129        // Intentional no-op.
130        return false;
131    }
132
133    @Override
134    public void setSaveFormData(boolean save) {
135        mAwSettings.setSaveFormData(save);
136    }
137
138    @Override
139    public boolean getSaveFormData() {
140        return mAwSettings.getSaveFormData();
141    }
142
143    @Override
144    public void setSavePassword(boolean save) {
145        // Intentional no-op.
146    }
147
148    @Override
149    public boolean getSavePassword() {
150        // Intentional no-op.
151        return false;
152    }
153
154    @Override
155    public synchronized void setTextZoom(int textZoom) {
156        mAwSettings.setTextZoom(textZoom);
157    }
158
159    @Override
160    public synchronized int getTextZoom() {
161        return mAwSettings.getTextZoom();
162    }
163
164    @Override
165    public void setDefaultZoom(ZoomDensity zoom) {
166        UnimplementedWebViewApi.invoke();
167    }
168
169    @Override
170    public ZoomDensity getDefaultZoom() {
171        UnimplementedWebViewApi.invoke();
172        return null;
173    }
174
175    @Override
176    public void setLightTouchEnabled(boolean enabled) {
177        // Intentional no-op.
178    }
179
180    @Override
181    public boolean getLightTouchEnabled() {
182        // Intentional no-op.
183        return false;
184    }
185
186    @Override
187    public synchronized void setUserAgent(int ua) {
188        // Minimal implementation for backwards compatibility: just supports resetting to default.
189        if (ua == 0) {
190            setUserAgentString(null);
191        } else {
192            Log.w(TAG, "setUserAgent not suported, ua=" + ua);
193        }
194    }
195
196    @Override
197    public synchronized int getUserAgent() {
198        // Minimal implementation for backwards compatibility: just identifies default vs custom.
199        return AwSettings.getDefaultUserAgent().equals(getUserAgentString()) ? 0 : -1;
200    }
201
202    @Override
203    public synchronized void setUseWideViewPort(boolean use) {
204        mAwSettings.setUseWideViewPort(use);
205    }
206
207    @Override
208    public synchronized boolean getUseWideViewPort() {
209        return mAwSettings.getUseWideViewPort();
210    }
211
212    @Override
213    public synchronized void setSupportMultipleWindows(boolean support) {
214        mAwSettings.setSupportMultipleWindows(support);
215    }
216
217    @Override
218    public synchronized boolean supportMultipleWindows() {
219        return mAwSettings.supportMultipleWindows();
220    }
221
222    @Override
223    public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
224        // TODO: Remove the upstream enum and mapping once the new value is in the public API.
225        final AwSettings.LayoutAlgorithm[] chromiumValues = {
226            AwSettings.LayoutAlgorithm.NORMAL,
227            AwSettings.LayoutAlgorithm.SINGLE_COLUMN,
228            AwSettings.LayoutAlgorithm.NARROW_COLUMNS,
229            AwSettings.LayoutAlgorithm.TEXT_AUTOSIZING
230        };
231        mAwSettings.setLayoutAlgorithm(chromiumValues[l.ordinal()]);
232    }
233
234    @Override
235    public synchronized LayoutAlgorithm getLayoutAlgorithm() {
236        // TODO: Remove the upstream enum and mapping once the new value is in the public API.
237        final LayoutAlgorithm[] webViewValues = {
238            LayoutAlgorithm.NORMAL,
239            LayoutAlgorithm.SINGLE_COLUMN,
240            LayoutAlgorithm.NARROW_COLUMNS,
241            LayoutAlgorithm.TEXT_AUTOSIZING
242        };
243        return webViewValues[mAwSettings.getLayoutAlgorithm().ordinal()];
244    }
245
246    @Override
247    public synchronized void setStandardFontFamily(String font) {
248        mAwSettings.setStandardFontFamily(font);
249    }
250
251    @Override
252    public synchronized String getStandardFontFamily() {
253        return mAwSettings.getStandardFontFamily();
254    }
255
256    @Override
257    public synchronized void setFixedFontFamily(String font) {
258        mAwSettings.setFixedFontFamily(font);
259    }
260
261    @Override
262    public synchronized String getFixedFontFamily() {
263        return mAwSettings.getFixedFontFamily();
264    }
265
266    @Override
267    public synchronized void setSansSerifFontFamily(String font) {
268        mAwSettings.setSansSerifFontFamily(font);
269    }
270
271    @Override
272    public synchronized String getSansSerifFontFamily() {
273        return mAwSettings.getSansSerifFontFamily();
274    }
275
276    @Override
277    public synchronized void setSerifFontFamily(String font) {
278        mAwSettings.setSerifFontFamily(font);
279    }
280
281    @Override
282    public synchronized String getSerifFontFamily() {
283        return mAwSettings.getSerifFontFamily();
284    }
285
286    @Override
287    public synchronized void setCursiveFontFamily(String font) {
288        mAwSettings.setCursiveFontFamily(font);
289    }
290
291    @Override
292    public synchronized String getCursiveFontFamily() {
293        return mAwSettings.getCursiveFontFamily();
294    }
295
296    @Override
297    public synchronized void setFantasyFontFamily(String font) {
298        mAwSettings.setFantasyFontFamily(font);
299    }
300
301    @Override
302    public synchronized String getFantasyFontFamily() {
303        return mAwSettings.getFantasyFontFamily();
304    }
305
306    @Override
307    public synchronized void setMinimumFontSize(int size) {
308        mAwSettings.setMinimumFontSize(size);
309    }
310
311    @Override
312    public synchronized int getMinimumFontSize() {
313        return mAwSettings.getMinimumFontSize();
314    }
315
316    @Override
317    public synchronized void setMinimumLogicalFontSize(int size) {
318        mAwSettings.setMinimumLogicalFontSize(size);
319    }
320
321    @Override
322    public synchronized int getMinimumLogicalFontSize() {
323        return mAwSettings.getMinimumLogicalFontSize();
324    }
325
326    @Override
327    public synchronized void setDefaultFontSize(int size) {
328        mAwSettings.setDefaultFontSize(size);
329    }
330
331    @Override
332    public synchronized int getDefaultFontSize() {
333        return mAwSettings.getDefaultFontSize();
334    }
335
336    @Override
337    public synchronized void setDefaultFixedFontSize(int size) {
338        mAwSettings.setDefaultFixedFontSize(size);
339    }
340
341    @Override
342    public synchronized int getDefaultFixedFontSize() {
343        return mAwSettings.getDefaultFixedFontSize();
344    }
345
346    @Override
347    public synchronized void setLoadsImagesAutomatically(boolean flag) {
348        mAwSettings.setLoadsImagesAutomatically(flag);
349    }
350
351    @Override
352    public synchronized boolean getLoadsImagesAutomatically() {
353        return mAwSettings.getLoadsImagesAutomatically();
354    }
355
356    @Override
357    public synchronized void setBlockNetworkImage(boolean flag) {
358        mAwSettings.setImagesEnabled(!flag);
359    }
360
361    @Override
362    public synchronized boolean getBlockNetworkImage() {
363        return !mAwSettings.getImagesEnabled();
364    }
365
366    @Override
367    public synchronized void setBlockNetworkLoads(boolean flag) {
368        mAwSettings.setBlockNetworkLoads(flag);
369    }
370
371    @Override
372    public synchronized boolean getBlockNetworkLoads() {
373        return mAwSettings.getBlockNetworkLoads();
374    }
375
376    @Override
377    public synchronized void setJavaScriptEnabled(boolean flag) {
378        mAwSettings.setJavaScriptEnabled(flag);
379    }
380
381    @Override
382    public void setAllowUniversalAccessFromFileURLs(boolean flag) {
383        mAwSettings.setAllowUniversalAccessFromFileURLs(flag);
384    }
385
386    @Override
387    public void setAllowFileAccessFromFileURLs(boolean flag) {
388        mAwSettings.setAllowFileAccessFromFileURLs(flag);
389    }
390
391    @Override
392    public synchronized void setPluginsEnabled(boolean flag) {
393        mAwSettings.setPluginsEnabled(flag);
394    }
395
396    @Override
397    public synchronized void setPluginState(PluginState state) {
398        mAwSettings.setPluginState(state);
399    }
400
401    @Override
402    public synchronized void setDatabasePath(String databasePath) {
403        // Intentional no-op.
404    }
405
406    @Override
407    public synchronized void setGeolocationDatabasePath(String databasePath) {
408        // Intentional no-op.
409    }
410
411    @Override
412    public synchronized void setAppCacheEnabled(boolean flag) {
413        mAwSettings.setAppCacheEnabled(flag);
414    }
415
416    @Override
417    public synchronized void setAppCachePath(String appCachePath) {
418        mAwSettings.setAppCachePath(appCachePath);
419    }
420
421    @Override
422    public synchronized void setAppCacheMaxSize(long appCacheMaxSize) {
423        // Intentional no-op.
424    }
425
426    @Override
427    public synchronized void setDatabaseEnabled(boolean flag) {
428        mAwSettings.setDatabaseEnabled(flag);
429    }
430
431    @Override
432    public synchronized void setDomStorageEnabled(boolean flag) {
433        mAwSettings.setDomStorageEnabled(flag);
434    }
435
436    @Override
437    public synchronized boolean getDomStorageEnabled() {
438        return mAwSettings.getDomStorageEnabled();
439    }
440
441    @Override
442    public synchronized String getDatabasePath() {
443        // Intentional no-op.
444        return "";
445    }
446
447    @Override
448    public synchronized boolean getDatabaseEnabled() {
449        return mAwSettings.getDatabaseEnabled();
450    }
451
452    @Override
453    public synchronized void setGeolocationEnabled(boolean flag) {
454        mAwSettings.setGeolocationEnabled(flag);
455    }
456
457    @Override
458    public synchronized boolean getJavaScriptEnabled() {
459        return mAwSettings.getJavaScriptEnabled();
460    }
461
462    @Override
463    public boolean getAllowUniversalAccessFromFileURLs() {
464        return mAwSettings.getAllowUniversalAccessFromFileURLs();
465    }
466
467    @Override
468    public boolean getAllowFileAccessFromFileURLs() {
469        return mAwSettings.getAllowFileAccessFromFileURLs();
470    }
471
472    @Override
473    public synchronized boolean getPluginsEnabled() {
474        return mAwSettings.getPluginsEnabled();
475    }
476
477    @Override
478    public synchronized PluginState getPluginState() {
479        return mAwSettings.getPluginState();
480    }
481
482    @Override
483    public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
484        mAwSettings.setJavaScriptCanOpenWindowsAutomatically(flag);
485    }
486
487    @Override
488    public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() {
489        return mAwSettings.getJavaScriptCanOpenWindowsAutomatically();
490    }
491
492    @Override
493    public synchronized void setDefaultTextEncodingName(String encoding) {
494        mAwSettings.setDefaultTextEncodingName(encoding);
495    }
496
497    @Override
498    public synchronized String getDefaultTextEncodingName() {
499        return mAwSettings.getDefaultTextEncodingName();
500    }
501
502    @Override
503    public synchronized void setUserAgentString(String ua) {
504        mAwSettings.setUserAgentString(ua);
505    }
506
507    @Override
508    public synchronized String getUserAgentString() {
509        return mAwSettings.getUserAgentString();
510    }
511
512    @Override
513    public void setNeedInitialFocus(boolean flag) {
514        mAwSettings.setShouldFocusFirstNode(flag);
515    }
516
517    @Override
518    public synchronized void setRenderPriority(RenderPriority priority) {
519        // Intentional no-op.
520    }
521
522    @Override
523    public void setCacheMode(int mode) {
524        mAwSettings.setCacheMode(mode);
525    }
526
527    @Override
528    public int getCacheMode() {
529        return mAwSettings.getCacheMode();
530    }
531
532    @Override
533    public void setMediaPlaybackRequiresUserGesture(boolean require) {
534        mAwSettings.setMediaPlaybackRequiresUserGesture(require);
535    }
536
537    @Override
538    public boolean getMediaPlaybackRequiresUserGesture() {
539        return mAwSettings.getMediaPlaybackRequiresUserGesture();
540    }
541}
542