WebSettings.java revision 06d268e3ad1129814829af5d3b84752d84c1acf2
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
1954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.os.Message;
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 */
293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon// This is (effectively) 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.
3254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectpublic class WebSettings {
333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    // TODO: Remove MustOverrideException and make all methods throwing it abstract instead;
343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    // needs API file update.
353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    private static class MustOverrideException extends RuntimeException {
363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        MustOverrideException() {
373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon            super("abstract function called: must be overriden!");
383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        }
393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    }
403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
4154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
4254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enum for controlling the layout of html.
4354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * NORMAL means no rendering changes.
4454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * SINGLE_COLUMN moves all content into one column that is the width of the
4554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * view.
4654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * NARROW_COLUMNS makes all columns no wider than the screen if possible.
4754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
4854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    // XXX: These must match LayoutAlgorithm in Settings.h in WebCore.
4954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum LayoutAlgorithm {
5054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL,
515a1ef4132f93f57940a5cc49d32991674d014841John Reck        /**
525a1ef4132f93f57940a5cc49d32991674d014841John Reck         * @deprecated This algorithm is now obsolete.
535a1ef4132f93f57940a5cc49d32991674d014841John Reck         */
545a1ef4132f93f57940a5cc49d32991674d014841John Reck        @Deprecated
5554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SINGLE_COLUMN,
5654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NARROW_COLUMNS
5754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
5854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
5954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enum for specifying the text size.
6154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * SMALLEST is 50%
6254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * SMALLER is 75%
6354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * NORMAL is 100%
6454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * LARGER is 150%
6554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * LARGEST is 200%
66caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link WebSettings#setTextZoom(int)} and {@link WebSettings#getTextZoom()} instead.
6754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
6854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum TextSize {
6954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SMALLEST(50),
7054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SMALLER(75),
7154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL(100),
7254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LARGER(150),
7354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LARGEST(200);
7454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        TextSize(int size) {
7554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project            value = size;
7654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        }
7754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        int value;
7854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
790d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
800d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
810d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Enum for specifying the WebView's desired density.
820d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * FAR makes 100% looking like in 240dpi
830d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * MEDIUM makes 100% looking like in 160dpi
840d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * CLOSE makes 100% looking like in 120dpi
850d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
860d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public enum ZoomDensity {
870d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        FAR(150),      // 240dpi
880d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        MEDIUM(100),    // 160dpi
890d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        CLOSE(75);     // 120dpi
900d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        ZoomDensity(int size) {
910d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba            value = size;
920d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        }
930d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        int value;
940d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
950d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
9654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
9754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Default cache usage pattern  Use with {@link #setCacheMode}.
9854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
9954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_DEFAULT = -1;
10054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
10154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
10254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Normal cache usage pattern  Use with {@link #setCacheMode}.
10354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
10454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_NORMAL = 0;
10554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
10654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
10754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use cache if content is there, even if expired (eg, history nav)
10854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * If it is not in the cache, load from network.
10954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
11054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_CACHE_ELSE_NETWORK = 1;
11254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
11354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
11454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Don't use the cache, load from network
11554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
11654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_NO_CACHE = 2;
118a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
11954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Don't use the network, load from cache only.
12154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
12254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
12354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_CACHE_ONLY = 3;
12454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
12554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum RenderPriority {
12654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL,
12754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        HIGH,
12854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LOW
12954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
13054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
131300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
132300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * The plugin state effects how plugins are treated on a page. ON means
133300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * that any object will be loaded even if a plugin does not exist to handle
134300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the content. ON_DEMAND means that if there is a plugin installed that
135300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * can handle the content, a placeholder is shown until the user clicks on
136300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the placeholder. Once clicked, the plugin will be enabled on the page.
137300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * OFF means that all plugins will be turned off and any fallback content
138300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * will be used.
139300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
140300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public enum PluginState {
141300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        ON,
142300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        ON_DEMAND,
143300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        OFF
144300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
145300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
1460e4cb9d89fe58b378d94c87f182aaaef9d6a6d60Shimeng (Simon) Wang    /**
1473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Hidden constructor to prevent clients from creating a new settings
1483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * instance or deriving the class.
1493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @hide
1500e4cb9d89fe58b378d94c87f182aaaef9d6a6d60Shimeng (Simon) Wang     */
1513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    protected WebSettings() {
15254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
153a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
15454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
15554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enables dumping the pages navigation cache to a text file.
156fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
15754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
158fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
15954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNavDump(boolean enabled) {
1603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
16154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
16254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
16354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
16454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Returns true if dumping the navigation cache is enabled.
165fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
16654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
167fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
16854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getNavDump() {
1693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
17054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
17154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
17254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
173b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Sets whether the WebView should support zooming using its on-screen zoom
174b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * controls and gestures. The particular zoom mechanisms that should be used
175b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * can be set with {@link #setBuiltInZoomControls}. This setting does not
176b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * affect zooming performed using the {@link WebView#zoomIn()} and
177b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * {@link WebView#zoomOut()} methods.
178b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * @param support Whether the WebView should support zoom.
17954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
18054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSupportZoom(boolean support) {
1813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
18254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
18354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
18454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
185b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Returns true if the WebView supports zoom. The default is true.
186b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * @return True if the WebView supports zoom.
18754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
18854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean supportZoom() {
1893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
19054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
19154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
19254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
19306d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * Sets whether the WebView should use its built-in zoom mechanisms. The
19406d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * built-in zoom mechanisms comprise on-screen zoom controls, which are
19506d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * displayed over the WebView's content, and the use of a pinch gesture to
19606d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * control zooming. Whether or not these on-screen controls are displayed
19706d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * can be set with {@link #setDisplayZoomControls}.
19806d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * <p>
19906d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * The built-in mechanisms are the only currently supported zoom
20006d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * mechanisms, so it is recommended that this setting is always enabled.
20106d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * @param enabled Whether the WebView should use its built-in zoom mechanisms.
20206d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     */
20306d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // This method was intended to select between the built-in zoom mechanisms
20406d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // and the separate zoom controls. The latter were obtained using
20506d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // {@link WebView#getZoomControls}, which is now hidden.
206105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public void setBuiltInZoomControls(boolean enabled) {
2073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
208105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
209a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
210105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
211b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Returns true if the zoom mechanisms built into WebView are being used.
212b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * The default is false.
213b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * @return True if the zoom mechanisms built into WebView are being used.
214105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     */
215105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public boolean getBuiltInZoomControls() {
2163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
217105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
218a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
219105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
220b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Sets whether the WebView should display on-screen zoom controls when
221b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * using the built-in zoom mechanisms. See {@link #setBuiltInZoomControls}.
222b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * @param enabled Whether the WebView should display on-screen zoom controls.
2236fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2246fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public void setDisplayZoomControls(boolean enabled) {
2253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2266fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2276fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2286fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
229b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Returns true if the WebView displays on-screen zoom controls when using
230b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * the built-in zoom mechanisms. The default is true.
231b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * @return True if the WebView displays on-screen zoom controls when using
232b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * the built-in zoom mechanisms.
2336fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2346fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public boolean getDisplayZoomControls() {
2353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2366fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2376fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2386fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
239f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Enable or disable file access within WebView. File access is enabled by
240d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * default.  Note that this enables or disables file system access only.
241d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Assets and resources are still accessible using file:///android_asset and
242d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * file:///android_res.
243f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
244f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public void setAllowFileAccess(boolean allow) {
2453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
246f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
247f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
248f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
249f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Returns true if this WebView supports file access.
250f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
251f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public boolean getAllowFileAccess() {
2523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
253f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
254f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
255f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
256d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Enable or disable content url access within WebView.  Content url access
257d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * allows WebView to load content from a content provider installed in the
258d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * system.  The default is enabled.
259d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
260d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public void setAllowContentAccess(boolean allow) {
2613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
262d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
263d1737edc13864b2304763167720b27b68791e25aPatrick Scott
264d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
265d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Returns true if this WebView supports content url access.
266d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
267d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public boolean getAllowContentAccess() {
2683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
269d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
270d1737edc13864b2304763167720b27b68791e25aPatrick Scott
271d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
272e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     * Set whether the WebView loads a page with overview mode.
273e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
274e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public void setLoadWithOverviewMode(boolean overview) {
2753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
276e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
277e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
278e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
279e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     * Returns true if this WebView loads page with overview mode
280e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
281e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public boolean getLoadWithOverviewMode() {
2823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
283e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
284e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
285e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
286f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * Set whether the WebView will enable smooth transition while panning or
287e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * zooming or while the window hosting the WebView does not have focus.
288e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is true, WebView will choose a solution to maximize the performance.
289e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * e.g. the WebView's content may not be updated during the transition.
290e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is false, WebView will keep its fidelity. The default value is false.
291f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
292f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public void setEnableSmoothTransition(boolean enable) {
2933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
294f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
295f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
296f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * Returns true if the WebView enables smooth transition while panning or
297f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * zooming.
298f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
299f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public boolean enableSmoothTransition() {
3003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
301f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
302f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba
303f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
304637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * Set whether the WebView uses its background for over scroll background.
305637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * If true, it will use the WebView's background. If false, it will use an
306637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern. Default is true.
307fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
308637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
309fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
310637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public void setUseWebViewBackgroundForOverscrollBackground(boolean view) {
3113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
312637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
313637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
314637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
315637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * Returns true if this WebView uses WebView's background instead of
316637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern for over scroll background.
317fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
318637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
319fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
320637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public boolean getUseWebViewBackgroundForOverscrollBackground() {
3213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
322637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
323637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
324637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
32554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Store whether the WebView is saving form data.
32654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
32754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSaveFormData(boolean save) {
3283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
32954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
33054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
33154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
332aa6b9f55d60702211dd2d08403c7296347f0bd7dLeon Scroggins     *  Return whether the WebView is saving form data and displaying prior
333aa6b9f55d60702211dd2d08403c7296347f0bd7dLeon Scroggins     *  entries/autofill++.  Always false in private browsing mode.
33454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
33554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSaveFormData() {
3363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
33754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
33854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
33954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
34054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *  Store whether the WebView is saving password.
34154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
34254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSavePassword(boolean save) {
3433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
34454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
34554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
34654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
34754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *  Return whether the WebView is saving password.
34854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
34954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSavePassword() {
3503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
35154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
35254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
35354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
354ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * Set the text zoom of the page in percent. Default is 100.
355ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * @param textZoom A percent value for increasing or decreasing the text.
356ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
357ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized void setTextZoom(int textZoom) {
3583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
359ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
360ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
361ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
362ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * Get the text zoom of the page in percent.
363ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * @return A percent value describing the text zoom.
364ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * @see setTextSizeZoom
365ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
366ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized int getTextZoom() {
3673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
368ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
369ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
370ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
37154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the text size of the page.
37254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param t A TextSize value for increasing or decreasing the text.
37354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.TextSize
374caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link #setTextZoom(int)} instead
37554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
37654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setTextSize(TextSize t) {
3773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
37854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
37954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
38054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
381caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * Get the text size of the page. If the text size was previously specified
382caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * in percent using {@link #setTextZoom(int)}, this will return
383caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * the closest matching {@link TextSize}.
38454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A TextSize enum value describing the text size.
38554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.TextSize
386caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link #getTextZoom()} instead
38754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
38854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized TextSize getTextSize() {
3893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
390edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    }
391edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware
392edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    /**
3930d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Set the default zoom density of the page. This should be called from UI
3940d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * thread.
3950d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @param zoom A ZoomDensity value
3960d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @see WebSettings.ZoomDensity
3970d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
3980d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public void setDefaultZoom(ZoomDensity zoom) {
3993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
4000d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
4010d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
4020d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
4030d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Get the default zoom density of the page. This should be called from UI
4040d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * thread.
4050d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @return A ZoomDensity value
4060d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @see WebSettings.ZoomDensity
4070d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
4080d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public ZoomDensity getDefaultZoom() {
4093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
4100d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
4110d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
4120d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
41354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enables using light touches to make a selection and activate mouseovers.
41454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
41554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setLightTouchEnabled(boolean enabled) {
4163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
41754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
41854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
41954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
42054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Returns true if light touches are enabled.
42154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
42254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getLightTouchEnabled() {
4233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
42454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
42554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
42654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
427adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * @deprecated This setting controlled a rendering optimization
428adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * that is no longer present. Setting it now has no effect.
42954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
430adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
43154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseDoubleTree(boolean use) {
4323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
43354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
43454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
43554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
436adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * @deprecated This setting controlled a rendering optimization
437adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * that is no longer present. Setting it now has no effect.
43854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
439adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
44054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseDoubleTree() {
4413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Returns false unconditionally, so no need for derived classes to override.
442adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn        return false;
44354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
44454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
44554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
44654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView about user-agent string.
44754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param ua 0 if the WebView should use an Android user-agent string,
44854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *           1 if the WebView should use a desktop user-agent string.
449f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
450f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * @deprecated Please use setUserAgentString instead.
45154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
452f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
45354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUserAgent(int ua) {
4543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
45554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
45654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
45754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
45854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Return user-agent as int
45954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return int  0 if the WebView is using an Android user-agent string.
46054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *              1 if the WebView is using a desktop user-agent string.
461f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *             -1 if the WebView is using user defined user-agent string.
462f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
463f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * @deprecated Please use getUserAgentString instead.
46454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
465f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
46654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getUserAgent() {
4673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
46854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
46954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
47054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
47154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView to use the wide viewport
47254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
47354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseWideViewPort(boolean use) {
4743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
47554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
47654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
47754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
47854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if the WebView is using a wide viewport
47954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
48054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseWideViewPort() {
4813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
48254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
48354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
48454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
48554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView whether it supports multiple windows. TRUE means
48654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         that {@link WebChromeClient#onCreateWindow(WebView, boolean,
48754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         boolean, Message)} is implemented by the host application.
48854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
48954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSupportMultipleWindows(boolean support) {
4903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
49154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
49254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
49354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
49454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if the WebView is supporting multiple windows. This means
49554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         that {@link WebChromeClient#onCreateWindow(WebView, boolean,
49654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         boolean, Message)} is implemented by the host application.
49754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
49854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean supportMultipleWindows() {
4993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
50054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
50154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
50254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
50354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the underlying layout algorithm. This will cause a relayout of the
50454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * WebView.
50554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param l A LayoutAlgorithm enum specifying the algorithm to use.
50654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.LayoutAlgorithm
50754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
50854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
5093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
51054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
51154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
51254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
513adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Return the current layout algorithm. The default is NARROW_COLUMNS.
51454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return LayoutAlgorithm enum value describing the layout algorithm
51554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         being used.
51654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.LayoutAlgorithm
51754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
51854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized LayoutAlgorithm getLayoutAlgorithm() {
5193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
52054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
52154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
52254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
52354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the standard font family name.
52454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
52554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
52654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setStandardFontFamily(String font) {
5273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
52854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
52954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
53054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
531adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the standard font family name. The default is "sans-serif".
53254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The standard font family name as a string.
53354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
53454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getStandardFontFamily() {
5353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
53654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
53754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
53854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
53954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the fixed font family name.
54054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
54154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
54254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFixedFontFamily(String font) {
5433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
54454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
54554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
54654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
547adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the fixed font family name. The default is "monospace".
54854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The fixed font family name as a string.
54954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
55054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFixedFontFamily() {
5513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
55254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
55354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
55454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
55554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the sans-serif font family name.
55654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
55754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
55854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSansSerifFontFamily(String font) {
5593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
56054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
56154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
56254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
56354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Get the sans-serif font family name.
56454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The sans-serif font family name as a string.
56554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
56654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSansSerifFontFamily() {
5673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
56854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
56954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
57054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
571adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Set the serif font family name. The default is "sans-serif".
57254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
57354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
57454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSerifFontFamily(String font) {
5753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
57654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
57754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
57854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
579adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the serif font family name. The default is "serif".
58054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The serif font family name as a string.
58154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
58254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSerifFontFamily() {
5833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
58454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
58554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
58654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
58754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the cursive font family name.
58854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
58954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
59054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setCursiveFontFamily(String font) {
5913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
59254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
59354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
59454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
595adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the cursive font family name. The default is "cursive".
59654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The cursive font family name as a string.
59754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
59854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getCursiveFontFamily() {
5993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
60054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
60154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
60254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
60354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the fantasy font family name.
60454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
60554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
60654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFantasyFontFamily(String font) {
6073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
60854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
60954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
61054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
611adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the fantasy font family name. The default is "fantasy".
61254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The fantasy font family name as a string.
61354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
61454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFantasyFontFamily() {
6153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
61654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
61754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
61854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
61954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the minimum font size.
62054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
62154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
62254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
62354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumFontSize(int size) {
6243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
62554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
62654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
62754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
628adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the minimum font size. The default is 8.
62954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
63054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
63154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumFontSize() {
6323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
63354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
63454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
63554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
63654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the minimum logical font size.
63754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
63854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
63954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
64054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumLogicalFontSize(int size) {
6413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
64254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
64354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
64454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
645adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the minimum logical font size. The default is 8.
64654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
64754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
64854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumLogicalFontSize() {
6493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
65054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
65154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
65254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
65354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the default font size.
65454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
65554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
65654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
65754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFontSize(int size) {
6583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
65954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
66054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
66154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
662adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the default font size. The default is 16.
66354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
66454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
66554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFontSize() {
6663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
66754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
66854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
66954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
67054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the default fixed font size.
67154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
67254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
67354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
67454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFixedFontSize(int size) {
6753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
67654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
67754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
67854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
679adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the default fixed font size. The default is 16.
68054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
68154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
68254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFixedFontSize() {
6833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
684097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    }
685097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba
686097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    /**
687605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should load image resources. Note that this method
688605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * controls loading of all images, including those embedded using the data
689605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * URI scheme. Use {@link #setBlockNetworkImage} to control loading only
690605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * of images specified using network URI schemes. Note that if the value of this
691605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * setting is changed from false to true, all images resources referenced
692605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * by content currently displayed by the WebView are loaded automatically.
693605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @param flag Whether the WebView should load image resources.
69454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
69554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLoadsImagesAutomatically(boolean flag) {
6963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
69754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
69854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
69954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
700605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Returns true if the WebView loads image resources. This includes
701605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * images embedded using the data URI scheme. The default is true.
702605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @return True if the WebView loads image resources.
70354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
70454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getLoadsImagesAutomatically() {
7053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
70654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
70754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
70854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
709605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load image resources from the
710605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network (resources accessed via http and https URI schemes).  Note
711605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * that this method has no effect unless
712605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link #getLoadsImagesAutomatically} returns true. Also note that
713605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * disabling all network loads using {@link #setBlockNetworkLoads}
714605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * will also prevent network images from loading, even if this flag is set
715605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * to false. When the value of this setting is changed from true to false,
716605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network images resources referenced by content currently displayed by
717605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * the WebView are fetched automatically.
718605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @param flag Whether the WebView should not load image resources from
719605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * the network.
720f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see #setBlockNetworkLoads
72154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
72254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setBlockNetworkImage(boolean flag) {
7233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
72454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
72554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
72654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
727605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Returns true if the WebView does not load image resources from the network.
728605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * The default is false.
729605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @return True if the WebView does not load image resources from the network.
73054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
73154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getBlockNetworkImage() {
7323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
73354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
734adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn
735f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
736605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load resources from the network.
737605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Use {@link #setBlockNetworkImage} to only avoid loading
738605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * image resources. Note that if the value of this setting is
739605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * changed from true to false, network resources referenced by content
740605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * currently displayed by the WebView are not fetched until
741605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.webkit.WebView#reload} is called.
742605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * If the application does not have the
743605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.Manifest.permission#INTERNET} permission, attempts to set
744605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * a value of false will cause a {@link java.lang.SecurityException}
745605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * to be thrown.
746605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @param flag Whether the WebView should not load any resources
747605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * from the network.
748f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see android.webkit.WebView#reload
749f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
750f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setBlockNetworkLoads(boolean flag) {
7513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
752f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
753f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
754f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
755605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Returns true if the WebView does not load any resources from the network.
756605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * The default value is false if the application has the
757605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.Manifest.permission#INTERNET} permission, otherwise it is
758605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * true.
759605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @return True if the WebView does not load any resources from the network.
760f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
761f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized boolean getBlockNetworkLoads() {
7623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
763f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
76454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
76554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
76654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView to enable javascript execution.
76754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag True if the WebView should execute javascript.
76854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
76954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setJavaScriptEnabled(boolean flag) {
7703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
771da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    }
772da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu
773da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    /**
77454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView to enable plugins.
77554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag True if the WebView should load plugins.
776300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been deprecated in favor of
777300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     *             {@link #setPluginState}
77854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
779a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
78054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsEnabled(boolean flag) {
7813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
782300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
783300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
784300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
785300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * Tell the WebView to enable, disable, or have plugins on demand. On
786300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * demand mode means that if a plugin exists that can handle the embedded
787300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * content, a placeholder icon will be shown instead of the plugin. When
788300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the placeholder is clicked, the plugin will be enabled.
789300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @param state One of the PluginState values.
790300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
791300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized void setPluginState(PluginState state) {
7923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
79354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
79454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
79554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
796fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * Set a custom path to plugins used by the WebView. This method is
797fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
798fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @param pluginsPath String path to the directory containing plugins.
799fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
800fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * their own APK via the system's package manager.
80154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
8029dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
80354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsPath(String pluginsPath) {
8043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
80554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
80654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
80754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8087df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Set the path to where database storage API databases should be saved.
80918773afa64d407ebdd4bfc7bc151497d4447884dBen Murdoch     * Nota that the WebCore Database Tracker only allows the path to be set once.
8107df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * This will update WebCore when the Sync runs in the C++ side.
8117df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @param databasePath String path to the directory where databases should
8127df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     *     be saved. May be the empty string but should never be null.
8137df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8147df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabasePath(String databasePath) {
8153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8167df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
8177df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
8187df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
8199d3273f62288fa54536a3928383588398ca2d029Steve Block     * Set the path where the Geolocation permissions database should be saved.
8209d3273f62288fa54536a3928383588398ca2d029Steve Block     * This will update WebCore when the Sync runs in the C++ side.
8219d3273f62288fa54536a3928383588398ca2d029Steve Block     * @param databasePath String path to the directory where the Geolocation
8229d3273f62288fa54536a3928383588398ca2d029Steve Block     *     permissions database should be saved. May be the empty string but
8239d3273f62288fa54536a3928383588398ca2d029Steve Block     *     should never be null.
8249d3273f62288fa54536a3928383588398ca2d029Steve Block     */
8259d3273f62288fa54536a3928383588398ca2d029Steve Block    public synchronized void setGeolocationDatabasePath(String databasePath) {
8263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8279d3273f62288fa54536a3928383588398ca2d029Steve Block    }
8289d3273f62288fa54536a3928383588398ca2d029Steve Block
8299d3273f62288fa54536a3928383588398ca2d029Steve Block    /**
8303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Tell the WebView to enable Application Caches API.
8313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @param flag True if the WebView should enable Application Caches.
83260a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
83360a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    public synchronized void setAppCacheEnabled(boolean flag) {
8343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
83560a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
83660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
83760a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
8383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Set a custom path to the Application Caches files. The client
8393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * must ensure it exists before this call.
8403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @param appCachePath String path to the directory containing Application
8413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Caches files. The appCache path can be the empty string but should not
8423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * be null. Passing null for this parameter will result in a no-op.
84360a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
8443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setAppCachePath(String appCachePath) {
8453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
84660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
84760a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
84860a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
8491c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     * Set the maximum size for the Application Caches content.
8501c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     * @param appCacheMaxSize the maximum size in bytes.
8511c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     */
8521c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    public synchronized void setAppCacheMaxSize(long appCacheMaxSize) {
8533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8541c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    }
8551c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu
8561c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    /**
8577df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Set whether the database storage API is enabled.
8587df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @param flag boolean True if the WebView should use the database storage
8597df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     *     API.
8607df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8617df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabaseEnabled(boolean flag) {
8623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8637df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
8647df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
8657df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
866274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * Set whether the DOM storage API is enabled.
867274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * @param flag boolean True if the WebView should use the DOM storage
868274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     *     API.
869274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
870274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized void setDomStorageEnabled(boolean flag) {
8713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
872274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
873274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch
874274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
875274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * Returns true if the DOM Storage API's are enabled.
876274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * @return True if the DOM Storage API's are enabled.
877274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
878274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized boolean getDomStorageEnabled() {
8793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
880274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
881274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
8827df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Return the path to where database storage API databases are saved for
8837df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * the current WebView.
8847df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @return the String path to the database storage API databases.
8857df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8867df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized String getDatabasePath() {
8873c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8887df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
8897df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
8907df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
8917df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Returns true if database storage API is enabled.
8927df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @return True if the database storage API is enabled.
8937df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8947df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized boolean getDatabaseEnabled() {
8953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
896c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    }
897c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu
898c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    /**
89906cd751b052e65c359b16cce0570b6fab305eb89Steve Block     * Sets whether Geolocation is enabled.
90006cd751b052e65c359b16cce0570b6fab305eb89Steve Block     * @param flag Whether Geolocation should be enabled.
90106cd751b052e65c359b16cce0570b6fab305eb89Steve Block     */
90206cd751b052e65c359b16cce0570b6fab305eb89Steve Block    public synchronized void setGeolocationEnabled(boolean flag) {
9033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
9045dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    }
9055dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter
9065dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    /**
907adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Return true if javascript is enabled. <b>Note: The default is false.</b>
90854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if javascript is enabled.
90954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
91054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptEnabled() {
9113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
91254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
91354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
91454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
91554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Return true if plugins are enabled.
91654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if plugins are enabled.
917300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been replaced by {@link #getPluginState}
91854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
919a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
92054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getPluginsEnabled() {
9213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
922300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
923300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
924300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
925300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * Return the current plugin state.
926300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @return A value corresponding to the enum PluginState.
927300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
928300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized PluginState getPluginState() {
9293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
93054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
93154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
93254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
933fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * Returns the directory that contains the plugin libraries. This method is
934fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
935fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @return An empty string.
936fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
937fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * their own APK via the system's package manager.
93854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
9399dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
94054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getPluginsPath() {
9413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Unconditionally returns empty string, so no need for derived classes to override.
942658ab7d787f64987d7c45aae08e5a12a073afe78Grace Kloba        return "";
94354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
94454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
94554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
94654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell javascript to open windows automatically. This applies to the
94754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * javascript function window.open().
94854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag True if javascript can open windows automatically.
94954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
9503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
9513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
95254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
95354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
95454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
955adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Return true if javascript can open windows automatically. The default
956adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * is false.
95754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if javascript can open windows automatically during
95854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         window.open().
95954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
96054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() {
9613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
96254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
96354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
96454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the default text encoding name to use when decoding html pages.
96554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param encoding The text encoding name.
96654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
96754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultTextEncodingName(String encoding) {
9683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
96954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
97054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
97154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
972adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the default text encoding name. The default is "Latin-1".
97354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The default text encoding name as a string.
97454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
97554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getDefaultTextEncodingName() {
9763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
97754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
97854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
979f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
980f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Set the WebView's user-agent string. If the string "ua" is null or empty,
981f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * it will use the system default user-agent string.
982f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
983f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setUserAgentString(String ua) {
9843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
985f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
986f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
987f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
988f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Return the WebView's user-agent string.
989f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
990f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized String getUserAgentString() {
9913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
992c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang    }
993c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang
99454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
99554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView whether it needs to set a node to have focus when
99654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * {@link WebView#requestFocus(int, android.graphics.Rect)} is called.
997a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb     *
99854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag
99954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
100054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNeedInitialFocus(boolean flag) {
10013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
100254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
100354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
100454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
100554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the priority of the Render thread. Unlike the other settings, this
1006adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * one only needs to be called once per process. The default is NORMAL.
1007adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     *
100854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param priority RenderPriority, can be normal, high or low.
100954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
101054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setRenderPriority(RenderPriority priority) {
10113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
101254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1013a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
101454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
101554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Override the way the cache is used. The way the cache is used is based
101654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * on the navigation option. For a normal page load, the cache is checked
101754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * and content is re-validated as needed. When navigating back, content is
101854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * not revalidated, instead the content is just pulled from the cache.
101954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * This function allows the client to override this behavior.
102054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param mode One of the LOAD_ values.
102154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
102254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setCacheMode(int mode) {
10233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
102454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1025a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
102654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
102754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Return the current setting for overriding the cache mode. For a full
102854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * description, see the {@link #setCacheMode(int)} function.
102954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
103054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public int getCacheMode() {
10313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
103254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
103354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project}
1034