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