WebSettings.java revision 9f410c540ad593dd83e34266ccffd70867a600ab
154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project/*
254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *
454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * you may not use this file except in compliance with the License.
654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * You may obtain a copy of the License at
754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *
854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project *
1054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
1154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
1254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * See the License for the specific language governing permissions and
1454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * limitations under the License.
1554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */
1654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
1754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectpackage android.webkit;
1854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
199f410c540ad593dd83e34266ccffd70867a600abGeorge Mountimport android.content.Context;
2054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.os.Message;
210ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurunimport android.os.Build;
2254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
2354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project/**
2454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Manages settings state for a WebView. When a WebView is first created, it
2554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * obtains a set of default settings. These default settings will be returned
2654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * from any getter call. A WebSettings object obtained from
2754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * WebView.getSettings() is tied to the life of the WebView. If a WebView has
2854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * been destroyed, any method call on WebSettings will throw an
2954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * IllegalStateException.
3054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */
31d3101b1d300f5942fdb7dfa323dc8830c4edc007Jonathan Dixon// This is an abstract base class: concrete WebViewProviders must
323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon// create a class derived from this, and return an instance of it in the
333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon// WebViewProvider.getWebSettingsProvider() method implementation.
340ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurunpublic abstract class WebSettings {
3554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
3654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enum for controlling the layout of html.
374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <ul>
384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>NORMAL means no rendering changes.</li>
394e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>SINGLE_COLUMN moves all content into one column that is the width of the
404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *       view.</li>
414e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>NARROW_COLUMNS makes all columns no wider than the screen if possible.</li>
424e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * </ul>
4354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
4454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    // XXX: These must match LayoutAlgorithm in Settings.h in WebCore.
4554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum LayoutAlgorithm {
4654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL,
475a1ef4132f93f57940a5cc49d32991674d014841John Reck        /**
485a1ef4132f93f57940a5cc49d32991674d014841John Reck         * @deprecated This algorithm is now obsolete.
495a1ef4132f93f57940a5cc49d32991674d014841John Reck         */
505a1ef4132f93f57940a5cc49d32991674d014841John Reck        @Deprecated
5154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SINGLE_COLUMN,
5254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NARROW_COLUMNS
5354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
5454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
5554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enum for specifying the text size.
574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <ul>
584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>SMALLEST is 50%</li>
594e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>SMALLER is 75%</li>
604e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>NORMAL is 100%</li>
614e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>LARGER is 150%</li>
624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>LARGEST is 200%</li>
634e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * </ul>
644e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
65caeb120170477f52516cd9d12469c582e7dec8feJohn Reck     * @deprecated Use {@link WebSettings#setTextZoom(int)} and {@link WebSettings#getTextZoom()} instead.
6654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
6754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum TextSize {
6854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SMALLEST(50),
6954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        SMALLER(75),
7054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL(100),
7154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LARGER(150),
7254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LARGEST(200);
7354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        TextSize(int size) {
7454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project            value = size;
7554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        }
7654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        int value;
7754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
780d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
790d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
800d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     * Enum for specifying the WebView's desired density.
814e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <ul>
824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>FAR makes 100% looking like in 240dpi</li>
834e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>MEDIUM makes 100% looking like in 160dpi</li>
844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *   <li>CLOSE makes 100% looking like in 120dpi</li>
854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * </ul>
860d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
870d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public enum ZoomDensity {
880d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        FAR(150),      // 240dpi
890d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        MEDIUM(100),    // 160dpi
900d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        CLOSE(75);     // 120dpi
910d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        ZoomDensity(int size) {
920d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba            value = size;
930d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        }
940d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba        int value;
950d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
960d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
9754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
98500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Default cache usage mode. If the navigation type doesn't impose any
99500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * specific behavior, use cached resources when they are available
100500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * and not expired, otherwise load resources from the network.
101500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Use with {@link #setCacheMode}.
10254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
10354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_DEFAULT = -1;
10454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
10554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
106500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Normal cache usage mode. Use with {@link #setCacheMode}.
10754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
10854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_NORMAL = 0;
10954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
11054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
111500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Use cached resources when they are available, even if they have expired.
112500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Otherwise load resources from the network.
11354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
11454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_CACHE_ELSE_NETWORK = 1;
11654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
11754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
118500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Don't use the cache, load from the network.
11954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
12054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
12154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_NO_CACHE = 2;
122a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
12354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
124500b003ff14b8a5aee2927bb577ab68d71ccfc12Mikhail Naganov     * Don't use the network, load from the cache.
12554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Use with {@link #setCacheMode}.
12654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
12754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public static final int LOAD_CACHE_ONLY = 3;
12854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
12954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public enum RenderPriority {
13054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        NORMAL,
13154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        HIGH,
13254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project        LOW
13354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
13454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
135300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
136300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * The plugin state effects how plugins are treated on a page. ON means
137300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * that any object will be loaded even if a plugin does not exist to handle
138300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the content. ON_DEMAND means that if there is a plugin installed that
139300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * can handle the content, a placeholder is shown until the user clicks on
140300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * the placeholder. Once clicked, the plugin will be enabled on the page.
141300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * OFF means that all plugins will be turned off and any fallback content
142300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * will be used.
143300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
144300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public enum PluginState {
145300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        ON,
146300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        ON_DEMAND,
147300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott        OFF
148300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
149300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
1500e4cb9d89fe58b378d94c87f182aaaef9d6a6d60Shimeng (Simon) Wang    /**
1513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Hidden constructor to prevent clients from creating a new settings
1523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * instance or deriving the class.
1534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @hide
1550e4cb9d89fe58b378d94c87f182aaaef9d6a6d60Shimeng (Simon) Wang     */
1563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    protected WebSettings() {
15754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
158a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
15954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
160b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Enables dumping the pages navigation cache to a text file. The default
161b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * is false.
1624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
163fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
16454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
165fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
16654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNavDump(boolean enabled) {
1673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
16854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
16954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
17054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether dumping the navigation cache is enabled.
1724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
173b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether dumping the navigation cache is enabled
174b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setNavDump
175fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
17654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
177fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
17854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getNavDump() {
1793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
18054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
18154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
18254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
183b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Sets whether the WebView should support zooming using its on-screen zoom
184b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * controls and gestures. The particular zoom mechanisms that should be used
185b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * can be set with {@link #setBuiltInZoomControls}. This setting does not
186b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * affect zooming performed using the {@link WebView#zoomIn()} and
1874e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * {@link WebView#zoomOut()} methods. The default is true.
1884e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1894e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param support whether the WebView should support zoom
19054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
19154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSupportZoom(boolean support) {
1923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
19354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
19454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
19554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1964e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView supports zoom.
1974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView supports zoom
1994e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setSupportZoom
20054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
20154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean supportZoom() {
2023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
20354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
20454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
20554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
2060e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * Sets whether the WebView requires a user gesture to play media.
2070e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * The default is true.
2080e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     *
2090e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * @param require whether the WebView requires a user gesture to play media
2100e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     */
2110e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    public void setMediaPlaybackRequiresUserGesture(boolean require) {
2120e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu        throw new MustOverrideException();
2130e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    }
2140e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu
2150e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    /**
2160e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * Gets whether the WebView requires a user gesture to play media.
2170e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     *
2180e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * @return true if the WebView requires a user gesture to play media
2190e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     * @see #setMediaPlaybackRequiresUserGesture
2200e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu     */
2210e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    public boolean getMediaPlaybackRequiresUserGesture() {
2220e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu        throw new MustOverrideException();
2230e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    }
2240e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu
2250e5b160418dad25b9e7125d2533cc8770b1cd9c6Teng-Hui Zhu    /**
22606d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * Sets whether the WebView should use its built-in zoom mechanisms. The
22706d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * built-in zoom mechanisms comprise on-screen zoom controls, which are
22806d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * displayed over the WebView's content, and the use of a pinch gesture to
22906d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * control zooming. Whether or not these on-screen controls are displayed
2304e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * can be set with {@link #setDisplayZoomControls}. The default is false.
23106d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * <p>
23206d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * The built-in mechanisms are the only currently supported zoom
23306d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     * mechanisms, so it is recommended that this setting is always enabled.
2344e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2354e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param enabled whether the WebView should use its built-in zoom mechanisms
23606d268e3ad1129814829af5d3b84752d84c1acf2Steve Block     */
23706d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // This method was intended to select between the built-in zoom mechanisms
23806d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // and the separate zoom controls. The latter were obtained using
23906d268e3ad1129814829af5d3b84752d84c1acf2Steve Block    // {@link WebView#getZoomControls}, which is now hidden.
240105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public void setBuiltInZoomControls(boolean enabled) {
2413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
242105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
243a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
244105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
2454e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the zoom mechanisms built into WebView are being used.
2464e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2474e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the zoom mechanisms built into WebView are being used
2484e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setBuiltInZoomControls
249105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project     */
250105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public boolean getBuiltInZoomControls() {
2513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
252105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
253a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
254105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    /**
255b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * Sets whether the WebView should display on-screen zoom controls when
256b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * using the built-in zoom mechanisms. See {@link #setBuiltInZoomControls}.
2574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * The default is true.
2584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2594e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param enabled whether the WebView should display on-screen zoom controls
2606fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2616fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public void setDisplayZoomControls(boolean enabled) {
2623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2636fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2646fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2656fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
2664e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView displays on-screen zoom controls when using
267b533fb4eef92b62cc26c4d9a901689e8f079fb73Mikhail Naganov     * the built-in zoom mechanisms.
2684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2694e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView displays on-screen zoom controls when using
2704e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *         the built-in zoom mechanisms
2714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDisplayZoomControls
2726fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb     */
2736fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    public boolean getDisplayZoomControls() {
2743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
2756fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    }
2766fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb
2776fe3b421fdc5b109cbf9006f44c9f089224a817dMichael Kolb    /**
2784e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Enables or disables file access within WebView. File access is enabled by
279d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * default.  Note that this enables or disables file system access only.
280d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * Assets and resources are still accessible using file:///android_asset and
281d1737edc13864b2304763167720b27b68791e25aPatrick Scott     * file:///android_res.
282f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
283f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public void setAllowFileAccess(boolean allow) {
2843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
285f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
286f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
287f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
2884e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether this WebView supports file access.
2894e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
2904e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowFileAccess
291f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
292f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public boolean getAllowFileAccess() {
2933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
294f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
295f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
296f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
2974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Enables or disables content URL access within WebView.  Content URL
2984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * access allows WebView to load content from a content provider installed
2994e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * in the system. The default is enabled.
300d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
301d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public void setAllowContentAccess(boolean allow) {
3023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
303d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
304d1737edc13864b2304763167720b27b68791e25aPatrick Scott
305d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
3064e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether this WebView supports content URL access.
3074e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
3084e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowContentAccess
309d1737edc13864b2304763167720b27b68791e25aPatrick Scott     */
310d1737edc13864b2304763167720b27b68791e25aPatrick Scott    public boolean getAllowContentAccess() {
3113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
312d1737edc13864b2304763167720b27b68791e25aPatrick Scott    }
313d1737edc13864b2304763167720b27b68791e25aPatrick Scott
314d1737edc13864b2304763167720b27b68791e25aPatrick Scott    /**
315b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView loads pages in overview mode. The default is
316b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * false.
317e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
318e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public void setLoadWithOverviewMode(boolean overview) {
3193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
320e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
321e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
322e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
323b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether this WebView loads pages in overview mode.
324b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
325b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether this WebView loads pages in overview mode
326b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setLoadWithOverviewMode
327e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba     */
328e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    public boolean getLoadWithOverviewMode() {
3293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
330e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    }
331e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba
332e397a88e4fd65ee7d346f63a43e6608dba943ee9Grace Kloba    /**
3334e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets whether the WebView will enable smooth transition while panning or
334e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * zooming or while the window hosting the WebView does not have focus.
335e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is true, WebView will choose a solution to maximize the performance.
336e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * e.g. the WebView's content may not be updated during the transition.
337e00e8a78374cdcf01a25bd6327d2b94944b2bc3fAdam Powell     * If it is false, WebView will keep its fidelity. The default value is false.
338f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
339f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public void setEnableSmoothTransition(boolean enable) {
3403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
341f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
3424e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block
343f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
3444e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView enables smooth transition while panning or
345f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     * zooming.
3464e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
3474e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setEnableSmoothTransition
348f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba     */
349f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    public boolean enableSmoothTransition() {
3503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
351f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    }
352f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba
353f9b731d383790e0dfd407525efcd72bba4ee4895Grace Kloba    /**
3544e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets whether the WebView uses its background for over scroll background.
355637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * If true, it will use the WebView's background. If false, it will use an
356637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern. Default is true.
3574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
358fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
359637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
360fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
361637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public void setUseWebViewBackgroundForOverscrollBackground(boolean view) {
3623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
363637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
364637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
365637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
3664e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether this WebView uses WebView's background instead of
367637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     * internal pattern for over scroll background.
3684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
3694e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setUseWebViewBackgroundForOverscrollBackground
370fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
371637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell     */
372fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
373637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    public boolean getUseWebViewBackgroundForOverscrollBackground() {
3743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
375637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    }
376637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell
377637d337b58d8eec6de19230a5dd5ca5581c0478dAdam Powell    /**
378b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView should save form data. The default is true,
379b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * unless in private browsing mode, when the value is always false.
38054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
38154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSaveFormData(boolean save) {
3823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
38354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
38454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
38554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
386b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether the WebView saves form data. Always false in private
387b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * browsing mode.
388b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
389b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether the WebView saves form data
390b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSaveFormData
39154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
39254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSaveFormData() {
3933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
39454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
39554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
39654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
397b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView should save passwords. The default is true.
39854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
39954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setSavePassword(boolean save) {
4003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
40154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
40254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
40354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
404b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether the WebView saves passwords.
405b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
406b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether the WebView saves passwords
407b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSavePassword
40854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
40954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getSavePassword() {
4103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
41154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
41254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
41354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
414b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the text zoom of the page in percent. The default is 100.
4154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
416b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param textZoom the text zoom in percent
417ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
418ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized void setTextZoom(int textZoom) {
4193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
420ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
421ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
422ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
4234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the text zoom of the page in percent.
4244e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
425b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the text zoom of the page in percent
4264e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setTextSizeZoom
427ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck     */
428ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    public synchronized int getTextZoom() {
4293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
430ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    }
431ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck
432ff56bcde857c1ea15a9d4bc7fc10653c409b89bdJohn Reck    /**
433b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the text size of the page. The default is {@link TextSize#NORMAL}.
4344e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
435b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param t the text size as a {@link TextSize} value
436b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Use {@link #setTextZoom} instead.
43754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
43854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setTextSize(TextSize t) {
4393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
44054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
44154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
44254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
4434e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the text size of the page. If the text size was previously specified
444b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * in percent using {@link #setTextZoom}, this will return the closest
445b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * matching {@link TextSize}.
4464e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
447b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the text size as a {@link TextSize} value
448b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setTextSize
449b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Use {@link #getTextZoom} instead.
45054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
45154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized TextSize getTextSize() {
4523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
453edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    }
454edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware
455edb528ef52fd9b0148d559c5e596cf9bb9a6d2f9Mangesh Ghiware    /**
456b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the default zoom density of the page. This must be called from the UI
457b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * thread. The default is {@link ZoomDensity#MEDIUM}.
4584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
459b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param zoom the zoom density
4600d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
4610d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public void setDefaultZoom(ZoomDensity zoom) {
4623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
4630d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
4640d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
4650d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
466b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the default zoom density of the page. This should be called from
467b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * the UI thread.
468b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
469b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the zoom density
470b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDefaultZoom
4710d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba     */
4720d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    public ZoomDensity getDefaultZoom() {
4733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
4740d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    }
4750d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba
4760d8b77c2453d0e597f94e39212e4bfeed8affffaGrace Kloba    /**
47754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * Enables using light touches to make a selection and activate mouseovers.
478b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * The default is false.
47954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
48054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setLightTouchEnabled(boolean enabled) {
4813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
48254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
48354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
48454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
4854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether light touches are enabled.
486b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
487b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return whether light touches are enabled
488b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setLightTouchEnabled
48954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
49054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public boolean getLightTouchEnabled() {
4913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
49254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
49354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
49454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
4954e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Controlled a rendering optimization that is no longer present. Setting
4964e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * it now has no effect.
4974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
4984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @deprecated This setting now has no effect.
49954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
500adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
50154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseDoubleTree(boolean use) {
5023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
50354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
50454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
50554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5064e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Controlled a rendering optimization that is no longer present. Setting
5074e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * it now has no effect.
5084e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
5094e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @deprecated This setting now has no effect.
51054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
511adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn    @Deprecated
51254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseDoubleTree() {
5133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Returns false unconditionally, so no need for derived classes to override.
514adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn        return false;
51554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
51654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
51754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
518b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the user-agent string using an integer code.
519b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * <ul>
520b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>0 means the WebView should use an Android user-agent string</li>
521b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>1 means the WebView should use a desktop user-agent string</li>
522b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * </ul>
523b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Other values are ignored. The default is an Android user-agent string,
524b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * i.e. code value 0.
525f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
526b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param ua the integer code for the user-agent string
527b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Please use {@link #setUserAgentString} instead.
52854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
529f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
53054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUserAgent(int ua) {
5313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
53254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
53354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
53454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
535b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the user-agent as an integer code.
536b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * <ul>
537b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>-1 means the WebView is using a custom user-agent string set with
538b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   {@link #setUserAgentString}</li>
539b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>0 means the WebView should use an Android user-agent string</li>
540b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *   <li>1 means the WebView should use a desktop user-agent string</li>
541b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * </ul>
542f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     *
543b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the integer code for the user-agent string
544b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setUserAgent
545b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @deprecated Please use {@link #getUserAgentString} instead.
54654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
547f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    @Deprecated
54854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getUserAgent() {
5493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
55054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
55154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
55254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
553b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Tells the WebView to use a wide viewport. The default is false.
554b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
555b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param use whether to use a wide viewport
55654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
55754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setUseWideViewPort(boolean use) {
5583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
55954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
56054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
56154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView is using a wide viewport.
5634e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
5644e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView is using a wide viewport
565b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setUseWideViewPort
56654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
56754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getUseWideViewPort() {
5683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
56954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
57054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
57154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
572b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView whether supports multiple windows. If set to
573b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * true, {@link WebChromeClient#onCreateWindow} must be implemented by the
574b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * host application. The default is false.
575b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
576b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param support whether to suport multiple windows
57754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
57854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSupportMultipleWindows(boolean support) {
5793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
58054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
58154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
58254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
583b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets whether the WebView supports multiple windows.
5844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
585b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return true if the WebView supports multiple windows
586b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSupportMultipleWindows
58754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
58854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean supportMultipleWindows() {
5893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
59054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
59154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
59254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
5934e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the underlying layout algorithm. This will cause a relayout of the
594b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * WebView. The default is {@link LayoutAlgorithm#NARROW_COLUMNS}.
5954e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
596b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param l the layout algorithm to use, as a {@link LayoutAlgorithm} value
59754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
59854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
5993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
60054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
60154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
60254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6034e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the current layout algorithm.
6044e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
605b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the layout algorithm in use, as a {@link LayoutAlgorithm} value
6064e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setLayoutAlgorithm
60754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
60854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized LayoutAlgorithm getLayoutAlgorithm() {
6093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
61054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
61154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
61254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6134e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the standard font family name. The default is "sans-serif".
6144e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
61654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
61754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setStandardFontFamily(String font) {
6183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
61954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
62054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
62154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6224e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the standard font family name.
6234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6244e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the standard font family name as a string
6254e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setStandardFontFamily
62654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
62754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getStandardFontFamily() {
6283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
62954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
63054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
63154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6324e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the fixed font family name. The default is "monospace".
6334e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6344e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
63554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
63654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFixedFontFamily(String font) {
6373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
63854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
63954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
64054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6414e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the fixed font family name.
6424e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6434e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the fixed font family name as a string
6444e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setFixedFontFamily
64554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
64654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFixedFontFamily() {
6473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
64854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
64954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
65054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
651b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the sans-serif font family name. The default is "sans-serif".
6524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
65454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
65554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSansSerifFontFamily(String font) {
6563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
65754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
65854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
65954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6604e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the sans-serif font family name.
6614e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6624e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the sans-serif font family name as a string
663b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setSansSerifFontFamily
66454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
66554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSansSerifFontFamily() {
6663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
66754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
66854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
66954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6704e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the serif font family name. The default is "sans-serif".
6714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
67354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
67454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setSerifFontFamily(String font) {
6753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
67654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
67754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
67854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6794e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the serif font family name. The default is "serif".
6804e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6814e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the serif font family name as a string
6824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setSerifFontFamily
68354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
68454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getSerifFontFamily() {
6853c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
68654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
68754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
68854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6894e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the cursive font family name. The default is "cursive".
6904e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
6914e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
69254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
69354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setCursiveFontFamily(String font) {
6943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
69554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
69654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
69754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
6984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the cursive font family name.
6994e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7004e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the cursive font family name as a string
7014e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setCursiveFontFamily
70254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
70354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getCursiveFontFamily() {
7043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
70554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
70654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
70754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7084e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the fantasy font family name. The default is "fantasy".
7094e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7104e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param font a font family name
71154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
71254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setFantasyFontFamily(String font) {
7133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
71454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
71554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
71654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7174e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the fantasy font family name.
7184e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7194e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the fantasy font family name as a string
7204e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setFantasyFontFamily
72154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
72254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getFantasyFontFamily() {
7233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
72454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
72554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
72654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7274e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the minimum font size. The default is 8.
7284e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7294e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
7304e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
73154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
73254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumFontSize(int size) {
7333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
73454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
73554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
73654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the minimum font size.
7384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7394e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
7404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setMinimumFontSize
74154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
74254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumFontSize() {
7433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
74454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
74554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
74654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7474e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the minimum logical font size. The default is 8.
7484e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7494e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
7504e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
75154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
75254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setMinimumLogicalFontSize(int size) {
7533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
75454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
75554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
75654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the minimum logical font size.
7584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7594e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
7604e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setMinimumLogicalFontSize
76154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
76254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getMinimumLogicalFontSize() {
7633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
76454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
76554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
76654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7674e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the default font size. The default is 16.
7684e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7694e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
7704e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
77154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
77254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFontSize(int size) {
7733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
77454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
77554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
77654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7774e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the default font size.
7784e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7794e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
7804e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDefaultFontSize
78154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
78254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFontSize() {
7833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
78454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
78554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
78654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7874e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the default fixed font size. The default is 16.
7884e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7894e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param size a non-negative integer between 1 and 72. Any number outside
7904e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             the specified range will be pinned.
79154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
79254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultFixedFontSize(int size) {
7933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
79454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
79554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
79654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
7974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the default fixed font size.
7984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
7994e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return a non-negative integer between 1 and 72
8004e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDefaultFixedFontSize
80154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
80254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized int getDefaultFixedFontSize() {
8033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
804097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    }
805097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba
806097b1e777a2a29eef3938338cb0c355203bf1448Grace Kloba    /**
807605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should load image resources. Note that this method
808605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * controls loading of all images, including those embedded using the data
809605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * URI scheme. Use {@link #setBlockNetworkImage} to control loading only
810605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * of images specified using network URI schemes. Note that if the value of this
811605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * setting is changed from false to true, all images resources referenced
812605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * by content currently displayed by the WebView are loaded automatically.
8134e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * The default is true.
8144e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8154e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView should load image resources
81654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
81754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setLoadsImagesAutomatically(boolean flag) {
8183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
81954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
82054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
82154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8224e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView loads image resources. This includes
8234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * images embedded using the data URI scheme.
8244e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8254e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView loads image resources
8264e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setLoadsImagesAutomatically
82754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
82854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getLoadsImagesAutomatically() {
8293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
83054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
83154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
83254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
833605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load image resources from the
834605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network (resources accessed via http and https URI schemes).  Note
835605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * that this method has no effect unless
836605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link #getLoadsImagesAutomatically} returns true. Also note that
837605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * disabling all network loads using {@link #setBlockNetworkLoads}
838605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * will also prevent network images from loading, even if this flag is set
839605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * to false. When the value of this setting is changed from true to false,
840605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * network images resources referenced by content currently displayed by
8414e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * the WebView are fetched automatically. The default is false.
8424e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8434e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView should not load image resources from the
8444e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             network
845f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see #setBlockNetworkLoads
84654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
84754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setBlockNetworkImage(boolean flag) {
8483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
84954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
85054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
85154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8524e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView does not load image resources from the network.
8534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8544e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView does not load image resources from the network
8554e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setBlockNetworkImage
85654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
85754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getBlockNetworkImage() {
8583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
85954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
860adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn
861f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
862605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Sets whether the WebView should not load resources from the network.
863605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * Use {@link #setBlockNetworkImage} to only avoid loading
864605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * image resources. Note that if the value of this setting is
865605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * changed from true to false, network resources referenced by content
866605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * currently displayed by the WebView are not fetched until
867605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.webkit.WebView#reload} is called.
868605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * If the application does not have the
869605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * {@link android.Manifest.permission#INTERNET} permission, attempts to set
870605a491c281da79aa1e2aa740f38ab5c0bdb138eMikhail Naganov     * a value of false will cause a {@link java.lang.SecurityException}
8714e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * to be thrown. The default value is false if the application has the
8724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * {@link android.Manifest.permission#INTERNET} permission, otherwise it is
8734e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * true.
8744e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8754e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView should not load any resources from the
8764e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             network
877f43113f6216efacc3957fc48d9fa1c0326faccebPatrick Scott     * @see android.webkit.WebView#reload
878f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
879f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setBlockNetworkLoads(boolean flag) {
8803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
881f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
882f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
883f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
8844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the WebView does not load any resources from the network.
8854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8864e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the WebView does not load any resources from the network
8874e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setBlockNetworkLoads
888f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
889f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized boolean getBlockNetworkLoads() {
8903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
891f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
89254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
89354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
8944e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells the WebView to enable JavaScript execution.
8954e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * <b>The default is false.</b>
8964e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
8974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should execute JavaScript
89854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
89954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setJavaScriptEnabled(boolean flag) {
9003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
901da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    }
902da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu
903da7378e86e6d6e7522dfd1e83091545fa93aa84dTeng-Hui Zhu    /**
904ef163150805625a148a9715eff6693277f79dcefSteve Block     * Sets whether JavaScript running in the context of a file scheme URL
905ef163150805625a148a9715eff6693277f79dcefSteve Block     * should be allowed to access content from any origin. This includes
906ef163150805625a148a9715eff6693277f79dcefSteve Block     * access to content from other file scheme URLs. See
907ef163150805625a148a9715eff6693277f79dcefSteve Block     * {@link #setAllowFileAccessFromFileURLs}. To enable the most restrictive,
908ef163150805625a148a9715eff6693277f79dcefSteve Block     * and therefore secure policy, this setting should be disabled.
909ef163150805625a148a9715eff6693277f79dcefSteve Block     * <p>
910ef163150805625a148a9715eff6693277f79dcefSteve Block     * The default value is true for API level
911ef163150805625a148a9715eff6693277f79dcefSteve Block     * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and below,
912ef163150805625a148a9715eff6693277f79dcefSteve Block     * and false for API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN}
913ef163150805625a148a9715eff6693277f79dcefSteve Block     * and above.
9140ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
915ef163150805625a148a9715eff6693277f79dcefSteve Block     * @param flag whether JavaScript running in the context of a file scheme
916ef163150805625a148a9715eff6693277f79dcefSteve Block     *             URL should be allowed to access content from any origin
9170ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
9180ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract void setAllowUniversalAccessFromFileURLs(boolean flag);
9190ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
9200ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
921ef163150805625a148a9715eff6693277f79dcefSteve Block     * Sets whether JavaScript running in the context of a file scheme URL
922ef163150805625a148a9715eff6693277f79dcefSteve Block     * should be allowed to access content from other file scheme URLs. To
923ef163150805625a148a9715eff6693277f79dcefSteve Block     * enable the most restrictive, and therefore secure policy, this setting
924ef163150805625a148a9715eff6693277f79dcefSteve Block     * should be disabled. Note that the value of this setting is ignored if
925ef163150805625a148a9715eff6693277f79dcefSteve Block     * the value of {@link #getAllowUniversalAccessFromFileURLs} is true.
926ef163150805625a148a9715eff6693277f79dcefSteve Block     * <p>
927ef163150805625a148a9715eff6693277f79dcefSteve Block     * The default value is true for API level
928ef163150805625a148a9715eff6693277f79dcefSteve Block     * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and below,
929ef163150805625a148a9715eff6693277f79dcefSteve Block     * and false for API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN}
930ef163150805625a148a9715eff6693277f79dcefSteve Block     * and above.
9310ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
932ef163150805625a148a9715eff6693277f79dcefSteve Block     * @param flag whether JavaScript running in the context of a file scheme
933ef163150805625a148a9715eff6693277f79dcefSteve Block     *             URL should be allowed to access content from other file
934ef163150805625a148a9715eff6693277f79dcefSteve Block     *             scheme URLs
9350ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
9360ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract void setAllowFileAccessFromFileURLs(boolean flag);
9370ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
9380ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
939b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the WebView should enable plugins. The default is false.
9404e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
941b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param flag true if plugins should be enabled
942300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been deprecated in favor of
943300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     *             {@link #setPluginState}
94454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
945a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
94654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsEnabled(boolean flag) {
9473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
948300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
949300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
950300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
9514e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells the WebView to enable, disable, or have plugins on demand. On
952300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * demand mode means that if a plugin exists that can handle the embedded
953300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * content, a placeholder icon will be shown instead of the plugin. When
954b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * the placeholder is clicked, the plugin will be enabled. The default is
955b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link PluginState#OFF}.
9564e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param state a PluginState value
958300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
959300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized void setPluginState(PluginState state) {
9603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
96154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
96254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
96354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
9644e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets a custom path to plugins used by the WebView. This method is
965fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
9664e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
9674e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param pluginsPath a String path to the directory containing plugins
968fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
9694e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *             their own APK via the system's package manager.
97054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
9719dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
97254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setPluginsPath(String pluginsPath) {
9733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Specified to do nothing, so no need for derived classes to override.
97454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
97554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
97654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
9774e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the path to where database storage API databases should be saved.
97872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * In order for the database storage API to function correctly, this method
97972ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * must be called with a path to which the application can write. This
98072ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * method should only be called once: repeated calls are ignored.
9814e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
98272ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * @param databasePath a path to the directory where databases should be
98372ca7a45ac4a911435a60361964a15045515eaf5Steve Block     *                     saved.
9847df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
9854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block    // This will update WebCore when the Sync runs in the C++ side.
98672ca7a45ac4a911435a60361964a15045515eaf5Steve Block    // Note that the WebCore Database Tracker only allows the path to be set
98772ca7a45ac4a911435a60361964a15045515eaf5Steve Block    // once.
9887df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabasePath(String databasePath) {
9893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
9907df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
9917df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
9927df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
99372ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Sets the path where the Geolocation databases should be saved. In order
99472ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * for Geolocation permissions and cached positions to be persisted, this
99572ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * method must be called with a path to which the application can write.
9964e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
99772ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * @param databasePath a path to the directory where databases should be
99872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     *                     saved.
9999d3273f62288fa54536a3928383588398ca2d029Steve Block     */
10004e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block    // This will update WebCore when the Sync runs in the C++ side.
10019d3273f62288fa54536a3928383588398ca2d029Steve Block    public synchronized void setGeolocationDatabasePath(String databasePath) {
10023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10039d3273f62288fa54536a3928383588398ca2d029Steve Block    }
10049d3273f62288fa54536a3928383588398ca2d029Steve Block
10059d3273f62288fa54536a3928383588398ca2d029Steve Block    /**
100672ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Sets whether the Application Caches API should be enabled. The default
100772ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * is false. Note that in order for the Application Caches API to be
100872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * enabled, a valid database path must also be supplied to
100972ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * {@link #setAppCachePath}.
10104e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10114e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should enable Application Caches
101260a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
101360a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    public synchronized void setAppCacheEnabled(boolean flag) {
10143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
101560a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
101660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
101760a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
101872ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Sets the path to the Application Caches files. In order for the
101972ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * Application Caches API to be enabled, this method must be called with a
102072ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * path to which the application can write. This method should only be
102172ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * called once: repeated calls are ignored.
10224e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10234e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param appCachePath a String path to the directory containing
102472ca7a45ac4a911435a60361964a15045515eaf5Steve Block     *                     Application Caches files.
102572ca7a45ac4a911435a60361964a15045515eaf5Steve Block     * @see setAppCacheEnabled
102660a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu     */
10273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setAppCachePath(String appCachePath) {
10283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
102960a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    }
103060a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu
103160a9a7d05577a65c8904fcb5f32b6a7a10886a13Andrei Popescu    /**
1032b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * Sets the maximum size for the Application Cache content. The passed size
1033b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * will be rounded to the nearest value that the database can support, so
1034b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * this should be viewed as a guide, not a hard limit. Setting the
1035b632adfaf445ff6f0c07bfc54671d204ad0e5a67Selim Gurun     * size to a value less than current database size does not cause the
1036f27ac09501dfcf12668c8144fbc8cc041b872388Selim Gurun     * database to be trimmed. The default size is {@link Long#MAX_VALUE}.
10374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param appCacheMaxSize the maximum size in bytes
10391c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu     */
10401c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    public synchronized void setAppCacheMaxSize(long appCacheMaxSize) {
10413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10421c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    }
10431c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu
10441c829208eadf175ad4600e70a14013b50a20adfeAndrei Popescu    /**
1045b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the database storage API is enabled. The default value is
1046b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * false. See also {@link #setDatabasePath} for how to correctly set up the
1047b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * database storage API.
10484e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10494e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should use the database storage API
10507df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
10517df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized void setDatabaseEnabled(boolean flag) {
10523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10537df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
10547df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
10557df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
1056b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether the DOM storage API is enabled. The default value is false.
10574e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if the WebView should use the DOM storage API
1059274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
1060274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized void setDomStorageEnabled(boolean flag) {
10613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1062274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
1063274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch
1064274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
10654e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the DOM Storage APIs are enabled.
10664e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10674e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the DOM Storage APIs are enabled
1068b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDomStorageEnabled
1069274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch     */
1070274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    public synchronized boolean getDomStorageEnabled() {
10713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1072274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    }
1073274680d9b8fce08f31c23dda796ecec937c942deBen Murdoch    /**
1074b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the path to where database storage API databases are saved.
10754e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10764e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the String path to the database storage API databases
1077b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDatabasePath
10787df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
10797df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized String getDatabasePath() {
10803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
10817df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    }
10827df1985e86635af006be3dfa65987d60e290b5deBen Murdoch
10837df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    /**
10844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether the database storage API is enabled.
10854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10864e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if the database storage API is enabled
1087b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setDatabaseEnabled
10887df1985e86635af006be3dfa65987d60e290b5deBen Murdoch     */
10897df1985e86635af006be3dfa65987d60e290b5deBen Murdoch    public synchronized boolean getDatabaseEnabled() {
10903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1091c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    }
1092c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu
1093c27a9acb3b7ec4d1845b623cc167e0b62b1d0585Andrei Popescu    /**
1094b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets whether Geolocation is enabled. The default is true. See also
1095b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link #setGeolocationDatabasePath} for how to correctly set up
1096b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Geolocation.
10974e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
10984e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether Geolocation should be enabled
109906cd751b052e65c359b16cce0570b6fab305eb89Steve Block     */
110006cd751b052e65c359b16cce0570b6fab305eb89Steve Block    public synchronized void setGeolocationEnabled(boolean flag) {
11013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
11025dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    }
11035dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter
11045dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    /**
11054e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether JavaScript is enabled.
11064e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11074e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if JavaScript is enabled
11084e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setJavaScriptEnabled
110954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
111054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptEnabled() {
11113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
111254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
111354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
111454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1115ef163150805625a148a9715eff6693277f79dcefSteve Block     * Gets whether JavaScript running in the context of a file scheme URL can
1116ef163150805625a148a9715eff6693277f79dcefSteve Block     * access content from any origin. This includes access to content from
1117ef163150805625a148a9715eff6693277f79dcefSteve Block     * other file scheme URLs.
11180ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
1119ef163150805625a148a9715eff6693277f79dcefSteve Block     * @return whether JavaScript running in the context of a file scheme URL
1120ef163150805625a148a9715eff6693277f79dcefSteve Block     *         can access content from any origin
11214e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowUniversalAccessFromFileURLs
11220ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
11230ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract boolean getAllowUniversalAccessFromFileURLs();
11240ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
11250ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
1126ef163150805625a148a9715eff6693277f79dcefSteve Block     * Gets whether JavaScript running in the context of a file scheme URL can
1127ef163150805625a148a9715eff6693277f79dcefSteve Block     * access content from other file scheme URLs.
11280ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     *
1129ef163150805625a148a9715eff6693277f79dcefSteve Block     * @return whether JavaScript running in the context of a file scheme URL
1130ef163150805625a148a9715eff6693277f79dcefSteve Block     *         can access content from other file scheme URLs
11314e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setAllowFileAccessFromFileURLs
11320ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun     */
11330ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    public abstract boolean getAllowFileAccessFromFileURLs();
11340ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun
11350ea6dad65eb77f9347a59704b1f8a019cfc9e01fSelim Gurun    /**
11364e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether plugins are enabled.
11374e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11384e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if plugins are enabled
1139b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setPluginsEnabled
1140300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     * @deprecated This method has been replaced by {@link #getPluginState}
114154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
1142a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb    @Deprecated
114354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getPluginsEnabled() {
11443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1145300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    }
1146300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott
1147300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    /**
1148b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the current state regarding whether plugins are enabled.
11494e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1150b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the plugin state as a {@link PluginState} value
1151b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setPluginState
1152300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott     */
1153300f2e95a4cecebb80c2c55418745df5c0c2fb6cPatrick Scott    public synchronized PluginState getPluginState() {
11543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
115554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
115654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
115754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
11584e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the directory that contains the plugin libraries. This method is
1159fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * obsolete since each plugin is now loaded from its own package.
11604e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11614e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return an empty string
1162fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * @deprecated This method is no longer used as plugins are loaded from
1163fdbdeb3137a6b47527d1d714afbb7e1b19b474ecDerek Sollenberger     * their own APK via the system's package manager.
116454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11659dc2e75e2720a8d0a5d7b87be53300eac021a3f3Jason Chen    @Deprecated
116654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getPluginsPath() {
11673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // Unconditionally returns empty string, so no need for derived classes to override.
1168658ab7d787f64987d7c45aae08e5a12a073afe78Grace Kloba        return "";
116954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
117054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
117154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
11724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells JavaScript to open windows automatically. This applies to the
11734e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * JavaScript function window.open(). The default is false.
11744e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11754e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag true if JavaScript can open windows automatically
117654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
11773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
11783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
117954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
118054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
118154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
11824e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets whether JavaScript can open windows automatically.
11834e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11844e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return true if JavaScript can open windows automatically during
11854e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *         window.open()
11864e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setJavaScriptCanOpenWindowsAutomatically
118754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
118854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() {
11893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
119054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
119154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
11924e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the default text encoding name to use when decoding html pages.
11934e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * The default is "Latin-1".
11944e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
11954e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param encoding the text encoding name
119654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
119754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setDefaultTextEncodingName(String encoding) {
11983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
119954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
120054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
120154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12024e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the default text encoding name.
12034e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
12044e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @return the default text encoding name as a string
12054e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @see #setDefaultTextEncodingName
120654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
120754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized String getDefaultTextEncodingName() {
12083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
120954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
121054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
1211f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
1212b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Sets the WebView's user-agent string. If the string is null or empty,
1213b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * the system default value will be used.
1214f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
1215f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized void setUserAgentString(String ua) {
12163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1217f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    }
1218f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project
1219f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    /**
12204e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Gets the WebView's user-agent string.
1221b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
1222b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the WebView's user-agent string
1223b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setUserAgentString
1224f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project     */
1225f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project    public synchronized String getUserAgentString() {
12263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
1227c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang    }
1228c55886aee84034f7fcf4431fdbeeaff1a9eafbd9Shimeng (Simon) Wang
122954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12309f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * Returns the default User-Agent used by a WebView.
12319f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * An instance of WebView could use a different User-Agent if a call
12329f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * is made to {@link WebSettings#setUserAgent(int)} or
12339f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * {@link WebSettings#setUserAgentString(String)}.
12349f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     *
12359f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     * @param context a Context object used to access application assets
12369f410c540ad593dd83e34266ccffd70867a600abGeorge Mount     */
12379f410c540ad593dd83e34266ccffd70867a600abGeorge Mount    public static String getDefaultUserAgent(Context context) {
12389f410c540ad593dd83e34266ccffd70867a600abGeorge Mount        return WebView.getFactory().getDefaultUserAgent(context);
12399f410c540ad593dd83e34266ccffd70867a600abGeorge Mount    }
12409f410c540ad593dd83e34266ccffd70867a600abGeorge Mount
12419f410c540ad593dd83e34266ccffd70867a600abGeorge Mount    /**
12424e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Tells the WebView whether it needs to set a node to have focus when
1243b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link WebView#requestFocus(int, android.graphics.Rect)} is called. The
1244b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * default value is true.
1245a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb     *
12464e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * @param flag whether the WebView needs to set a node
124754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
124854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setNeedInitialFocus(boolean flag) {
12493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
125054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
125154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project
125254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12534e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Sets the priority of the Render thread. Unlike the other settings, this
1254b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * one only needs to be called once per process. The default value is
1255b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link RenderPriority#NORMAL}.
1256adcd2ed8d24deddee528e96260d0ed673eeb261cMike Hearn     *
1257b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param priority the priority
125854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
125954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public synchronized void setRenderPriority(RenderPriority priority) {
12603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
126154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1262a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
126354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
12644e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     * Overrides the way the cache is used. The way the cache is used is based
1265b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * on the navigation type. For a normal page load, the cache is checked
126654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     * and content is re-validated as needed. When navigating back, content is
1267b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * not revalidated, instead the content is just retrieved from the cache.
1268b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * This method allows the client to override this behavior by specifying
1269b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * one of {@link #LOAD_DEFAULT}, {@link #LOAD_NORMAL},
1270b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link #LOAD_CACHE_ELSE_NETWORK}, {@link #LOAD_NO_CACHE} or
1271b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * {@link #LOAD_CACHE_ONLY}. The default value is {@link #LOAD_DEFAULT}.
12724e584df4cee8334bc371c04a67bcd0a32e2f9480Steve Block     *
1273b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @param mode the mode to use
127454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
127554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public void setCacheMode(int mode) {
12763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
127754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
1278a172e7d0d96e4a4db5e2b408e8ee3e96948df9a4Michael Kolb
127954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    /**
1280b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * Gets the current setting for overriding the cache mode.
1281b0e0f334422e25542e48901c8451e51c8efab590Steve Block     *
1282b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @return the current setting for overriding the cache mode
1283b0e0f334422e25542e48901c8451e51c8efab590Steve Block     * @see #setCacheMode
128454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project     */
128554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    public int getCacheMode() {
12863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        throw new MustOverrideException();
128754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project    }
128854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project}
1289