154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project/*
254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *
454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * you may not use this file except in compliance with the License.
654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * You may obtain a copy of the License at
754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *
854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *
1054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
1154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
1254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * See the License for the specific language governing permissions and
1454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * limitations under the License.
1554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */
1654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
1754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectpackage android.webkit;
1854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
199f410c540ad593dd83e34266ccffd70867a600abGeorge Mountimport android.content.Context;
2054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
2154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project/**
2254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Manages settings state for a WebView. When a WebView is first created, it
2354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * obtains a set of default settings. These default settings will be returned
2454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * from any getter call. A WebSettings object obtained from
2554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * WebView.getSettings() is tied to the life of the WebView. If a WebView has
2654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * been destroyed, any method call on WebSettings will throw an
2754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * IllegalStateException.
2854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */
29d3101b1d300f5942fdb7dfa323dc8830c4edc007Jonathan Dixon// This is an abstract base class: concrete WebViewProviders must
303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon// create a class derived from this, and return an instance of it in the
313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon// WebViewProvider.getWebSettingsProvider() method implementation.
320ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurunpublic abstract class WebSettings {
3354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
3454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enum for controlling the layout of html.
354e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <ul>
364e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>NORMAL means no rendering changes.</li>
374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>SINGLE_COLUMN moves all content into one column that is the width of the
384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *       view.</li>
394e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>NARROW_COLUMNS makes all columns no wider than the screen if possible.</li>
404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * </ul>
4154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
4254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    // XXX: These must match LayoutAlgorithm in Settings.h in WebCore.
4354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum LayoutAlgorithm {
4454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL,
455a1ef4132f93f57940a5cc49d32991674d014841John Reck        /**
465a1ef4132f93f57940a5cc49d32991674d014841John Reck         * @deprecated This algorithm is now obsolete.
475a1ef4132f93f57940a5cc49d32991674d014841John Reck         */
485a1ef4132f93f57940a5cc49d32991674d014841John Reck        @Deprecated
4954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SINGLE_COLUMN,
5054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NARROW_COLUMNS
5154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
5254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
5354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enum for specifying the text size.
554e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <ul>
564e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>SMALLEST is 50%</li>
574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>SMALLER is 75%</li>
584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>NORMAL is 100%</li>
594e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>LARGER is 150%</li>
604e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>LARGEST is 200%</li>
614e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * </ul>
624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
63caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link WebSettings#setTextZoom(int)} and {@link WebSettings#getTextZoom()} instead.
6454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
6554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum TextSize {
6654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SMALLEST(50),
6754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SMALLER(75),
6854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL(100),
6954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LARGER(150),
7054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LARGEST(200);
7154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        TextSize(int size) {
7254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project            value = size;
7354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        }
7454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        int value;
7554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
760d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
770d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
780d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Enum for specifying the WebView's desired density.
794e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <ul>
804e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>FAR makes 100% looking like in 240dpi</li>
814e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>MEDIUM makes 100% looking like in 160dpi</li>
824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>CLOSE makes 100% looking like in 120dpi</li>
834e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * </ul>
840d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
850d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public enum ZoomDensity {
860d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        FAR(150),      // 240dpi
870d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        MEDIUM(100),    // 160dpi
880d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        CLOSE(75);     // 120dpi
890d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        ZoomDensity(int size) {
900d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba            value = size;
910d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        }
920d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        int value;
930d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
940d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
9554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
96500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Default cache usage mode. If the navigation type doesn't impose any
97500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * specific behavior, use cached resources when they are available
98500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * and not expired, otherwise load resources from the network.
99500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Use with {@link #setCacheMode}.
10054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
10154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_DEFAULT = -1;
10254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
10354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
104500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Normal cache usage mode. Use with {@link #setCacheMode}.
1055cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     *
1065cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     * @deprecated This value is obsolete, as from API level
1075cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     * {@link android.os.Build.VERSION_CODES#HONEYCOMB} and onwards it has the
1085cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     * same effect as {@link #LOAD_DEFAULT}.
10954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
1105cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen    @Deprecated
11154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_NORMAL = 0;
11254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
11354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
114500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Use cached resources when they are available, even if they have expired.
115500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Otherwise load resources from the network.
11654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
11754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_CACHE_ELSE_NETWORK = 1;
11954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
12054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
121500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Don't use the cache, load from the network.
12254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
12354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
12454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_NO_CACHE = 2;
125a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
12654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
127500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Don't use the network, load from the cache.
12854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
12954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
13054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_CACHE_ONLY = 3;
13154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
13254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum RenderPriority {
13354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL,
13454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        HIGH,
13554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LOW
13654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
13754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
138300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
139300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * The plugin state effects how plugins are treated on a page. ON means
140300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * that any object will be loaded even if a plugin does not exist to handle
141300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the content. ON_DEMAND means that if there is a plugin installed that
142300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * can handle the content, a placeholder is shown until the user clicks on
143300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the placeholder. Once clicked, the plugin will be enabled on the page.
144300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * OFF means that all plugins will be turned off and any fallback content
145300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * will be used.
146300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
147300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public enum PluginState {
148300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        ON,
149300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        ON_DEMAND,
150300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        OFF
151300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
152300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
1530e4cb9d89fe58b378d94c87f182aaaef9d6a6d60Shimeng (Simon) Wang    /**
1543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Hidden constructor to prevent clients from creating a new settings
1553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * instance or deriving the class.
1564e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @hide
1580e4cb9d89fe58b378d94c87f182aaaef9d6a6d60Shimeng (Simon) Wang     */
1593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    protected WebSettings() {
16054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
161a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
16254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
163b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Enables dumping the pages navigation cache to a text file. The default
164b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * is false.
1654e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
166fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
167f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
16854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
169fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
17054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNavDump(boolean enabled) {
1713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
17254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
17354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
17454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1754e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether dumping the navigation cache is enabled.
1764e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
177b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether dumping the navigation cache is enabled
178b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setNavDump
179fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
180f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
18154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
182fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
18354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getNavDump() {
1843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
18554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
18654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
18754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
188b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Sets whether the WebView should support zooming using its on-screen zoom
189b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * controls and gestures. The particular zoom mechanisms that should be used
190b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * can be set with {@link #setBuiltInZoomControls}. This setting does not
191b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * affect zooming performed using the {@link WebView#zoomIn()} and
1924e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * {@link WebView#zoomOut()} methods. The default is true.
1934e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1944e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param support whether the WebView should support zoom
19554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
19654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSupportZoom(boolean support) {
1973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
19854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
19954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
20054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
2014e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView supports zoom.
2024e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2034e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView supports zoom
2044e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setSupportZoom
20554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
20654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean supportZoom() {
2073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
20854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
20954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
21054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
2110e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * Sets whether the WebView requires a user gesture to play media.
2120e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * The default is true.
2130e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     *
2140e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * @param require whether the WebView requires a user gesture to play media
2150e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     */
2160e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    public void setMediaPlaybackRequiresUserGesture(boolean require) {
2170e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu        throw new MustOverrideException();
2180e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    }
2190e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu
2200e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    /**
2210e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * Gets whether the WebView requires a user gesture to play media.
2220e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     *
2230e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * @return true if the WebView requires a user gesture to play media
2240e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * @see #setMediaPlaybackRequiresUserGesture
2250e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     */
2260e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    public boolean getMediaPlaybackRequiresUserGesture() {
2270e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu        throw new MustOverrideException();
2280e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    }
2290e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu
2300e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    /**
23106d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * Sets whether the WebView should use its built-in zoom mechanisms. The
23206d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * built-in zoom mechanisms comprise on-screen zoom controls, which are
23306d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * displayed over the WebView's content, and the use of a pinch gesture to
23406d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * control zooming. Whether or not these on-screen controls are displayed
2354e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * can be set with {@link #setDisplayZoomControls}. The default is false.
23606d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * <p>
23706d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * The built-in mechanisms are the only currently supported zoom
23806d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * mechanisms, so it is recommended that this setting is always enabled.
2394e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param enabled whether the WebView should use its built-in zoom mechanisms
24106d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     */
24206d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // This method was intended to select between the built-in zoom mechanisms
24306d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // and the separate zoom controls. The latter were obtained using
24406d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // {@link WebView#getZoomControls}, which is now hidden.
245105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public void setBuiltInZoomControls(boolean enabled) {
2463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
247105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
248a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
249105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
2504e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the zoom mechanisms built into WebView are being used.
2514e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the zoom mechanisms built into WebView are being used
2534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setBuiltInZoomControls
254105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     */
255105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public boolean getBuiltInZoomControls() {
2563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
257105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
258a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
259105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
260b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Sets whether the WebView should display on-screen zoom controls when
261b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * using the built-in zoom mechanisms. See {@link #setBuiltInZoomControls}.
2624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * The default is true.
2634e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2644e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param enabled whether the WebView should display on-screen zoom controls
2656fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2666fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public void setDisplayZoomControls(boolean enabled) {
2673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2686fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2696fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2706fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
2714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView displays on-screen zoom controls when using
272b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * the built-in zoom mechanisms.
2734e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2744e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView displays on-screen zoom controls when using
2754e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *         the built-in zoom mechanisms
2764e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDisplayZoomControls
2776fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2786fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public boolean getDisplayZoomControls() {
2793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2806fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2816fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2826fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
2834e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Enables or disables file access within WebView. File access is enabled by
284d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * default.  Note that this enables or disables file system access only.
285d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Assets and resources are still accessible using file:///android_asset and
286d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * file:///android_res.
287f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
288f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public void setAllowFileAccess(boolean allow) {
2893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
290f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
291f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
292f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
2934e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether this WebView supports file access.
2944e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2954e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowFileAccess
296f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
297f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public boolean getAllowFileAccess() {
2983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
299f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
300f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
301f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
3024e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Enables or disables content URL access within WebView.  Content URL
3034e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * access allows WebView to load content from a content provider installed
3044e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * in the system. The default is enabled.
305d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
306d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public void setAllowContentAccess(boolean allow) {
3073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
308d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
309d1737edc13864b2304763167720b27b68791e25aPatrick Scott
310d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
3114e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether this WebView supports content URL access.
3124e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
3134e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowContentAccess
314d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
315d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public boolean getAllowContentAccess() {
3163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
317d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
318d1737edc13864b2304763167720b27b68791e25aPatrick Scott
319d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
320b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView loads pages in overview mode. The default is
321b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * false.
322e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
323e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public void setLoadWithOverviewMode(boolean overview) {
3243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
325e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
326e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
327e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
328b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether this WebView loads pages in overview mode.
329b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
330b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether this WebView loads pages in overview mode
331b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setLoadWithOverviewMode
332e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
333e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public boolean getLoadWithOverviewMode() {
3343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
335e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
336e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
337e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
3384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets whether the WebView will enable smooth transition while panning or
339e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * zooming or while the window hosting the WebView does not have focus.
340e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is true, WebView will choose a solution to maximize the performance.
341e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * e.g. the WebView's content may not be updated during the transition.
342e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is false, WebView will keep its fidelity. The default value is false.
3435cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     *
3445cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     * @deprecated This method is now obsolete, and will become a no-op in future.
345f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
3465cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen    @Deprecated
347f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public void setEnableSmoothTransition(boolean enable) {
3483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
349f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
3504e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block
351f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
3524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView enables smooth transition while panning or
353f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * zooming.
3544e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
3554e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setEnableSmoothTransition
3565cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     *
3575cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen     * @deprecated This method is now obsolete, and will become a no-op in future.
358f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
3595cc2351ded6a13fadcc3bb14fdaf31ac66c05b2dKristian Monsen    @Deprecated
360f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public boolean enableSmoothTransition() {
3613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
362f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
363f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba
364f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
3654e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets whether the WebView uses its background for over scroll background.
366637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * If true, it will use the WebView's background. If false, it will use an
367637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern. Default is true.
3684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
369fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
370d0b90d30d86679fe52cb1af383900a70fc44cb2aKristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
371637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
372fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
373637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public void setUseWebViewBackgroundForOverscrollBackground(boolean view) {
3743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
375637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
376637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
377637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
3784e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether this WebView uses WebView's background instead of
379637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern for over scroll background.
3804e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
3814e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setUseWebViewBackgroundForOverscrollBackground
382fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
383f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
384637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
385fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
386637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public boolean getUseWebViewBackgroundForOverscrollBackground() {
3873c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
388637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
389637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
390637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
391b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView should save form data. The default is true,
392b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * unless in private browsing mode, when the value is always false.
39354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
39454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSaveFormData(boolean save) {
3953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
39654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
39754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
39854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
399b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether the WebView saves form data. Always false in private
400b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * browsing mode.
401b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
402b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether the WebView saves form data
403b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSaveFormData
40454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
40554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSaveFormData() {
4063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
40754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
40854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
40954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
410b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView should save passwords. The default is true.
41154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
41254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSavePassword(boolean save) {
4133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
41454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
41554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
41654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
417b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether the WebView saves passwords.
418b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
419b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether the WebView saves passwords
420b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSavePassword
42154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
42254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSavePassword() {
4233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
42454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
42554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
42654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
427b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the text zoom of the page in percent. The default is 100.
4284e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
429b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param textZoom the text zoom in percent
430ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
431ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized void setTextZoom(int textZoom) {
4323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
433ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
434ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
435ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
4364e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the text zoom of the page in percent.
4374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
438b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the text zoom of the page in percent
4399d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov     * @see #setTextZoom
440ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
441ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized int getTextZoom() {
4423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
443ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
444ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
445ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
446b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the text size of the page. The default is {@link TextSize#NORMAL}.
4474e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
448b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param t the text size as a {@link TextSize} value
449b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Use {@link #setTextZoom} instead.
45054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
45154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setTextSize(TextSize t) {
4529d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        setTextZoom(t.value);
45354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
45454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
45554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
4564e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the text size of the page. If the text size was previously specified
457b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * in percent using {@link #setTextZoom}, this will return the closest
458b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * matching {@link TextSize}.
4594e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
460b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the text size as a {@link TextSize} value
461b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setTextSize
462b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Use {@link #getTextZoom} instead.
46354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
46454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized TextSize getTextSize() {
4659d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        TextSize closestSize = null;
4669d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        int smallestDelta = Integer.MAX_VALUE;
4679d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        int textSize = getTextZoom();
4689d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        for (TextSize size : TextSize.values()) {
4699d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov            int delta = Math.abs(textSize - size.value);
4709d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov            if (delta == 0) {
4719d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov                return size;
4729d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov            }
4739d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov            if (delta < smallestDelta) {
4749d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov                smallestDelta = delta;
4759d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov                closestSize = size;
4769d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov            }
4779d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        }
4789d5e7aa38d5945b98aa9e193a37242cc1db35422Mikhail Naganov        return closestSize != null ? closestSize : TextSize.NORMAL;
479edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    }
480edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware
481edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    /**
482b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the default zoom density of the page. This must be called from the UI
483b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * thread. The default is {@link ZoomDensity#MEDIUM}.
4844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
485b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param zoom the zoom density
4860d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
4870d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public void setDefaultZoom(ZoomDensity zoom) {
4883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
4890d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
4900d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
4910d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
492b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the default zoom density of the page. This should be called from
493b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * the UI thread.
494b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
495b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the zoom density
496b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDefaultZoom
4970d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
4980d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public ZoomDensity getDefaultZoom() {
4993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
5000d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
5010d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
5020d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
50354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enables using light touches to make a selection and activate mouseovers.
504b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * The default is false.
50554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
50654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setLightTouchEnabled(boolean enabled) {
5073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
50854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
50954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
51054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5114e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether light touches are enabled.
512b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
513b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether light touches are enabled
514b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setLightTouchEnabled
51554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
51654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getLightTouchEnabled() {
5173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
51854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
51954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
52054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5214e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Controlled a rendering optimization that is no longer present. Setting
5224e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * it now has no effect.
5234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
5244e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @deprecated This setting now has no effect.
525f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
52654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
527adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
52854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseDoubleTree(boolean use) {
5293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
53054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
53154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
53254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5334e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Controlled a rendering optimization that is no longer present. Setting
5344e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * it now has no effect.
5354e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
5364e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @deprecated This setting now has no effect.
537f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
53854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
539adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
54054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseDoubleTree() {
5413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Returns false unconditionally, so no need for derived classes to override.
542adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn        return false;
54354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
54454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
54554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
546b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the user-agent string using an integer code.
547b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * <ul>
548b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>0 means the WebView should use an Android user-agent string</li>
549b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>1 means the WebView should use a desktop user-agent string</li>
550b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * </ul>
551b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Other values are ignored. The default is an Android user-agent string,
552b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * i.e. code value 0.
553f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
554b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param ua the integer code for the user-agent string
555b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Please use {@link #setUserAgentString} instead.
556f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
55754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
558f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
55954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUserAgent(int ua) {
5603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
56154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
56254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
56354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
564b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the user-agent as an integer code.
565b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * <ul>
566b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>-1 means the WebView is using a custom user-agent string set with
567b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   {@link #setUserAgentString}</li>
568b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>0 means the WebView should use an Android user-agent string</li>
569b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>1 means the WebView should use a desktop user-agent string</li>
570b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * </ul>
571f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
572b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the integer code for the user-agent string
573b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setUserAgent
574b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Please use {@link #getUserAgentString} instead.
575f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
57654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
577f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
57854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getUserAgent() {
5793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
58054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
58154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
58254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
583b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Tells the WebView to use a wide viewport. The default is false.
584b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
585b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param use whether to use a wide viewport
58654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
58754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseWideViewPort(boolean use) {
5883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
58954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
59054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
59154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5924e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView is using a wide viewport.
5934e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
5944e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView is using a wide viewport
595b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setUseWideViewPort
59654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
59754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseWideViewPort() {
5983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
59954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
60054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
60154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
602b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView whether supports multiple windows. If set to
603b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * true, {@link WebChromeClient#onCreateWindow} must be implemented by the
604b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * host application. The default is false.
605b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
606b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param support whether to suport multiple windows
60754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
60854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSupportMultipleWindows(boolean support) {
6093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
61054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
61154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
61254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
613b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether the WebView supports multiple windows.
6144e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
615b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return true if the WebView supports multiple windows
616b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSupportMultipleWindows
61754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
61854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean supportMultipleWindows() {
6193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
62054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
62154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
62254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the underlying layout algorithm. This will cause a relayout of the
624b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * WebView. The default is {@link LayoutAlgorithm#NARROW_COLUMNS}.
6254e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
626b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param l the layout algorithm to use, as a {@link LayoutAlgorithm} value
62754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
62854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
6293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
63054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
63154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
63254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6334e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the current layout algorithm.
6344e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
635b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the layout algorithm in use, as a {@link LayoutAlgorithm} value
6364e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setLayoutAlgorithm
63754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
63854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized LayoutAlgorithm getLayoutAlgorithm() {
6393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
64054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
64154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
64254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6434e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the standard font family name. The default is "sans-serif".
6444e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6454e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
64654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
64754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setStandardFontFamily(String font) {
6483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
64954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
65054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
65154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the standard font family name.
6534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6544e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the standard font family name as a string
6554e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setStandardFontFamily
65654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
65754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getStandardFontFamily() {
6583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
65954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
66054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
66154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the fixed font family name. The default is "monospace".
6634e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6644e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
66554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
66654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFixedFontFamily(String font) {
6673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
66854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
66954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
67054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the fixed font family name.
6724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6734e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the fixed font family name as a string
6744e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setFixedFontFamily
67554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
67654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFixedFontFamily() {
6773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
67854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
67954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
68054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
681b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the sans-serif font family name. The default is "sans-serif".
6824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6834e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
68454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
68554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSansSerifFontFamily(String font) {
6863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
68754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
68854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
68954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6904e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the sans-serif font family name.
6914e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6924e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the sans-serif font family name as a string
693b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSansSerifFontFamily
69454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
69554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSansSerifFontFamily() {
6963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
69754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
69854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
69954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7004e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the serif font family name. The default is "sans-serif".
7014e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7024e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
70354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
70454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSerifFontFamily(String font) {
7053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
70654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
70754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
70854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7094e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the serif font family name. The default is "serif".
7104e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7114e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the serif font family name as a string
7124e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setSerifFontFamily
71354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
71454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSerifFontFamily() {
7153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
71654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
71754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
71854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7194e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the cursive font family name. The default is "cursive".
7204e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7214e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
72254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
72354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setCursiveFontFamily(String font) {
7243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
72554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
72654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
72754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7284e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the cursive font family name.
7294e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7304e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the cursive font family name as a string
7314e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setCursiveFontFamily
73254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
73354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getCursiveFontFamily() {
7343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
73554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
73654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
73754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the fantasy font family name. The default is "fantasy".
7394e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
74154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
74254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFantasyFontFamily(String font) {
7433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
74454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
74554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
74654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7474e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the fantasy font family name.
7484e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7494e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the fantasy font family name as a string
7504e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setFantasyFontFamily
75154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
75254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFantasyFontFamily() {
7533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
75454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
75554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
75654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the minimum font size. The default is 8.
7584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7594e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
7604e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
76154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
76254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumFontSize(int size) {
7633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
76454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
76554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
76654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7674e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the minimum font size.
7684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7694e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
7704e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setMinimumFontSize
77154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
77254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumFontSize() {
7733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
77454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
77554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
77654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7774e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the minimum logical font size. The default is 8.
7784e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7794e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
7804e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
78154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
78254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumLogicalFontSize(int size) {
7833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
78454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
78554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
78654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7874e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the minimum logical font size.
7884e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7894e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
7904e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setMinimumLogicalFontSize
79154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
79254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumLogicalFontSize() {
7933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
79454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
79554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
79654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the default font size. The default is 16.
7984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7994e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
8004e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
80154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
80254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFontSize(int size) {
8033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
80454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
80554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
80654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8074e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the default font size.
8084e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8094e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
8104e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDefaultFontSize
81154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
81254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFontSize() {
8133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
81454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
81554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
81654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8174e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the default fixed font size. The default is 16.
8184e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8194e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
8204e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
82154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
82254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFixedFontSize(int size) {
8233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
82454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
82554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
82654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8274e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the default fixed font size.
8284e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8294e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
8304e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDefaultFixedFontSize
83154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
83254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFixedFontSize() {
8333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
834097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    }
835097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba
836097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    /**
837605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should load image resources. Note that this method
838605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * controls loading of all images, including those embedded using the data
839605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * URI scheme. Use {@link #setBlockNetworkImage} to control loading only
840605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * of images specified using network URI schemes. Note that if the value of this
841605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * setting is changed from false to true, all images resources referenced
842605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * by content currently displayed by the WebView are loaded automatically.
8434e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * The default is true.
8444e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8454e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView should load image resources
84654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
84754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLoadsImagesAutomatically(boolean flag) {
8483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
84954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
85054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
85154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView loads image resources. This includes
8534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * images embedded using the data URI scheme.
8544e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8554e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView loads image resources
8564e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setLoadsImagesAutomatically
85754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
85854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getLoadsImagesAutomatically() {
8593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
86054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
86154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
86254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
863605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load image resources from the
864605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network (resources accessed via http and https URI schemes).  Note
865605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * that this method has no effect unless
866605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link #getLoadsImagesAutomatically} returns true. Also note that
867605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * disabling all network loads using {@link #setBlockNetworkLoads}
868605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * will also prevent network images from loading, even if this flag is set
869605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * to false. When the value of this setting is changed from true to false,
870605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network images resources referenced by content currently displayed by
8714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * the WebView are fetched automatically. The default is false.
8724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8734e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView should not load image resources from the
8744e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             network
875f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see #setBlockNetworkLoads
87654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
87754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setBlockNetworkImage(boolean flag) {
8783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
87954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
88054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
88154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView does not load image resources from the network.
8834e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView does not load image resources from the network
8854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setBlockNetworkImage
88654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
88754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getBlockNetworkImage() {
8883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
88954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
890adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn
891f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
892605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load resources from the network.
893605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Use {@link #setBlockNetworkImage} to only avoid loading
894605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * image resources. Note that if the value of this setting is
895605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * changed from true to false, network resources referenced by content
896605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * currently displayed by the WebView are not fetched until
897605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.webkit.WebView#reload} is called.
898605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * If the application does not have the
899605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.Manifest.permission#INTERNET} permission, attempts to set
900605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * a value of false will cause a {@link java.lang.SecurityException}
9014e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * to be thrown. The default value is false if the application has the
9024e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * {@link android.Manifest.permission#INTERNET} permission, otherwise it is
9034e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * true.
9044e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9054e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView should not load any resources from the
9064e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             network
907f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see android.webkit.WebView#reload
908f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
909f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setBlockNetworkLoads(boolean flag) {
9103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
911f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
912f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
913f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
9144e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView does not load any resources from the network.
9154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9164e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView does not load any resources from the network
9174e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setBlockNetworkLoads
918f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
919f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized boolean getBlockNetworkLoads() {
9203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
921f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
92254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
92354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
9244e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells the WebView to enable JavaScript execution.
9254e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <b>The default is false.</b>
9264e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9274e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should execute JavaScript
92854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
92954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setJavaScriptEnabled(boolean flag) {
9303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
931da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    }
932da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu
933da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    /**
934ef163150805625a148a9715eff6693277f79dcefSteve Block     * Sets whether JavaScript running in the context of a file scheme URL
935ef163150805625a148a9715eff6693277f79dcefSteve Block     * should be allowed to access content from any origin. This includes
936ef163150805625a148a9715eff6693277f79dcefSteve Block     * access to content from other file scheme URLs. See
937ef163150805625a148a9715eff6693277f79dcefSteve Block     * {@link #setAllowFileAccessFromFileURLs}. To enable the most restrictive,
938ef163150805625a148a9715eff6693277f79dcefSteve Block     * and therefore secure policy, this setting should be disabled.
939ef163150805625a148a9715eff6693277f79dcefSteve Block     * <p>
940ef163150805625a148a9715eff6693277f79dcefSteve Block     * The default value is true for API level
941ef163150805625a148a9715eff6693277f79dcefSteve Block     * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and below,
942ef163150805625a148a9715eff6693277f79dcefSteve Block     * and false for API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN}
943ef163150805625a148a9715eff6693277f79dcefSteve Block     * and above.
9440ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
945ef163150805625a148a9715eff6693277f79dcefSteve Block     * @param flag whether JavaScript running in the context of a file scheme
946ef163150805625a148a9715eff6693277f79dcefSteve Block     *             URL should be allowed to access content from any origin
9470ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
9480ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract void setAllowUniversalAccessFromFileURLs(boolean flag);
9490ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
9500ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
951ef163150805625a148a9715eff6693277f79dcefSteve Block     * Sets whether JavaScript running in the context of a file scheme URL
952ef163150805625a148a9715eff6693277f79dcefSteve Block     * should be allowed to access content from other file scheme URLs. To
953ef163150805625a148a9715eff6693277f79dcefSteve Block     * enable the most restrictive, and therefore secure policy, this setting
954ef163150805625a148a9715eff6693277f79dcefSteve Block     * should be disabled. Note that the value of this setting is ignored if
955ef163150805625a148a9715eff6693277f79dcefSteve Block     * the value of {@link #getAllowUniversalAccessFromFileURLs} is true.
956ef163150805625a148a9715eff6693277f79dcefSteve Block     * <p>
957ef163150805625a148a9715eff6693277f79dcefSteve Block     * The default value is true for API level
958ef163150805625a148a9715eff6693277f79dcefSteve Block     * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and below,
959ef163150805625a148a9715eff6693277f79dcefSteve Block     * and false for API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN}
960ef163150805625a148a9715eff6693277f79dcefSteve Block     * and above.
9610ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
962ef163150805625a148a9715eff6693277f79dcefSteve Block     * @param flag whether JavaScript running in the context of a file scheme
963ef163150805625a148a9715eff6693277f79dcefSteve Block     *             URL should be allowed to access content from other file
964ef163150805625a148a9715eff6693277f79dcefSteve Block     *             scheme URLs
9650ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
9660ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract void setAllowFileAccessFromFileURLs(boolean flag);
9670ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
9680ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
969b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView should enable plugins. The default is false.
9704e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
971b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param flag true if plugins should be enabled
972300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been deprecated in favor of
973300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     *             {@link #setPluginState}
97454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
975a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
97654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsEnabled(boolean flag) {
9773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
978300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
979300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
980300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
9814e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells the WebView to enable, disable, or have plugins on demand. On
982300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * demand mode means that if a plugin exists that can handle the embedded
983300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * content, a placeholder icon will be shown instead of the plugin. When
984b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * the placeholder is clicked, the plugin will be enabled. The default is
985b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link PluginState#OFF}.
9864e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9874e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param state a PluginState value
988300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
989300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized void setPluginState(PluginState state) {
9903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
99154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
99254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
99354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
9944e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets a custom path to plugins used by the WebView. This method is
995fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
9964e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param pluginsPath a String path to the directory containing plugins
998fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
9994e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             their own APK via the system's package manager.
100054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
10019dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
100254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsPath(String pluginsPath) {
10033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
100454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
100554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
100654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
10074e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the path to where database storage API databases should be saved.
100872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * In order for the database storage API to function correctly, this method
100972ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * must be called with a path to which the application can write. This
101072ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * method should only be called once: repeated calls are ignored.
10114e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
101272ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * @param databasePath a path to the directory where databases should be
101372ca7a45ac4a911435a60361964a15045515eaf5Steve Block     *                     saved.
10147df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
10154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block    // This will update WebCore when the Sync runs in the C++ side.
101672ca7a45ac4a911435a60361964a15045515eaf5Steve Block    // Note that the WebCore Database Tracker only allows the path to be set
101772ca7a45ac4a911435a60361964a15045515eaf5Steve Block    // once.
10187df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabasePath(String databasePath) {
10193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10207df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
10217df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
10227df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
102372ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Sets the path where the Geolocation databases should be saved. In order
102472ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * for Geolocation permissions and cached positions to be persisted, this
102572ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * method must be called with a path to which the application can write.
10264e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
102772ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * @param databasePath a path to the directory where databases should be
102872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     *                     saved.
10299d3273f62288fa54536a3928383588398ca2d029Steve Block     */
10304e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block    // This will update WebCore when the Sync runs in the C++ side.
10319d3273f62288fa54536a3928383588398ca2d029Steve Block    public synchronized void setGeolocationDatabasePath(String databasePath) {
10323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10339d3273f62288fa54536a3928383588398ca2d029Steve Block    }
10349d3273f62288fa54536a3928383588398ca2d029Steve Block
10359d3273f62288fa54536a3928383588398ca2d029Steve Block    /**
103672ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Sets whether the Application Caches API should be enabled. The default
103772ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * is false. Note that in order for the Application Caches API to be
103872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * enabled, a valid database path must also be supplied to
103972ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * {@link #setAppCachePath}.
10404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10414e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should enable Application Caches
104260a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
104360a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    public synchronized void setAppCacheEnabled(boolean flag) {
10443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
104560a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
104660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
104760a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
104872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Sets the path to the Application Caches files. In order for the
104972ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Application Caches API to be enabled, this method must be called with a
105072ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * path to which the application can write. This method should only be
105172ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * called once: repeated calls are ignored.
10524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param appCachePath a String path to the directory containing
105472ca7a45ac4a911435a60361964a15045515eaf5Steve Block     *                     Application Caches files.
105572ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * @see setAppCacheEnabled
105660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
10573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setAppCachePath(String appCachePath) {
10583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
105960a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
106060a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
106160a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
1062b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * Sets the maximum size for the Application Cache content. The passed size
1063b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * will be rounded to the nearest value that the database can support, so
1064b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * this should be viewed as a guide, not a hard limit. Setting the
1065b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * size to a value less than current database size does not cause the
1066f27ac09501dfcf12668c8144fbc8cc041b872388Selim Gurun     * database to be trimmed. The default size is {@link Long#MAX_VALUE}.
10674e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param appCacheMaxSize the maximum size in bytes
10691c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     */
10701c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    public synchronized void setAppCacheMaxSize(long appCacheMaxSize) {
10713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10721c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    }
10731c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu
10741c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    /**
1075b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the database storage API is enabled. The default value is
1076b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * false. See also {@link #setDatabasePath} for how to correctly set up the
1077b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * database storage API.
10784e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10794e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should use the database storage API
10807df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
10817df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabaseEnabled(boolean flag) {
10823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10837df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
10847df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
10857df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
1086b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the DOM storage API is enabled. The default value is false.
10874e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10884e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should use the DOM storage API
1089274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
1090274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized void setDomStorageEnabled(boolean flag) {
10913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1092274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
1093274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch
1094274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
10954e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the DOM Storage APIs are enabled.
10964e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the DOM Storage APIs are enabled
1098b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDomStorageEnabled
1099274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
1100274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized boolean getDomStorageEnabled() {
11013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1102274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
1103274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
1104b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the path to where database storage API databases are saved.
11054e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11064e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the String path to the database storage API databases
1107b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDatabasePath
11087df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
11097df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized String getDatabasePath() {
11103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
11117df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
11127df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
11137df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
11144e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the database storage API is enabled.
11154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11164e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the database storage API is enabled
1117b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDatabaseEnabled
11187df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
11197df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized boolean getDatabaseEnabled() {
11203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1121c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    }
1122c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu
1123c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    /**
1124b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether Geolocation is enabled. The default is true. See also
1125b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link #setGeolocationDatabasePath} for how to correctly set up
1126b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Geolocation.
11274e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11284e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether Geolocation should be enabled
112906cd751b052e65c359b16cce0570b6fab305eb89Steve Block     */
113006cd751b052e65c359b16cce0570b6fab305eb89Steve Block    public synchronized void setGeolocationEnabled(boolean flag) {
11313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
11325dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    }
11335dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter
11345dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    /**
11354e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether JavaScript is enabled.
11364e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if JavaScript is enabled
11384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setJavaScriptEnabled
113954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
114054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptEnabled() {
11413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
114254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
114354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
114454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1145ef163150805625a148a9715eff6693277f79dcefSteve Block     * Gets whether JavaScript running in the context of a file scheme URL can
1146ef163150805625a148a9715eff6693277f79dcefSteve Block     * access content from any origin. This includes access to content from
1147ef163150805625a148a9715eff6693277f79dcefSteve Block     * other file scheme URLs.
11480ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
1149ef163150805625a148a9715eff6693277f79dcefSteve Block     * @return whether JavaScript running in the context of a file scheme URL
1150ef163150805625a148a9715eff6693277f79dcefSteve Block     *         can access content from any origin
11514e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowUniversalAccessFromFileURLs
11520ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
11530ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract boolean getAllowUniversalAccessFromFileURLs();
11540ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
11550ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
1156ef163150805625a148a9715eff6693277f79dcefSteve Block     * Gets whether JavaScript running in the context of a file scheme URL can
1157ef163150805625a148a9715eff6693277f79dcefSteve Block     * access content from other file scheme URLs.
11580ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
1159ef163150805625a148a9715eff6693277f79dcefSteve Block     * @return whether JavaScript running in the context of a file scheme URL
1160ef163150805625a148a9715eff6693277f79dcefSteve Block     *         can access content from other file scheme URLs
11614e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowFileAccessFromFileURLs
11620ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
11630ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract boolean getAllowFileAccessFromFileURLs();
11640ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
11650ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
11664e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether plugins are enabled.
11674e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if plugins are enabled
1169b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setPluginsEnabled
1170300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been replaced by {@link #getPluginState}
117154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
1172a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
117354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getPluginsEnabled() {
11743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1175300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
1176300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
1177300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
1178b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the current state regarding whether plugins are enabled.
11794e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1180b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the plugin state as a {@link PluginState} value
1181b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setPluginState
1182300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
1183300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized PluginState getPluginState() {
11843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
118554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
118654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
118754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
11884e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the directory that contains the plugin libraries. This method is
1189fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
11904e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11914e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return an empty string
1192fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
1193fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * their own APK via the system's package manager.
119454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11959dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
119654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getPluginsPath() {
11973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Unconditionally returns empty string, so no need for derived classes to override.
1198658ab7d787f64987d7c45aae08e5a12a073afe78Grace Kloba        return "";
119954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
120054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
120154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12024e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells JavaScript to open windows automatically. This applies to the
12034e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * JavaScript function window.open(). The default is false.
12044e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
12054e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if JavaScript can open windows automatically
120654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
12073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
12083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
120954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
121054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
121154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12124e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether JavaScript can open windows automatically.
12134e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
12144e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if JavaScript can open windows automatically during
12154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *         window.open()
12164e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setJavaScriptCanOpenWindowsAutomatically
121754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
121854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() {
12193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
122054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
122154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12224e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the default text encoding name to use when decoding html pages.
12234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * The default is "Latin-1".
12244e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
12254e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param encoding the text encoding name
122654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
122754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultTextEncodingName(String encoding) {
12283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
122954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
123054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
123154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12324e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the default text encoding name.
12334e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
12344e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the default text encoding name as a string
12354e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDefaultTextEncodingName
123654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
123754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getDefaultTextEncodingName() {
12383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
123954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
124054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
1241f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
1242b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the WebView's user-agent string. If the string is null or empty,
1243b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * the system default value will be used.
1244f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
1245f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setUserAgentString(String ua) {
12463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1247f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
1248f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
1249f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
12504e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the WebView's user-agent string.
1251b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
1252b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the WebView's user-agent string
1253b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setUserAgentString
1254f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
1255f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized String getUserAgentString() {
12563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1257c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang    }
1258c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang
125954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12609f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * Returns the default User-Agent used by a WebView.
12619f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * An instance of WebView could use a different User-Agent if a call
1262f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * is made to {@link WebSettings#setUserAgentString(String)}.
12639f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     *
12649f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * @param context a Context object used to access application assets
12659f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     */
12669f410c540ad593dd83e34266ccffd70867a600abGeorge Mount    public static String getDefaultUserAgent(Context context) {
1267951fcabef694ce3a78c1e7a8d03a27bd337db021Jonathan Dixon        return WebViewFactory.getProvider().getStatics().getDefaultUserAgent(context);
12689f410c540ad593dd83e34266ccffd70867a600abGeorge Mount    }
12699f410c540ad593dd83e34266ccffd70867a600abGeorge Mount
12709f410c540ad593dd83e34266ccffd70867a600abGeorge Mount    /**
12714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells the WebView whether it needs to set a node to have focus when
1272b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link WebView#requestFocus(int, android.graphics.Rect)} is called. The
1273b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * default value is true.
1274a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb     *
12754e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView needs to set a node
127654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
127754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNeedInitialFocus(boolean flag) {
12783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
127954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
128054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
128154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the priority of the Render thread. Unlike the other settings, this
1283b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * one only needs to be called once per process. The default value is
1284b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link RenderPriority#NORMAL}.
1285adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     *
1286b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param priority the priority
128754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
128854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setRenderPriority(RenderPriority priority) {
12893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
129054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1291a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
129254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12934e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Overrides the way the cache is used. The way the cache is used is based
1294b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * on the navigation type. For a normal page load, the cache is checked
129554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * and content is re-validated as needed. When navigating back, content is
1296b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * not revalidated, instead the content is just retrieved from the cache.
1297b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * This method allows the client to override this behavior by specifying
1298b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * one of {@link #LOAD_DEFAULT}, {@link #LOAD_NORMAL},
1299b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link #LOAD_CACHE_ELSE_NETWORK}, {@link #LOAD_NO_CACHE} or
1300b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link #LOAD_CACHE_ONLY}. The default value is {@link #LOAD_DEFAULT}.
13014e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1302b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param mode the mode to use
130354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
130454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setCacheMode(int mode) {
13053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
130654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1307a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
130854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1309b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the current setting for overriding the cache mode.
1310b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
1311b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the current setting for overriding the cache mode
1312b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setCacheMode
131354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
131454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public int getCacheMode() {
13153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
131654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
131754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project}
1318