WebSettings.java revision 105925376f8d0f6b318c9938c7b83ef7fef094da
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.webkit; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Build; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Message; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.provider.Checkin; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.lang.SecurityException; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PackageManager; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Locale; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Manages settings state for a WebView. When a WebView is first created, it 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * obtains a set of default settings. These default settings will be returned 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * from any getter call. A WebSettings object obtained from 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WebView.getSettings() is tied to the life of the WebView. If a WebView has 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * been destroyed, any method call on WebSettings will throw an 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * IllegalStateException. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class WebSettings { 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enum for controlling the layout of html. 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * NORMAL means no rendering changes. 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SINGLE_COLUMN moves all content into one column that is the width of the 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * view. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * NARROW_COLUMNS makes all columns no wider than the screen if possible. 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // XXX: These must match LayoutAlgorithm in Settings.h in WebCore. 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public enum LayoutAlgorithm { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NORMAL, 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SINGLE_COLUMN, 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NARROW_COLUMNS 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enum for specifying the text size. 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SMALLEST is 50% 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SMALLER is 75% 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * NORMAL is 100% 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * LARGER is 150% 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * LARGEST is 200% 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public enum TextSize { 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SMALLEST(50), 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SMALLER(75), 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NORMAL(100), 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LARGER(150), 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LARGEST(200); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TextSize(int size) { 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project value = size; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int value; 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Default cache usage pattern Use with {@link #setCacheMode}. 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int LOAD_DEFAULT = -1; 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Normal cache usage pattern Use with {@link #setCacheMode}. 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int LOAD_NORMAL = 0; 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use cache if content is there, even if expired (eg, history nav) 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If it is not in the cache, load from network. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #setCacheMode}. 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int LOAD_CACHE_ELSE_NETWORK = 1; 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Don't use the cache, load from network 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #setCacheMode}. 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int LOAD_NO_CACHE = 2; 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Don't use the network, load from cache only. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #setCacheMode}. 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int LOAD_CACHE_ONLY = 3; 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public enum RenderPriority { 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NORMAL, 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HIGH, 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LOW 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // BrowserFrame used to access the native frame pointer. 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private BrowserFrame mBrowserFrame; 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Flag to prevent multiple SYNC messages at one time. 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mSyncPending = false; 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Custom handler that queues messages until the WebCore thread is active. 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private final EventHandler mEventHandler; 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Private settings so we don't have to go into native code to 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // retrieve the values. After setXXX, postSync() needs to be called. 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // XXX: The default values need to match those in WebSettings.cpp 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private LayoutAlgorithm mLayoutAlgorithm = LayoutAlgorithm.NARROW_COLUMNS; 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Context mContext; 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private TextSize mTextSize = TextSize.NORMAL; 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mStandardFontFamily = "sans-serif"; 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mFixedFontFamily = "monospace"; 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mSansSerifFontFamily = "sans-serif"; 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mSerifFontFamily = "serif"; 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mCursiveFontFamily = "cursive"; 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mFantasyFontFamily = "fantasy"; 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mDefaultTextEncoding = "Latin-1"; 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mUserAgent; 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mUseDefaultUserAgent; 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mAcceptLanguage; 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mPluginsPath = ""; 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mMinimumFontSize = 8; 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mMinimumLogicalFontSize = 8; 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mDefaultFontSize = 16; 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mDefaultFixedFontSize = 13; 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mLoadsImagesAutomatically = true; 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mBlockNetworkImage = false; 137c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project private boolean mBlockNetworkLoads; 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mJavaScriptEnabled = false; 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mPluginsEnabled = false; 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mJavaScriptCanOpenWindowsAutomatically = false; 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mUseDoubleTree = false; 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mUseWideViewport = false; 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mSupportMultipleWindows = false; 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mShrinksStandaloneImagesToFit = false; 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Don't need to synchronize the get/set methods as they 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // are basic types, also none of these values are used in 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // native WebCore code. 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private RenderPriority mRenderPriority = RenderPriority.NORMAL; 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mOverrideCacheMode = LOAD_DEFAULT; 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mSaveFormData = true; 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mSavePassword = true; 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mLightTouchEnabled = false; 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mNeedInitialFocus = true; 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mNavDump = false; 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mSupportZoom = true; 156105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project private boolean mBuiltInZoomControls = false; 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mAllowFileAccess = true; 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Class to handle messages before WebCore is ready. 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private class EventHandler { 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Message id for syncing 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static final int SYNC = 0; 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Message id for setting priority 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static final int PRIORITY = 1; 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Actual WebCore thread handler 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Handler mHandler; 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private synchronized void createHandler() { 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // as mRenderPriority can be set before thread is running, sync up 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setRenderPriority(); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // create a new handler 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler = new Handler() { 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void handleMessage(Message msg) { 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (msg.what) { 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SYNC: 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized (WebSettings.this) { 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mBrowserFrame.mNativeFrame != 0) { 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project nativeSync(mBrowserFrame.mNativeFrame); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSyncPending = false; 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PRIORITY: { 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setRenderPriority(); 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void setRenderPriority() { 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized (WebSettings.this) { 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mRenderPriority == RenderPriority.NORMAL) { 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.setThreadPriority( 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.THREAD_PRIORITY_DEFAULT); 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (mRenderPriority == RenderPriority.HIGH) { 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.setThreadPriority( 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.THREAD_PRIORITY_FOREGROUND + 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.THREAD_PRIORITY_LESS_FAVORABLE); 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (mRenderPriority == RenderPriority.LOW) { 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.setThreadPriority( 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android.os.Process.THREAD_PRIORITY_BACKGROUND); 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Send a message to the private queue or handler. 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private synchronized boolean sendMessage(Message msg) { 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mHandler != null) { 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.sendMessage(msg); 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // User agent strings. 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String DESKTOP_USERAGENT = 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en)" 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2" 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " Safari/525.20.1"; 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String IPHONE_USERAGENT = 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "Mozilla/5.0 (iPhone; U; CPU iPhone 2_1 like Mac OS X; en)" 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2" 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " Mobile/5F136 Safari/525.20.1"; 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static Locale sLocale; 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static Object sLockForLocaleSettings; 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Package constructor to prevent clients from creating a new settings 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instance. 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project WebSettings(Context context) { 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mEventHandler = new EventHandler(); 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mContext = context; 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (sLockForLocaleSettings == null) { 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sLockForLocaleSettings = new Object(); 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sLocale = Locale.getDefault(); 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAcceptLanguage = getCurrentAcceptLanguage(); 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUserAgent = getCurrentUserAgent(); 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUseDefaultUserAgent = true; 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 252c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project mBlockNetworkLoads = mContext.checkPermission( 253c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project "android.permission.INTERNET", android.os.Process.myPid(), 254c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project android.os.Process.myUid()) != PackageManager.PERMISSION_GRANTED; 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Looks at sLocale and returns current AcceptLanguage String. 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Current AcceptLanguage String. 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String getCurrentAcceptLanguage() { 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Locale locale; 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized(sLockForLocaleSettings) { 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project locale = sLocale; 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuffer buffer = new StringBuffer(); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String language = locale.getLanguage(); 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (language != null) { 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(language); 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String country = locale.getCountry(); 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (country != null) { 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("-"); 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(country); 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!locale.equals(Locale.US)) { 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(", "); 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project java.util.Locale us = Locale.US; 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (us.getLanguage() != null) { 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(us.getLanguage()); 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String country = us.getCountry(); 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (country != null) { 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("-"); 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(country); 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return buffer.toString(); 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Looks at sLocale and mContext and returns current UserAgent String. 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Current UserAgent String. 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private synchronized String getCurrentUserAgent() { 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Locale locale; 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized(sLockForLocaleSettings) { 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project locale = sLocale; 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuffer buffer = new StringBuffer(); 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Add version 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String version = Build.VERSION.RELEASE; 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (version.length() > 0) { 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(version); 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // default to "1.0" 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("1.0"); 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("; "); 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String language = locale.getLanguage(); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (language != null) { 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(language.toLowerCase()); 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String country = locale.getCountry(); 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (country != null) { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("-"); 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(country.toLowerCase()); 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // default to "en" 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("en"); 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String model = Build.MODEL; 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (model.length() > 0) { 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append("; "); 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(model); 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String id = Build.ID; 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (id.length() > 0) { 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(" Build/"); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buffer.append(id); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String base = mContext.getResources().getText( 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project com.android.internal.R.string.web_user_agent).toString(); 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return String.format(base, buffer); 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enables dumping the pages navigation cache to a text file. 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setNavDump(boolean enabled) { 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNavDump = enabled; 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if dumping the navigation cache is enabled. 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getNavDump() { 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mNavDump; 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set whether the WebView supports zoom 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setSupportZoom(boolean support) { 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSupportZoom = support; 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the WebView supports zoom 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean supportZoom() { 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSupportZoom; 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 368105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * Sets whether the zoom mechanism built into WebView is used. 369105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project */ 370105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project public void setBuiltInZoomControls(boolean enabled) { 371105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project mBuiltInZoomControls = enabled; 372105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project } 373105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project 374105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project /** 375105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * Returns true if the zoom mechanism built into WebView is being used. 376105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project */ 377105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project public boolean getBuiltInZoomControls() { 378105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project return mBuiltInZoomControls; 379105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project } 380105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project 381105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project /** 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enable or disable file access within WebView. File access is enabled by 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default. 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setAllowFileAccess(boolean allow) { 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAllowFileAccess = allow; 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if this WebView supports file access. 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getAllowFileAccess() { 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mAllowFileAccess; 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Store whether the WebView is saving form data. 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setSaveFormData(boolean save) { 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSaveFormData = save; 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return whether the WebView is saving form data. 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getSaveFormData() { 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSaveFormData; 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Store whether the WebView is saving password. 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setSavePassword(boolean save) { 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSavePassword = save; 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return whether the WebView is saving password. 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getSavePassword() { 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSavePassword; 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the text size of the page. 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param t A TextSize value for increasing or decreasing the text. 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see WebSettings.TextSize 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setTextSize(TextSize t) { 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (WebView.mLogEvent && mTextSize != t ) { 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Checkin.updateStats(mContext.getContentResolver(), 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Checkin.Stats.Tag.BROWSER_TEXT_SIZE_CHANGE, 1, 0.0); 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mTextSize = t; 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the text size of the page. 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A TextSize enum value describing the text size. 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see WebSettings.TextSize 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized TextSize getTextSize() { 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mTextSize; 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enables using light touches to make a selection and activate mouseovers. 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setLightTouchEnabled(boolean enabled) { 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLightTouchEnabled = enabled; 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if light touches are enabled. 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean getLightTouchEnabled() { 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLightTouchEnabled; 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to use the double tree rendering algorithm. 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param use True if the WebView is to use double tree rendering, false 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * otherwise. 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setUseDoubleTree(boolean use) { 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mUseDoubleTree != use) { 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUseDoubleTree = use; 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if the WebView is using the double tree rendering algorithm. 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the WebView is using the double tree rendering 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * algorithm. 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getUseDoubleTree() { 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mUseDoubleTree; 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView about user-agent string. 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param ua 0 if the WebView should use an Android user-agent string, 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1 if the WebView should use a desktop user-agent string. 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated Please use setUserAgentString instead. 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setUserAgent(int ua) { 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String uaString = null; 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (ua == 1) { 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (DESKTOP_USERAGENT.equals(mUserAgent)) { 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return; // do nothing 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uaString = DESKTOP_USERAGENT; 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (ua == 2) { 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (IPHONE_USERAGENT.equals(mUserAgent)) { 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return; // do nothing 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uaString = IPHONE_USERAGENT; 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (ua != 0) { 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return; // do nothing 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setUserAgentString(uaString); 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return user-agent as int 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return int 0 if the WebView is using an Android user-agent string. 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1 if the WebView is using a desktop user-agent string. 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * -1 if the WebView is using user defined user-agent string. 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated Please use getUserAgentString instead. 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized int getUserAgent() { 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (DESKTOP_USERAGENT.equals(mUserAgent)) { 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 1; 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (IPHONE_USERAGENT.equals(mUserAgent)) { 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 2; 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (mUseDefaultUserAgent) { 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return -1; 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to use the wide viewport 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setUseWideViewPort(boolean use) { 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mUseWideViewport != use) { 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUseWideViewport = use; 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the WebView is using a wide viewport 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getUseWideViewPort() { 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mUseWideViewport; 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView whether it supports multiple windows. TRUE means 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that {@link WebChromeClient#onCreateWindow(WebView, boolean, 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * boolean, Message)} is implemented by the host application. 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setSupportMultipleWindows(boolean support) { 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mSupportMultipleWindows != support) { 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSupportMultipleWindows = support; 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the WebView is supporting multiple windows. This means 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that {@link WebChromeClient#onCreateWindow(WebView, boolean, 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * boolean, Message)} is implemented by the host application. 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean supportMultipleWindows() { 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSupportMultipleWindows; 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the underlying layout algorithm. This will cause a relayout of the 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WebView. 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param l A LayoutAlgorithm enum specifying the algorithm to use. 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see WebSettings.LayoutAlgorithm 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) { 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // XXX: This will only be affective if libwebcore was built with 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // ANDROID_LAYOUT defined. 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mLayoutAlgorithm != l) { 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLayoutAlgorithm = l; 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the current layout algorithm. 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return LayoutAlgorithm enum value describing the layout algorithm 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * being used. 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see WebSettings.LayoutAlgorithm 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized LayoutAlgorithm getLayoutAlgorithm() { 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLayoutAlgorithm; 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the standard font family name. 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param font A font family name. 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setStandardFontFamily(String font) { 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (font != null && !font.equals(mStandardFontFamily)) { 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStandardFontFamily = font; 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the standard font family name. 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The standard font family name as a string. 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getStandardFontFamily() { 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mStandardFontFamily; 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the fixed font family name. 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param font A font family name. 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setFixedFontFamily(String font) { 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (font != null && !font.equals(mFixedFontFamily)) { 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFixedFontFamily = font; 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the fixed font family name. 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The fixed font family name as a string. 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getFixedFontFamily() { 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mFixedFontFamily; 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the sans-serif font family name. 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param font A font family name. 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setSansSerifFontFamily(String font) { 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (font != null && !font.equals(mSansSerifFontFamily)) { 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSansSerifFontFamily = font; 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the sans-serif font family name. 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The sans-serif font family name as a string. 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getSansSerifFontFamily() { 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSansSerifFontFamily; 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the serif font family name. 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param font A font family name. 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setSerifFontFamily(String font) { 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (font != null && !font.equals(mSerifFontFamily)) { 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSerifFontFamily = font; 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the serif font family name. 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The serif font family name as a string. 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getSerifFontFamily() { 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSerifFontFamily; 6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the cursive font family name. 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param font A font family name. 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setCursiveFontFamily(String font) { 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (font != null && !font.equals(mCursiveFontFamily)) { 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCursiveFontFamily = font; 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the cursive font family name. 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The cursive font family name as a string. 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getCursiveFontFamily() { 6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mCursiveFontFamily; 6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the fantasy font family name. 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param font A font family name. 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setFantasyFontFamily(String font) { 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (font != null && !font.equals(mFantasyFontFamily)) { 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFantasyFontFamily = font; 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the fantasy font family name. 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The fantasy font family name as a string. 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getFantasyFontFamily() { 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mFantasyFontFamily; 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the minimum font size. 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param size A non-negative integer between 1 and 72. 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Any number outside the specified range will be pinned. 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setMinimumFontSize(int size) { 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project size = pin(size); 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mMinimumFontSize != size) { 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMinimumFontSize = size; 7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the minimum font size. 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A non-negative integer between 1 and 72. 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized int getMinimumFontSize() { 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mMinimumFontSize; 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the minimum logical font size. 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param size A non-negative integer between 1 and 72. 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Any number outside the specified range will be pinned. 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setMinimumLogicalFontSize(int size) { 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project size = pin(size); 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mMinimumLogicalFontSize != size) { 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMinimumLogicalFontSize = size; 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the minimum logical font size. 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A non-negative integer between 1 and 72. 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized int getMinimumLogicalFontSize() { 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mMinimumLogicalFontSize; 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the default font size. 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param size A non-negative integer between 1 and 72. 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Any number outside the specified range will be pinned. 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setDefaultFontSize(int size) { 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project size = pin(size); 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mDefaultFontSize != size) { 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDefaultFontSize = size; 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the default font size. 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A non-negative integer between 1 and 72. 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized int getDefaultFontSize() { 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mDefaultFontSize; 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the default fixed font size. 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param size A non-negative integer between 1 and 72. 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Any number outside the specified range will be pinned. 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setDefaultFixedFontSize(int size) { 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project size = pin(size); 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mDefaultFixedFontSize != size) { 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDefaultFixedFontSize = size; 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the default fixed font size. 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A non-negative integer between 1 and 72. 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized int getDefaultFixedFontSize() { 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mDefaultFixedFontSize; 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to load image resources automatically. 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag True if the WebView should load images automatically. 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setLoadsImagesAutomatically(boolean flag) { 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mLoadsImagesAutomatically != flag) { 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLoadsImagesAutomatically = flag; 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if the WebView will load image resources automatically. 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the WebView loads images automatically. 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getLoadsImagesAutomatically() { 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLoadsImagesAutomatically; 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to block network image. This is only checked when 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * getLoadsImagesAutomatically() is true. 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag True if the WebView should block network image 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setBlockNetworkImage(boolean flag) { 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mBlockNetworkImage != flag) { 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mBlockNetworkImage = flag; 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if the WebView will block network image. 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the WebView blocks network image. 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getBlockNetworkImage() { 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mBlockNetworkImage; 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to block all network load requests. 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag True if the WebView should block all network loads 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setBlockNetworkLoads(boolean flag) { 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mBlockNetworkLoads != flag) { 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mBlockNetworkLoads = flag; 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project verifyNetworkAccess(); 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if the WebView will block all network loads. 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the WebView blocks all network loads. 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getBlockNetworkLoads() { 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mBlockNetworkLoads; 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void verifyNetworkAccess() { 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!mBlockNetworkLoads) { 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mContext.checkPermission("android.permission.INTERNET", 855c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project android.os.Process.myPid(), android.os.Process.myUid()) != 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PackageManager.PERMISSION_GRANTED) { 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new SecurityException 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ("Permission denied - " + 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "application missing INTERNET permission"); 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to enable javascript execution. 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag True if the WebView should execute javascript. 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setJavaScriptEnabled(boolean flag) { 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mJavaScriptEnabled != flag) { 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mJavaScriptEnabled = flag; 8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView to enable plugins. 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag True if the WebView should load plugins. 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setPluginsEnabled(boolean flag) { 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mPluginsEnabled != flag) { 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPluginsEnabled = flag; 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set a custom path to plugins used by the WebView. The client 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * must ensure it exists before this call. 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pluginsPath String path to the directory containing plugins. 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setPluginsPath(String pluginsPath) { 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (pluginsPath != null && !pluginsPath.equals(mPluginsPath)) { 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPluginsPath = pluginsPath; 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if javascript is enabled. 9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if javascript is enabled. 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getJavaScriptEnabled() { 9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mJavaScriptEnabled; 9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if plugins are enabled. 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if plugins are enabled. 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getPluginsEnabled() { 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPluginsEnabled; 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the current path used for plugins in the WebView. 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The string path to the WebView plugins. 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getPluginsPath() { 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPluginsPath; 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell javascript to open windows automatically. This applies to the 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * javascript function window.open(). 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag True if javascript can open windows automatically. 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setJavaScriptCanOpenWindowsAutomatically( 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean flag) { 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mJavaScriptCanOpenWindowsAutomatically != flag) { 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mJavaScriptCanOpenWindowsAutomatically = flag; 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return true if javascript can open windows automatically. 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if javascript can open windows automatically during 9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * window.open(). 9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() { 9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mJavaScriptCanOpenWindowsAutomatically; 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the default text encoding name to use when decoding html pages. 9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param encoding The text encoding name. 9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setDefaultTextEncodingName(String encoding) { 9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (encoding != null && !encoding.equals(mDefaultTextEncoding)) { 9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDefaultTextEncoding = encoding; 9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the default text encoding name. 9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The default text encoding name as a string. 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getDefaultTextEncodingName() { 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mDefaultTextEncoding; 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the WebView's user-agent string. If the string "ua" is null or empty, 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it will use the system default user-agent string. 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setUserAgentString(String ua) { 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (ua == null || ua.length() == 0) { 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized(sLockForLocaleSettings) { 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Locale currentLocale = Locale.getDefault(); 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!sLocale.equals(currentLocale)) { 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sLocale = currentLocale; 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAcceptLanguage = getCurrentAcceptLanguage(); 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ua = getCurrentUserAgent(); 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUseDefaultUserAgent = true; 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUseDefaultUserAgent = false; 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!ua.equals(mUserAgent)) { 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUserAgent = ua; 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the WebView's user-agent string. 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String getUserAgentString() { 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (DESKTOP_USERAGENT.equals(mUserAgent) || 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IPHONE_USERAGENT.equals(mUserAgent) || 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project !mUseDefaultUserAgent) { 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mUserAgent; 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean doPostSync = false; 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized(sLockForLocaleSettings) { 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Locale currentLocale = Locale.getDefault(); 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!sLocale.equals(currentLocale)) { 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sLocale = currentLocale; 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUserAgent = getCurrentUserAgent(); 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAcceptLanguage = getCurrentAcceptLanguage(); 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project doPostSync = true; 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (doPostSync) { 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mUserAgent; 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* package api to grab the Accept Language string. */ 10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /*package*/ synchronized String getAcceptLanguage() { 10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized(sLockForLocaleSettings) { 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Locale currentLocale = Locale.getDefault(); 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!sLocale.equals(currentLocale)) { 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sLocale = currentLocale; 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAcceptLanguage = getCurrentAcceptLanguage(); 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mAcceptLanguage; 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tell the WebView whether it needs to set a node to have focus when 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link WebView#requestFocus(int, android.graphics.Rect)} is called. 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flag 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setNeedInitialFocus(boolean flag) { 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mNeedInitialFocus != flag) { 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNeedInitialFocus = flag; 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* Package api to get the choice whether it needs to set initial focus. */ 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* package */ boolean getNeedInitialFocus() { 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mNeedInitialFocus; 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the priority of the Render thread. Unlike the other settings, this 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * one only needs to be called once per process. 10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param priority RenderPriority, can be normal, high or low. 10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized void setRenderPriority(RenderPriority priority) { 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mRenderPriority != priority) { 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRenderPriority = priority; 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mEventHandler.sendMessage(Message.obtain(null, 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EventHandler.PRIORITY)); 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Override the way the cache is used. The way the cache is used is based 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on the navigation option. For a normal page load, the cache is checked 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and content is re-validated as needed. When navigating back, content is 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not revalidated, instead the content is just pulled from the cache. 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This function allows the client to override this behavior. 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mode One of the LOAD_ values. 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setCacheMode(int mode) { 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mode != mOverrideCacheMode) { 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mOverrideCacheMode = mode; 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the current setting for overriding the cache mode. For a full 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * description, see the {@link #setCacheMode(int)} function. 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getCacheMode() { 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mOverrideCacheMode; 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If set, webkit alternately shrinks and expands images viewed outside 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of an HTML page to fit the screen. This conflicts with attempts by 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the UI to zoom in and out of an image, so it is set false by default. 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param shrink Set true to let webkit shrink the standalone image to fit. 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setShrinksStandaloneImagesToFit(boolean shrink) { 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mShrinksStandaloneImagesToFit != shrink) { 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mShrinksStandaloneImagesToFit = shrink; 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project postSync(); 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Transfer messages from the queue to the new WebCoreThread. Called from 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WebCore thread. 10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /*package*/ 10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project synchronized void syncSettingsAndCreateHandler(BrowserFrame frame) { 10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mBrowserFrame = frame; 11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (android.util.Config.DEBUG) { 11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project junit.framework.Assert.assertTrue(frame.mNativeFrame != 0); 11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project nativeSync(frame.mNativeFrame); 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSyncPending = false; 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mEventHandler.createHandler(); 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int pin(int size) { 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // FIXME: 72 is just an arbitrary max text size value. 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (size < 1) { 11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 1; 11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (size > 72) { 11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 72; 11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return size; 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* Post a SYNC message to handle syncing the native settings. */ 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private synchronized void postSync() { 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Only post if a sync is not pending 11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!mSyncPending) { 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSyncPending = mEventHandler.sendMessage( 11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Message.obtain(null, EventHandler.SYNC)); 11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Synchronize the native and java settings. 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private native void nativeSync(int nativeFrame); 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1130