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