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