WebSettings.java revision 3c90952036a5ff7ddb2946c643f1a0bf1c31d53a
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    /**
17354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set whether the WebView supports zoom
17454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
17554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSupportZoom(boolean support) {
1763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
17754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
17854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
17954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
18054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Returns whether the WebView supports zoom
18154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
18254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean supportZoom() {
1833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
18454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
18554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
18654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
187105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     * Sets whether the zoom mechanism built into WebView is used.
188105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     */
189105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public void setBuiltInZoomControls(boolean enabled) {
1903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
191105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
192a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
193105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
194105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     * Returns true if the zoom mechanism built into WebView is being used.
195105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     */
196105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public boolean getBuiltInZoomControls() {
1973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
198105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
199a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
200105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
2016fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     * Sets whether the on screen zoom buttons are used.
2026fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     * A combination of built in zoom controls enabled
2036fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     * and on screen zoom controls disabled allows for pinch to zoom
2046fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     * to work without the on screen controls
2056fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2066fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public void setDisplayZoomControls(boolean enabled) {
2073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2086fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2096fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2106fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
2116fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     * Returns true if the on screen zoom buttons are being used.
2126fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2136fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public boolean getDisplayZoomControls() {
2143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2156fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2166fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2176fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
218f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Enable or disable file access within WebView. File access is enabled by
219d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * default.  Note that this enables or disables file system access only.
220d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Assets and resources are still accessible using file:///android_asset and
221d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * file:///android_res.
222f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
223f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public void setAllowFileAccess(boolean allow) {
2243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
225f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
226f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
227f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
228f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Returns true if this WebView supports file access.
229f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
230f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public boolean getAllowFileAccess() {
2313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
232f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
233f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
234f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
235d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Enable or disable content url access within WebView.  Content url access
236d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * allows WebView to load content from a content provider installed in the
237d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * system.  The default is enabled.
238d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
239d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public void setAllowContentAccess(boolean allow) {
2403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
241d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
242d1737edc13864b2304763167720b27b68791e25aPatrick Scott
243d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
244d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Returns true if this WebView supports content url access.
245d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
246d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public boolean getAllowContentAccess() {
2473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
248d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
249d1737edc13864b2304763167720b27b68791e25aPatrick Scott
250d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
251e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     * Set whether the WebView loads a page with overview mode.
252e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
253e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public void setLoadWithOverviewMode(boolean overview) {
2543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
255e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
256e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
257e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
258e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     * Returns true if this WebView loads page with overview mode
259e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
260e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public boolean getLoadWithOverviewMode() {
2613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
262e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
263e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
264e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
265f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * Set whether the WebView will enable smooth transition while panning or
266e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * zooming or while the window hosting the WebView does not have focus.
267e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is true, WebView will choose a solution to maximize the performance.
268e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * e.g. the WebView's content may not be updated during the transition.
269e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is false, WebView will keep its fidelity. The default value is false.
270f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
271f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public void setEnableSmoothTransition(boolean enable) {
2723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
273f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
274f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
275f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * Returns true if the WebView enables smooth transition while panning or
276f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * zooming.
277f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
278f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public boolean enableSmoothTransition() {
2793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
280f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
281f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba
282f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
283637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * Set whether the WebView uses its background for over scroll background.
284637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * If true, it will use the WebView's background. If false, it will use an
285637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern. Default is true.
286fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
287637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
288fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
289637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public void setUseWebViewBackgroundForOverscrollBackground(boolean view) {
2903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
291637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
292637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
293637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
294637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * Returns true if this WebView uses WebView's background instead of
295637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern for over scroll background.
296fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
297637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
298fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
299637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public boolean getUseWebViewBackgroundForOverscrollBackground() {
3003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
301637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
302637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
303637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
30454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Store whether the WebView is saving form data.
30554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
30654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSaveFormData(boolean save) {
3073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
30854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
30954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
31054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
311aa6b9f55d60702211dd2d08403c7296347f0bd7dLeon Scroggins     *  Return whether the WebView is saving form data and displaying prior
312aa6b9f55d60702211dd2d08403c7296347f0bd7dLeon Scroggins     *  entries/autofill++.  Always false in private browsing mode.
31354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
31454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSaveFormData() {
3153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
31654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
31754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
31854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
31954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *  Store whether the WebView is saving password.
32054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
32154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSavePassword(boolean save) {
3223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
32354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
32454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
32554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
32654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *  Return whether the WebView is saving password.
32754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
32854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSavePassword() {
3293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
33054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
33154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
33254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
333ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * Set the text zoom of the page in percent. Default is 100.
334ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * @param textZoom A percent value for increasing or decreasing the text.
335ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
336ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized void setTextZoom(int textZoom) {
3373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
338ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
339ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
340ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
341ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * Get the text zoom of the page in percent.
342ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * @return A percent value describing the text zoom.
343ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     * @see setTextSizeZoom
344ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
345ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized int getTextZoom() {
3463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
347ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
348ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
349ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
35054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the text size of the page.
35154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param t A TextSize value for increasing or decreasing the text.
35254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.TextSize
353caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link #setTextZoom(int)} instead
35454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
35554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setTextSize(TextSize t) {
3563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
35754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
35854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
35954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
360caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * Get the text size of the page. If the text size was previously specified
361caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * in percent using {@link #setTextZoom(int)}, this will return
362caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * the closest matching {@link TextSize}.
36354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A TextSize enum value describing the text size.
36454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.TextSize
365caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link #getTextZoom()} instead
36654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
36754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized TextSize getTextSize() {
3683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
369edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    }
370edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware
371edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    /**
3720d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Set the default zoom density of the page. This should be called from UI
3730d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * thread.
3740d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @param zoom A ZoomDensity value
3750d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @see WebSettings.ZoomDensity
3760d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
3770d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public void setDefaultZoom(ZoomDensity zoom) {
3783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
3790d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
3800d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
3810d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
3820d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Get the default zoom density of the page. This should be called from UI
3830d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * thread.
3840d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @return A ZoomDensity value
3850d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * @see WebSettings.ZoomDensity
3860d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
3870d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public ZoomDensity getDefaultZoom() {
3883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
3890d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
3900d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
3910d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
39254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enables using light touches to make a selection and activate mouseovers.
39354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
39454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setLightTouchEnabled(boolean enabled) {
3953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
39654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
39754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
39854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
39954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Returns true if light touches are enabled.
40054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
40154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getLightTouchEnabled() {
4023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
40354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
40454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
40554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
406adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * @deprecated This setting controlled a rendering optimization
407adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * that is no longer present. Setting it now has no effect.
40854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
409adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
41054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseDoubleTree(boolean use) {
4113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
41254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
41354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
41454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
415adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * @deprecated This setting controlled a rendering optimization
416adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * that is no longer present. Setting it now has no effect.
41754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
418adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
41954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseDoubleTree() {
4203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Returns false unconditionally, so no need for derived classes to override.
421adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn        return false;
42254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
42354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
42454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
42554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView about user-agent string.
42654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param ua 0 if the WebView should use an Android user-agent string,
42754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *           1 if the WebView should use a desktop user-agent string.
428f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
429f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * @deprecated Please use setUserAgentString instead.
43054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
431f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
43254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUserAgent(int ua) {
4333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
43454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
43554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
43654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
43754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Return user-agent as int
43854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return int  0 if the WebView is using an Android user-agent string.
43954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *              1 if the WebView is using a desktop user-agent string.
440f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *             -1 if the WebView is using user defined user-agent string.
441f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
442f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * @deprecated Please use getUserAgentString instead.
44354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
444f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
44554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getUserAgent() {
4463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
44754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
44854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
44954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
45054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView to use the wide viewport
45154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
45254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseWideViewPort(boolean use) {
4533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
45454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
45554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
45654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
45754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if the WebView is using a wide viewport
45854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
45954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseWideViewPort() {
4603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
46154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
46254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
46354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
46454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView whether it supports multiple windows. TRUE means
46554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         that {@link WebChromeClient#onCreateWindow(WebView, boolean,
46654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         boolean, Message)} is implemented by the host application.
46754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
46854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSupportMultipleWindows(boolean support) {
4693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
47054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
47154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
47254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
47354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if the WebView is supporting multiple windows. This means
47454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         that {@link WebChromeClient#onCreateWindow(WebView, boolean,
47554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         boolean, Message)} is implemented by the host application.
47654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
47754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean supportMultipleWindows() {
4783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
47954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
48054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
48154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
48254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the underlying layout algorithm. This will cause a relayout of the
48354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * WebView.
48454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param l A LayoutAlgorithm enum specifying the algorithm to use.
48554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.LayoutAlgorithm
48654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
48754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
4883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
48954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
49054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
49154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
492adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Return the current layout algorithm. The default is NARROW_COLUMNS.
49354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return LayoutAlgorithm enum value describing the layout algorithm
49454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         being used.
49554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @see WebSettings.LayoutAlgorithm
49654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
49754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized LayoutAlgorithm getLayoutAlgorithm() {
4983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
49954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
50054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
50154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
50254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the standard font family name.
50354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
50454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
50554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setStandardFontFamily(String font) {
5063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
50754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
50854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
50954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
510adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the standard font family name. The default is "sans-serif".
51154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The standard font family name as a string.
51254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
51354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getStandardFontFamily() {
5143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
51554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
51654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
51754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
51854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the fixed font family name.
51954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
52054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
52154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFixedFontFamily(String font) {
5223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
52354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
52454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
52554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
526adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the fixed font family name. The default is "monospace".
52754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The fixed font family name as a string.
52854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
52954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFixedFontFamily() {
5303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
53154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
53254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
53354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
53454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the sans-serif font family name.
53554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
53654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
53754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSansSerifFontFamily(String font) {
5383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
53954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
54054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
54154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
54254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Get the sans-serif font family name.
54354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The sans-serif font family name as a string.
54454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
54554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSansSerifFontFamily() {
5463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
54754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
54854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
54954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
550adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Set the serif font family name. The default is "sans-serif".
55154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
55254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
55354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSerifFontFamily(String font) {
5543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
55554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
55654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
55754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
558adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the serif font family name. The default is "serif".
55954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The serif font family name as a string.
56054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
56154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSerifFontFamily() {
5623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
56354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
56454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
56554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
56654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the cursive font family name.
56754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
56854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
56954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setCursiveFontFamily(String font) {
5703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
57154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
57254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
57354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
574adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the cursive font family name. The default is "cursive".
57554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The cursive font family name as a string.
57654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
57754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getCursiveFontFamily() {
5783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
57954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
58054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
58154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
58254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the fantasy font family name.
58354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param font A font family name.
58454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
58554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFantasyFontFamily(String font) {
5863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
58754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
58854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
58954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
590adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the fantasy font family name. The default is "fantasy".
59154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The fantasy font family name as a string.
59254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
59354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFantasyFontFamily() {
5943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
59554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
59654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
59754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
59854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the minimum font size.
59954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
60054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
60154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
60254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumFontSize(int size) {
6033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
60454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
60554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
60654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
607adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the minimum font size. The default is 8.
60854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
60954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
61054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumFontSize() {
6113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
61254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
61354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
61454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
61554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the minimum logical font size.
61654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
61754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
61854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
61954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumLogicalFontSize(int size) {
6203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
62154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
62254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
62354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
624adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the minimum logical font size. The default is 8.
62554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
62654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
62754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumLogicalFontSize() {
6283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
62954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
63054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
63154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
63254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the default font size.
63354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
63454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
63554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
63654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFontSize(int size) {
6373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
63854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
63954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
64054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
641adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the default font size. The default is 16.
64254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
64354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
64454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFontSize() {
6453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
64654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
64754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
64854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
64954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the default fixed font size.
65054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param size A non-negative integer between 1 and 72.
65154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Any number outside the specified range will be pinned.
65254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
65354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFixedFontSize(int size) {
6543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
65554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
65654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
65754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
658adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the default fixed font size. The default is 16.
65954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return A non-negative integer between 1 and 72.
66054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
66154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFixedFontSize() {
6623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
663097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    }
664097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba
665097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    /**
666605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should load image resources. Note that this method
667605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * controls loading of all images, including those embedded using the data
668605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * URI scheme. Use {@link #setBlockNetworkImage} to control loading only
669605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * of images specified using network URI schemes. Note that if the value of this
670605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * setting is changed from false to true, all images resources referenced
671605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * by content currently displayed by the WebView are loaded automatically.
672605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @param flag Whether the WebView should load image resources.
67354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
67454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLoadsImagesAutomatically(boolean flag) {
6753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
67654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
67754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
67854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
679605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Returns true if the WebView loads image resources. This includes
680605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * images embedded using the data URI scheme. The default is true.
681605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @return True if the WebView loads image resources.
68254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
68354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getLoadsImagesAutomatically() {
6843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
68554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
68654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
68754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
688605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load image resources from the
689605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network (resources accessed via http and https URI schemes).  Note
690605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * that this method has no effect unless
691605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link #getLoadsImagesAutomatically} returns true. Also note that
692605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * disabling all network loads using {@link #setBlockNetworkLoads}
693605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * will also prevent network images from loading, even if this flag is set
694605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * to false. When the value of this setting is changed from true to false,
695605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network images resources referenced by content currently displayed by
696605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * the WebView are fetched automatically.
697605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @param flag Whether the WebView should not load image resources from
698605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * the network.
699f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see #setBlockNetworkLoads
70054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
70154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setBlockNetworkImage(boolean flag) {
7023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
70354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
70454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
70554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
706605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Returns true if the WebView does not load image resources from the network.
707605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * The default is false.
708605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @return True if the WebView does not load image resources from the network.
70954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
71054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getBlockNetworkImage() {
7113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
71254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
713adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn
714f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
715605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load resources from the network.
716605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Use {@link #setBlockNetworkImage} to only avoid loading
717605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * image resources. Note that if the value of this setting is
718605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * changed from true to false, network resources referenced by content
719605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * currently displayed by the WebView are not fetched until
720605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.webkit.WebView#reload} is called.
721605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * If the application does not have the
722605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.Manifest.permission#INTERNET} permission, attempts to set
723605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * a value of false will cause a {@link java.lang.SecurityException}
724605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * to be thrown.
725605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @param flag Whether the WebView should not load any resources
726605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * from the network.
727f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see android.webkit.WebView#reload
728f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
729f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setBlockNetworkLoads(boolean flag) {
7303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
731f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
732f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
733f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
734605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Returns true if the WebView does not load any resources from the network.
735605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * The default value is false if the application has the
736605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.Manifest.permission#INTERNET} permission, otherwise it is
737605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * true.
738605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * @return True if the WebView does not load any resources from the network.
739f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
740f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized boolean getBlockNetworkLoads() {
7413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
742f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
74354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
74454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
74554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView to enable javascript execution.
74654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag True if the WebView should execute javascript.
74754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
74854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setJavaScriptEnabled(boolean flag) {
7493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
750da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    }
751da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu
752da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    /**
75354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView to enable plugins.
75454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag True if the WebView should load plugins.
755300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been deprecated in favor of
756300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     *             {@link #setPluginState}
75754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
758a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
75954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsEnabled(boolean flag) {
7603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
761300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
762300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
763300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
764300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * Tell the WebView to enable, disable, or have plugins on demand. On
765300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * demand mode means that if a plugin exists that can handle the embedded
766300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * content, a placeholder icon will be shown instead of the plugin. When
767300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the placeholder is clicked, the plugin will be enabled.
768300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @param state One of the PluginState values.
769300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
770300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized void setPluginState(PluginState state) {
7713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
77254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
77354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
77454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
775fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * Set a custom path to plugins used by the WebView. This method is
776fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
777fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @param pluginsPath String path to the directory containing plugins.
778fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
779fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * their own APK via the system's package manager.
78054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
7819dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
78254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsPath(String pluginsPath) {
7833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
78454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
78554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
78654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7877df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Set the path to where database storage API databases should be saved.
78818773afa64d407ebdd4bfc7bc151497d4447884dBen Murdoch     * Nota that the WebCore Database Tracker only allows the path to be set once.
7897df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * This will update WebCore when the Sync runs in the C++ side.
7907df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @param databasePath String path to the directory where databases should
7917df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     *     be saved. May be the empty string but should never be null.
7927df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
7937df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabasePath(String databasePath) {
7943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
7957df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
7967df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
7977df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
7989d3273f62288fa54536a3928383588398ca2d029Steve Block     * Set the path where the Geolocation permissions database should be saved.
7999d3273f62288fa54536a3928383588398ca2d029Steve Block     * This will update WebCore when the Sync runs in the C++ side.
8009d3273f62288fa54536a3928383588398ca2d029Steve Block     * @param databasePath String path to the directory where the Geolocation
8019d3273f62288fa54536a3928383588398ca2d029Steve Block     *     permissions database should be saved. May be the empty string but
8029d3273f62288fa54536a3928383588398ca2d029Steve Block     *     should never be null.
8039d3273f62288fa54536a3928383588398ca2d029Steve Block     */
8049d3273f62288fa54536a3928383588398ca2d029Steve Block    public synchronized void setGeolocationDatabasePath(String databasePath) {
8053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8069d3273f62288fa54536a3928383588398ca2d029Steve Block    }
8079d3273f62288fa54536a3928383588398ca2d029Steve Block
8089d3273f62288fa54536a3928383588398ca2d029Steve Block    /**
8093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Tell the WebView to enable Application Caches API.
8103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @param flag True if the WebView should enable Application Caches.
81160a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
81260a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    public synchronized void setAppCacheEnabled(boolean flag) {
8133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
81460a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
81560a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
81660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
8173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Set a custom path to the Application Caches files. The client
8183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * must ensure it exists before this call.
8193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @param appCachePath String path to the directory containing Application
8203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Caches files. The appCache path can be the empty string but should not
8213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * be null. Passing null for this parameter will result in a no-op.
82260a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
8233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setAppCachePath(String appCachePath) {
8243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
82560a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
82660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
82760a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
8281c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     * Set the maximum size for the Application Caches content.
8291c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     * @param appCacheMaxSize the maximum size in bytes.
8301c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     */
8311c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    public synchronized void setAppCacheMaxSize(long appCacheMaxSize) {
8323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8331c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    }
8341c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu
8351c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    /**
8367df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Set whether the database storage API is enabled.
8377df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @param flag boolean True if the WebView should use the database storage
8387df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     *     API.
8397df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8407df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabaseEnabled(boolean flag) {
8413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8427df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
8437df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
8447df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
845274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * Set whether the DOM storage API is enabled.
846274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * @param flag boolean True if the WebView should use the DOM storage
847274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     *     API.
848274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
849274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized void setDomStorageEnabled(boolean flag) {
8503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
851274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
852274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch
853274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
854274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * Returns true if the DOM Storage API's are enabled.
855274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     * @return True if the DOM Storage API's are enabled.
856274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
857274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized boolean getDomStorageEnabled() {
8583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
859274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
860274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
8617df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Return the path to where database storage API databases are saved for
8627df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * the current WebView.
8637df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @return the String path to the database storage API databases.
8647df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8657df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized String getDatabasePath() {
8663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8677df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
8687df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
8697df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
8707df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * Returns true if database storage API is enabled.
8717df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     * @return True if the database storage API is enabled.
8727df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
8737df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized boolean getDatabaseEnabled() {
8743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
875c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    }
876c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu
877c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    /**
87806cd751b052e65c359b16cce0570b6fab305eb89Steve Block     * Sets whether Geolocation is enabled.
87906cd751b052e65c359b16cce0570b6fab305eb89Steve Block     * @param flag Whether Geolocation should be enabled.
88006cd751b052e65c359b16cce0570b6fab305eb89Steve Block     */
88106cd751b052e65c359b16cce0570b6fab305eb89Steve Block    public synchronized void setGeolocationEnabled(boolean flag) {
8823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
8835dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    }
8845dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter
8855dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    /**
886adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Return true if javascript is enabled. <b>Note: The default is false.</b>
88754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if javascript is enabled.
88854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
88954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptEnabled() {
8903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
89154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
89254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
89354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
89454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Return true if plugins are enabled.
89554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if plugins are enabled.
896300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been replaced by {@link #getPluginState}
89754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
898a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
89954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getPluginsEnabled() {
9003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
901300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
902300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
903300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
904300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * Return the current plugin state.
905300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @return A value corresponding to the enum PluginState.
906300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
907300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized PluginState getPluginState() {
9083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
90954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
91054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
91154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
912fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * Returns the directory that contains the plugin libraries. This method is
913fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
914fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @return An empty string.
915fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
916fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * their own APK via the system's package manager.
91754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
9189dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
91954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getPluginsPath() {
9203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Unconditionally returns empty string, so no need for derived classes to override.
921658ab7d787f64987d7c45aae08e5a12a073afe78Grace Kloba        return "";
92254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
92354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
92454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
92554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell javascript to open windows automatically. This applies to the
92654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * javascript function window.open().
92754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag True if javascript can open windows automatically.
92854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
9293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
9303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
93154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
93254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
93354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
934adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Return true if javascript can open windows automatically. The default
935adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * is false.
93654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return True if javascript can open windows automatically during
93754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     *         window.open().
93854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
93954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() {
9403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
94154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
94254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
94354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the default text encoding name to use when decoding html pages.
94454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param encoding The text encoding name.
94554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
94654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultTextEncodingName(String encoding) {
9473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
94854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
94954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
95054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
951adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * Get the default text encoding name. The default is "Latin-1".
95254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @return The default text encoding name as a string.
95354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
95454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getDefaultTextEncodingName() {
9553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
95654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
95754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
958f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
959f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Set the WebView's user-agent string. If the string "ua" is null or empty,
960f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * it will use the system default user-agent string.
961f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
962f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setUserAgentString(String ua) {
9633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
964f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
965f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
966f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
967f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     * Return the WebView's user-agent string.
968f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
969f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized String getUserAgentString() {
9703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
971c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang    }
972c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang
97354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
97454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Tell the WebView whether it needs to set a node to have focus when
97554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * {@link WebView#requestFocus(int, android.graphics.Rect)} is called.
976a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb     *
97754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param flag
97854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
97954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNeedInitialFocus(boolean flag) {
9803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
98154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
98254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
98354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
98454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Set the priority of the Render thread. Unlike the other settings, this
985adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     * one only needs to be called once per process. The default is NORMAL.
986adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     *
98754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param priority RenderPriority, can be normal, high or low.
98854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
98954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setRenderPriority(RenderPriority priority) {
9903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
99154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
992a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
99354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
99454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Override the way the cache is used. The way the cache is used is based
99554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * on the navigation option. For a normal page load, the cache is checked
99654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * and content is re-validated as needed. When navigating back, content is
99754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * not revalidated, instead the content is just pulled from the cache.
99854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * This function allows the client to override this behavior.
99954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * @param mode One of the LOAD_ values.
100054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
100154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setCacheMode(int mode) {
10023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
100354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1004a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
100554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
100654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Return the current setting for overriding the cache mode. For a full
100754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * description, see the {@link #setCacheMode(int)} function.
100854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
100954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public int getCacheMode() {
10103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
101154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
101254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project}
1013