xref: /aosp_15_r20/external/robolectric/shadows/framework/src/main/java/org/robolectric/fakes/RoboWebSettings.java (revision e6ba16074e6af37d123cb567d575f496bf0a58ee)
1  package org.robolectric.fakes;
2  
3  import android.webkit.WebSettings;
4  
5  /** Robolectric implementation of {@link android.webkit.WebSettings}. */
6  public class RoboWebSettings extends WebSettings {
7    private boolean blockNetworkImage = false;
8    private boolean javaScriptEnabled = false;
9    private boolean javaScriptCanOpenWindowAutomatically = false;
10    private boolean lightTouchEnabled = false;
11    private boolean needInitialFocus = false;
12    private RenderPriority renderPriority = RenderPriority.NORMAL;
13    private boolean pluginsEnabled = false;
14    private boolean saveFormData = false;
15    private boolean supportMultipleWindows = false;
16    private boolean supportZoom = true;
17    private boolean useWideViewPort = false;
18    private int cacheMode;
19    private WebSettings.LayoutAlgorithm layoutAlgorithm = WebSettings.LayoutAlgorithm.NARROW_COLUMNS;
20    private String defaultTextEncoding = "UTF-8";
21    private int defaultFontSize = 16;
22    private boolean loadsImagesAutomatically;
23    private int defaultFixedFontSize;
24    private int minimumLogicalFontSize;
25    private int minimumFontSize;
26    private String fantasyFontFamily;
27    private String cursiveFontFamily;
28    private String serifFontFamily;
29    private String sansSerifFontFamily;
30    private String fixedFontFamily;
31    private String standardFontFamily;
32    private boolean savePassword;
33    private int userAgent;
34    private boolean navDump;
35    private int forceDark;
36  
37    @Override
getBlockNetworkImage()38    public synchronized boolean getBlockNetworkImage() {
39      return blockNetworkImage;
40    }
41  
42    @Override
setBlockNetworkImage(boolean flag)43    public synchronized void setBlockNetworkImage(boolean flag) {
44      blockNetworkImage = flag;
45    }
46  
47    @Override
getJavaScriptEnabled()48    public synchronized boolean getJavaScriptEnabled() {
49      return javaScriptEnabled;
50    }
51  
52    @Override
setJavaScriptEnabled(boolean flag)53    public synchronized void setJavaScriptEnabled(boolean flag) {
54      javaScriptEnabled = flag;
55    }
56  
57    @Override
getLightTouchEnabled()58    public boolean getLightTouchEnabled() {
59      return lightTouchEnabled;
60    }
61  
62    @Override
setLightTouchEnabled(boolean flag)63    public void setLightTouchEnabled(boolean flag) {
64      lightTouchEnabled = flag;
65    }
66  
getNeedInitialFocus()67    public boolean getNeedInitialFocus() {
68      return needInitialFocus;
69    }
70  
71    @Override
setNeedInitialFocus(boolean flag)72    public void setNeedInitialFocus(boolean flag) {
73      needInitialFocus = flag;
74    }
75  
76    @Override
setRenderPriority(RenderPriority priority)77    public synchronized void setRenderPriority(RenderPriority priority) {
78      renderPriority = priority;
79    }
80  
getRenderPriority()81    public RenderPriority getRenderPriority() {
82      return renderPriority;
83    }
84  
85    @Override
getPluginsEnabled()86    public synchronized boolean getPluginsEnabled() {
87      return pluginsEnabled;
88    }
89  
90    @Override
setPluginsEnabled(boolean flag)91    public synchronized void setPluginsEnabled(boolean flag) {
92      pluginsEnabled = flag;
93    }
94  
getSupportMultipleWindows()95    public boolean getSupportMultipleWindows() {
96      return supportMultipleWindows;
97    }
98  
99    @Override
setSupportMultipleWindows(boolean support)100    public synchronized void setSupportMultipleWindows(boolean support) {
101      supportMultipleWindows = support;
102    }
103  
getSupportZoom()104    public boolean getSupportZoom() {
105      return supportZoom;
106    }
107  
108    @Override
setSupportZoom(boolean support)109    public void setSupportZoom(boolean support) {
110      supportZoom = support;
111    }
112  
113    @Override
setCacheMode(int mode)114    public void setCacheMode(int mode) {
115      this.cacheMode = mode;
116    }
117  
118    @Override
getCacheMode()119    public int getCacheMode() {
120      return cacheMode;
121    }
122  
123    @Override
getUseWideViewPort()124    public boolean getUseWideViewPort() {
125      return useWideViewPort;
126    }
127  
128    @Override
setUseWideViewPort(boolean useWideViewPort)129    public void setUseWideViewPort(boolean useWideViewPort) {
130      this.useWideViewPort = useWideViewPort;
131    }
132  
133    @Override
getSaveFormData()134    public boolean getSaveFormData() {
135      return saveFormData;
136    }
137  
138    @Override
setSaveFormData(boolean saveFormData)139    public void setSaveFormData(boolean saveFormData) {
140      this.saveFormData = saveFormData;
141    }
142  
143    @Override
setJavaScriptCanOpenWindowsAutomatically( boolean javaScriptCanOpenWindowAutomatically)144    public void setJavaScriptCanOpenWindowsAutomatically(
145        boolean javaScriptCanOpenWindowAutomatically) {
146      this.javaScriptCanOpenWindowAutomatically = javaScriptCanOpenWindowAutomatically;
147    }
148  
149    @Override
getJavaScriptCanOpenWindowsAutomatically()150    public boolean getJavaScriptCanOpenWindowsAutomatically() {
151      return this.javaScriptCanOpenWindowAutomatically;
152    }
153  
154    @Override
setLayoutAlgorithm(WebSettings.LayoutAlgorithm algorithm)155    public synchronized void setLayoutAlgorithm(WebSettings.LayoutAlgorithm algorithm) {
156      this.layoutAlgorithm = algorithm;
157    }
158  
159    @Override
getDefaultTextEncodingName()160    public String getDefaultTextEncodingName() {
161      return this.defaultTextEncoding;
162    }
163  
164    @Override
setDefaultTextEncodingName(String defaultTextEncoding)165    public void setDefaultTextEncodingName(String defaultTextEncoding) {
166      this.defaultTextEncoding = defaultTextEncoding;
167    }
168  
169    @Override
getDefaultFontSize()170    public int getDefaultFontSize() {
171      return defaultFontSize;
172    }
173  
174    @Override
setDefaultFontSize(int defaultFontSize)175    public void setDefaultFontSize(int defaultFontSize) {
176      this.defaultFontSize = defaultFontSize;
177    }
178  
179    @Override
getLoadsImagesAutomatically()180    public boolean getLoadsImagesAutomatically() {
181      return loadsImagesAutomatically;
182    }
183  
184    @Override
setLoadsImagesAutomatically(boolean loadsImagesAutomatically)185    public void setLoadsImagesAutomatically(boolean loadsImagesAutomatically) {
186      this.loadsImagesAutomatically = loadsImagesAutomatically;
187    }
188  
189    @Override
getDefaultFixedFontSize()190    public int getDefaultFixedFontSize() {
191      return defaultFixedFontSize;
192    }
193  
194    @Override
setDefaultFixedFontSize(int defaultFixedFontSize)195    public void setDefaultFixedFontSize(int defaultFixedFontSize) {
196      this.defaultFixedFontSize = defaultFixedFontSize;
197    }
198  
199    @Override
getMinimumLogicalFontSize()200    public int getMinimumLogicalFontSize() {
201      return minimumLogicalFontSize;
202    }
203  
204    @Override
setMinimumLogicalFontSize(int minimumLogicalFontSize)205    public void setMinimumLogicalFontSize(int minimumLogicalFontSize) {
206      this.minimumLogicalFontSize = minimumLogicalFontSize;
207    }
208  
209    @Override
getMinimumFontSize()210    public int getMinimumFontSize() {
211      return minimumFontSize;
212    }
213  
214    @Override
setMinimumFontSize(int minimumFontSize)215    public void setMinimumFontSize(int minimumFontSize) {
216      this.minimumFontSize = minimumFontSize;
217    }
218  
219    @Override
getFantasyFontFamily()220    public String getFantasyFontFamily() {
221      return fantasyFontFamily;
222    }
223  
224    @Override
setFantasyFontFamily(String fantasyFontFamily)225    public void setFantasyFontFamily(String fantasyFontFamily) {
226      this.fantasyFontFamily = fantasyFontFamily;
227    }
228  
229    @Override
getCursiveFontFamily()230    public String getCursiveFontFamily() {
231      return cursiveFontFamily;
232    }
233  
234    @Override
setCursiveFontFamily(String cursiveFontFamily)235    public void setCursiveFontFamily(String cursiveFontFamily) {
236      this.cursiveFontFamily = cursiveFontFamily;
237    }
238  
239    @Override
getSerifFontFamily()240    public String getSerifFontFamily() {
241      return serifFontFamily;
242    }
243  
244    @Override
setSerifFontFamily(String serifFontFamily)245    public void setSerifFontFamily(String serifFontFamily) {
246      this.serifFontFamily = serifFontFamily;
247    }
248  
249    @Override
getSansSerifFontFamily()250    public String getSansSerifFontFamily() {
251      return sansSerifFontFamily;
252    }
253  
254    @Override
setSansSerifFontFamily(String sansSerifFontFamily)255    public void setSansSerifFontFamily(String sansSerifFontFamily) {
256      this.sansSerifFontFamily = sansSerifFontFamily;
257    }
258  
259    @Override
getFixedFontFamily()260    public String getFixedFontFamily() {
261      return fixedFontFamily;
262    }
263  
264    @Override
setFixedFontFamily(String fixedFontFamily)265    public void setFixedFontFamily(String fixedFontFamily) {
266      this.fixedFontFamily = fixedFontFamily;
267    }
268  
269    @Override
getStandardFontFamily()270    public String getStandardFontFamily() {
271      return standardFontFamily;
272    }
273  
274    @Override
setStandardFontFamily(String standardFontFamily)275    public void setStandardFontFamily(String standardFontFamily) {
276      this.standardFontFamily = standardFontFamily;
277    }
278  
279    @Override
getLayoutAlgorithm()280    public LayoutAlgorithm getLayoutAlgorithm() {
281      return layoutAlgorithm;
282    }
283  
284    @Override
supportMultipleWindows()285    public boolean supportMultipleWindows() {
286      return supportMultipleWindows;
287    }
288  
289    @Override
getSavePassword()290    public boolean getSavePassword() {
291      return savePassword;
292    }
293  
294    @Override
setSavePassword(boolean savePassword)295    public void setSavePassword(boolean savePassword) {
296      this.savePassword = savePassword;
297    }
298  
299    @Override
supportZoom()300    public boolean supportZoom() {
301      return supportZoom;
302    }
303  
304    @Override
getUserAgent()305    public int getUserAgent() {
306      return userAgent;
307    }
308  
309    @Override
setUserAgent(int userAgent)310    public void setUserAgent(int userAgent) {
311      this.userAgent = userAgent;
312    }
313  
314    @Override
getNavDump()315    public boolean getNavDump() {
316      return navDump;
317    }
318  
319    @Override
setNavDump(boolean navDump)320    public void setNavDump(boolean navDump) {
321      this.navDump = navDump;
322    }
323  
324    private boolean allowFileAccess = true;
325    private boolean builtInZoomControls = true;
326    private String userAgentString =
327        "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30"
328            + " (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30";
329  
330    @Override
getAllowFileAccess()331    public boolean getAllowFileAccess() {
332      return allowFileAccess;
333    }
334  
335    @Override
setAllowFileAccess(boolean allow)336    public void setAllowFileAccess(boolean allow) {
337      allowFileAccess = allow;
338    }
339  
340    @Override
getBuiltInZoomControls()341    public boolean getBuiltInZoomControls() {
342      return builtInZoomControls;
343    }
344  
345    @Override
setBuiltInZoomControls(boolean enabled)346    public void setBuiltInZoomControls(boolean enabled) {
347      builtInZoomControls = enabled;
348    }
349  
350    @Override
setUserAgentString(String ua)351    public synchronized void setUserAgentString(String ua) {
352      userAgentString = ua;
353    }
354  
355    @Override
getUserAgentString()356    public synchronized String getUserAgentString() {
357      return userAgentString;
358    }
359  
360    // End API 3
361  
362    private boolean databaseEnabled = false;
363    private String databasePath = "database";
364    private String geolocationDatabasePath = "geolocation";
365    private boolean geolocationEnabled = false;
366  
367    @Override
getDatabaseEnabled()368    public synchronized boolean getDatabaseEnabled() {
369      return databaseEnabled;
370    }
371  
372    @Override
setDatabaseEnabled(boolean flag)373    public synchronized void setDatabaseEnabled(boolean flag) {
374      databaseEnabled = flag;
375    }
376  
377    @Override
setDatabasePath(String path)378    public synchronized void setDatabasePath(String path) {
379      databasePath = path;
380    }
381  
382    @Override
getDatabasePath()383    public synchronized String getDatabasePath() {
384      return databasePath;
385    }
386  
getGeolocationDatabasePath()387    public String getGeolocationDatabasePath() {
388      return geolocationDatabasePath;
389    }
390  
391    @Override
setGeolocationDatabasePath(String geolocationDatabasePath)392    public void setGeolocationDatabasePath(String geolocationDatabasePath) {
393      this.geolocationDatabasePath = geolocationDatabasePath;
394    }
395  
getGeolocationEnabled()396    public boolean getGeolocationEnabled() {
397      return geolocationEnabled;
398    }
399  
400    @Override
setGeolocationEnabled(boolean geolocationEnabled)401    public void setGeolocationEnabled(boolean geolocationEnabled) {
402      this.geolocationEnabled = geolocationEnabled;
403    }
404  
405    // End API 5
406  
407    private ZoomDensity defaultZoom;
408    private boolean domStorageEnabled = false;
409    private boolean loadWithOverviewMode = false;
410    private boolean appCacheEnabled = false;
411    private long appCacheMaxSize;
412    private String appCachePath = "appcache";
413  
414    @Override
setDefaultZoom(ZoomDensity zoom)415    public void setDefaultZoom(ZoomDensity zoom) {
416      this.defaultZoom = zoom;
417    }
418  
419    @Override
getDefaultZoom()420    public ZoomDensity getDefaultZoom() {
421      return defaultZoom;
422    }
423  
424    @Override
getDomStorageEnabled()425    public synchronized boolean getDomStorageEnabled() {
426      return domStorageEnabled;
427    }
428  
429    @Override
setDomStorageEnabled(boolean flag)430    public synchronized void setDomStorageEnabled(boolean flag) {
431      domStorageEnabled = flag;
432    }
433  
434    @Override
getLoadWithOverviewMode()435    public boolean getLoadWithOverviewMode() {
436      return loadWithOverviewMode;
437    }
438  
439    @Override
setLoadWithOverviewMode(boolean flag)440    public void setLoadWithOverviewMode(boolean flag) {
441      loadWithOverviewMode = flag;
442    }
443  
getAppCacheEnabled()444    public boolean getAppCacheEnabled() {
445      return appCacheEnabled;
446    }
447  
448    @Override
setAppCacheEnabled(boolean appCacheEnabled)449    public void setAppCacheEnabled(boolean appCacheEnabled) {
450      this.appCacheEnabled = appCacheEnabled;
451    }
452  
453    @Override
setAppCacheMaxSize(long appCacheMaxSize)454    public void setAppCacheMaxSize(long appCacheMaxSize) {
455      this.appCacheMaxSize = appCacheMaxSize;
456    }
457  
getAppCacheMaxSize()458    public long getAppCacheMaxSize() {
459      return appCacheMaxSize;
460    }
461  
getAppCachePath()462    public String getAppCachePath() {
463      return appCachePath;
464    }
465  
466    @Override
setAppCachePath(String appCachePath)467    public void setAppCachePath(String appCachePath) {
468      this.appCachePath = appCachePath;
469    }
470  
471    // End API 7
472  
473    private boolean blockNetworkLoads = false;
474    private WebSettings.PluginState pluginState = WebSettings.PluginState.OFF;
475  
476    @Override
getBlockNetworkLoads()477    public synchronized boolean getBlockNetworkLoads() {
478      return blockNetworkLoads;
479    }
480  
481    @Override
setBlockNetworkLoads(boolean flag)482    public synchronized void setBlockNetworkLoads(boolean flag) {
483      blockNetworkLoads = flag;
484    }
485  
486    @Override
getPluginState()487    public synchronized WebSettings.PluginState getPluginState() {
488      return pluginState;
489    }
490  
491    @Override
setPluginState(WebSettings.PluginState state)492    public synchronized void setPluginState(WebSettings.PluginState state) {
493      pluginState = state;
494    }
495  
496    // End API 8
497  
498    private boolean useWebViewBackgroundForOverscrollBackground;
499  
500    @Override
getUseWebViewBackgroundForOverscrollBackground()501    public boolean getUseWebViewBackgroundForOverscrollBackground() {
502      return useWebViewBackgroundForOverscrollBackground;
503    }
504  
505    @Override
setUseWebViewBackgroundForOverscrollBackground( boolean useWebViewBackgroundForOverscrollBackground)506    public void setUseWebViewBackgroundForOverscrollBackground(
507        boolean useWebViewBackgroundForOverscrollBackground) {
508      this.useWebViewBackgroundForOverscrollBackground = useWebViewBackgroundForOverscrollBackground;
509    }
510  
511    // End API 9
512  
513    private boolean enableSmoothTransition;
514    private boolean allowContentAccess = true;
515    private boolean displayZoomControls;
516  
517    @Override
enableSmoothTransition()518    public boolean enableSmoothTransition() {
519      return enableSmoothTransition;
520    }
521  
522    @Override
setEnableSmoothTransition(boolean enableSmoothTransition)523    public void setEnableSmoothTransition(boolean enableSmoothTransition) {
524      this.enableSmoothTransition = enableSmoothTransition;
525    }
526  
527    @Override
setAllowContentAccess(boolean allow)528    public void setAllowContentAccess(boolean allow) {
529      allowContentAccess = allow;
530    }
531  
532    @Override
getAllowContentAccess()533    public boolean getAllowContentAccess() {
534      return allowContentAccess;
535    }
536  
537    @Override
setDisplayZoomControls(boolean enabled)538    public void setDisplayZoomControls(boolean enabled) {
539      displayZoomControls = enabled;
540    }
541  
542    @Override
getDisplayZoomControls()543    public boolean getDisplayZoomControls() {
544      return displayZoomControls;
545    }
546  
547    // End API 11
548  
549    private int textZoom = 100;
550  
551    @Override
getTextZoom()552    public int getTextZoom() {
553      return textZoom;
554    }
555  
556    @Override
setTextZoom(int textZoom)557    public void setTextZoom(int textZoom) {
558      this.textZoom = textZoom;
559    }
560  
561    // End API 14
562  
563    private boolean allowFileAccessFromFile = true;
564    private boolean allowUniversalAccessFromFile = true;
565  
566    @Override
getAllowFileAccessFromFileURLs()567    public boolean getAllowFileAccessFromFileURLs() {
568      return allowFileAccessFromFile;
569    }
570  
571    @Override
setAllowFileAccessFromFileURLs(boolean allow)572    public void setAllowFileAccessFromFileURLs(boolean allow) {
573      allowFileAccessFromFile = allow;
574    }
575  
576    @Override
getAllowUniversalAccessFromFileURLs()577    public boolean getAllowUniversalAccessFromFileURLs() {
578      return allowUniversalAccessFromFile;
579    }
580  
581    @Override
setAllowUniversalAccessFromFileURLs(boolean allow)582    public void setAllowUniversalAccessFromFileURLs(boolean allow) {
583      allowUniversalAccessFromFile = allow;
584    }
585  
586    // End API 16
587  
588    private boolean mediaPlaybackRequiresUserGesture = true;
589  
590    @Override
getMediaPlaybackRequiresUserGesture()591    public boolean getMediaPlaybackRequiresUserGesture() {
592      return mediaPlaybackRequiresUserGesture;
593    }
594  
595    @Override
setMediaPlaybackRequiresUserGesture(boolean require)596    public void setMediaPlaybackRequiresUserGesture(boolean require) {
597      mediaPlaybackRequiresUserGesture = require;
598    }
599  
600    // End API 17
601  
602    private int mixedContentMode;
603    private boolean acceptThirdPartyCookies;
604    private boolean videoOverlayForEmbeddedEncryptedVideoEnabled;
605  
606    @Override
setMixedContentMode(int mixedContentMode)607    public void setMixedContentMode(int mixedContentMode) {
608      this.mixedContentMode = mixedContentMode;
609    }
610  
611    @Override
getMixedContentMode()612    public int getMixedContentMode() {
613      return mixedContentMode;
614    }
615  
616    @Override
setVideoOverlayForEmbeddedEncryptedVideoEnabled(boolean b)617    public void setVideoOverlayForEmbeddedEncryptedVideoEnabled(boolean b) {
618      videoOverlayForEmbeddedEncryptedVideoEnabled = b;
619    }
620  
621    @Override
getVideoOverlayForEmbeddedEncryptedVideoEnabled()622    public boolean getVideoOverlayForEmbeddedEncryptedVideoEnabled() {
623      return videoOverlayForEmbeddedEncryptedVideoEnabled;
624    }
625  
626    @Override
getAcceptThirdPartyCookies()627    public boolean getAcceptThirdPartyCookies() {
628      return acceptThirdPartyCookies;
629    }
630  
631    @Override
setAcceptThirdPartyCookies(boolean acceptThirdPartyCookies)632    public void setAcceptThirdPartyCookies(boolean acceptThirdPartyCookies) {
633      this.acceptThirdPartyCookies = acceptThirdPartyCookies;
634    }
635  
636    // End API 21
637  
638    @Override
setOffscreenPreRaster(boolean enabled)639    public void setOffscreenPreRaster(boolean enabled) {}
640  
641    @Override
getOffscreenPreRaster()642    public boolean getOffscreenPreRaster() {
643      return false;
644    }
645  
646    // End API 23
647  
648    @Override
getDisabledActionModeMenuItems()649    public int getDisabledActionModeMenuItems() {
650      return 0;
651    }
652  
653    @Override
setDisabledActionModeMenuItems(int menuItems)654    public void setDisabledActionModeMenuItems(int menuItems) {}
655  
656    // End API 24.
657  
658    @Override
getSafeBrowsingEnabled()659    public boolean getSafeBrowsingEnabled() {
660      return false;
661    }
662  
663    @Override
setSafeBrowsingEnabled(boolean enabled)664    public void setSafeBrowsingEnabled(boolean enabled) {}
665  
666    // End API 26
667  
668    @Override
getForceDark()669    public int getForceDark() {
670      return forceDark;
671    }
672  
673    @Override
setForceDark(int forceDark)674    public void setForceDark(int forceDark) {
675      this.forceDark = forceDark;
676    }
677  
678    // End API 29
679  }
680