blob: 7ce29aaf9b47a6bc4d02d15a617c49d34c3d52ce [file] [log] [blame]
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.webkit;
import android.os.Message;
import android.os.Build;
/**
* Manages settings state for a WebView. When a WebView is first created, it
* obtains a set of default settings. These default settings will be returned
* from any getter call. A WebSettings object obtained from
* WebView.getSettings() is tied to the life of the WebView. If a WebView has
* been destroyed, any method call on WebSettings will throw an
* IllegalStateException.
*/
// This is (effectively) an abstract base class; concrete WebViewProviders must
// create a class derived from this, and return an instance of it in the
// WebViewProvider.getWebSettingsProvider() method implementation.
public abstract class WebSettings {
// TODO: Remove MustOverrideException and make all methods throwing it abstract instead;
// needs API file update.
private static class MustOverrideException extends RuntimeException {
MustOverrideException() {
super("abstract function called: must be overriden!");
}
}
/**
* Enum for controlling the layout of html.
* NORMAL means no rendering changes.
* SINGLE_COLUMN moves all content into one column that is the width of the
* view.
* NARROW_COLUMNS makes all columns no wider than the screen if possible.
*/
// XXX: These must match LayoutAlgorithm in Settings.h in WebCore.
public enum LayoutAlgorithm {
NORMAL,
/**
* @deprecated This algorithm is now obsolete.
*/
@Deprecated
SINGLE_COLUMN,
NARROW_COLUMNS
}
/**
* Enum for specifying the text size.
* SMALLEST is 50%
* SMALLER is 75%
* NORMAL is 100%
* LARGER is 150%
* LARGEST is 200%
* @deprecated Use {@link WebSettings#setTextZoom(int)} and {@link WebSettings#getTextZoom()} instead.
*/
public enum TextSize {
SMALLEST(50),
SMALLER(75),
NORMAL(100),
LARGER(150),
LARGEST(200);
TextSize(int size) {
value = size;
}
int value;
}
/**
* Enum for specifying the WebView's desired density.
* FAR makes 100% looking like in 240dpi
* MEDIUM makes 100% looking like in 160dpi
* CLOSE makes 100% looking like in 120dpi
*/
public enum ZoomDensity {
FAR(150), // 240dpi
MEDIUM(100), // 160dpi
CLOSE(75); // 120dpi
ZoomDensity(int size) {
value = size;
}
int value;
}
/**
* Default cache usage pattern Use with {@link #setCacheMode}.
*/
public static final int LOAD_DEFAULT = -1;
/**
* Normal cache usage pattern Use with {@link #setCacheMode}.
*/
public static final int LOAD_NORMAL = 0;
/**
* Use cache if content is there, even if expired (eg, history nav)
* If it is not in the cache, load from network.
* Use with {@link #setCacheMode}.
*/
public static final int LOAD_CACHE_ELSE_NETWORK = 1;
/**
* Don't use the cache, load from network
* Use with {@link #setCacheMode}.
*/
public static final int LOAD_NO_CACHE = 2;
/**
* Don't use the network, load from cache only.
* Use with {@link #setCacheMode}.
*/
public static final int LOAD_CACHE_ONLY = 3;
public enum RenderPriority {
NORMAL,
HIGH,
LOW
}
/**
* The plugin state effects how plugins are treated on a page. ON means
* that any object will be loaded even if a plugin does not exist to handle
* the content. ON_DEMAND means that if there is a plugin installed that
* can handle the content, a placeholder is shown until the user clicks on
* the placeholder. Once clicked, the plugin will be enabled on the page.
* OFF means that all plugins will be turned off and any fallback content
* will be used.
*/
public enum PluginState {
ON,
ON_DEMAND,
OFF
}
/**
* Hidden constructor to prevent clients from creating a new settings
* instance or deriving the class.
* @hide
*/
protected WebSettings() {
}
/**
* Enables dumping the pages navigation cache to a text file.
* @deprecated This method is now obsolete.
*/
@Deprecated
public void setNavDump(boolean enabled) {
throw new MustOverrideException();
}
/**
* Returns true if dumping the navigation cache is enabled.
* @deprecated This method is now obsolete.
*/
@Deprecated
public boolean getNavDump() {
throw new MustOverrideException();
}
/**
* Set whether the WebView supports zoom
*/
public void setSupportZoom(boolean support) {
throw new MustOverrideException();
}
/**
* Returns whether the WebView supports zoom
*/
public boolean supportZoom() {
throw new MustOverrideException();
}
/**
* Sets whether the zoom mechanism built into WebView is used.
*/
public void setBuiltInZoomControls(boolean enabled) {
throw new MustOverrideException();
}
/**
* Returns true if the zoom mechanism built into WebView is being used.
*/
public boolean getBuiltInZoomControls() {
throw new MustOverrideException();
}
/**
* Sets whether the on screen zoom buttons are used.
* A combination of built in zoom controls enabled
* and on screen zoom controls disabled allows for pinch to zoom
* to work without the on screen controls
*/
public void setDisplayZoomControls(boolean enabled) {
throw new MustOverrideException();
}
/**
* Returns true if the on screen zoom buttons are being used.
*/
public boolean getDisplayZoomControls() {
throw new MustOverrideException();
}
/**
* Enable or disable file access within WebView. File access is enabled by
* default. Note that this enables or disables file system access only.
* Assets and resources are still accessible using file:///android_asset and
* file:///android_res.
*/
public void setAllowFileAccess(boolean allow) {
throw new MustOverrideException();
}
/**
* Returns true if this WebView supports file access.
*/
public boolean getAllowFileAccess() {
throw new MustOverrideException();
}
/**
* Enable or disable content url access within WebView. Content url access
* allows WebView to load content from a content provider installed in the
* system. The default is enabled.
*/
public void setAllowContentAccess(boolean allow) {
throw new MustOverrideException();
}
/**
* Returns true if this WebView supports content url access.
*/
public boolean getAllowContentAccess() {
throw new MustOverrideException();
}
/**
* Set whether the WebView loads a page with overview mode.
*/
public void setLoadWithOverviewMode(boolean overview) {
throw new MustOverrideException();
}
/**
* Returns true if this WebView loads page with overview mode
*/
public boolean getLoadWithOverviewMode() {
throw new MustOverrideException();
}
/**
* Set whether the WebView will enable smooth transition while panning or
* zooming or while the window hosting the WebView does not have focus.
* If it is true, WebView will choose a solution to maximize the performance.
* e.g. the WebView's content may not be updated during the transition.
* If it is false, WebView will keep its fidelity. The default value is false.
*/
public void setEnableSmoothTransition(boolean enable) {
throw new MustOverrideException();
}
/**
* Returns true if the WebView enables smooth transition while panning or
* zooming.
*/
public boolean enableSmoothTransition() {
throw new MustOverrideException();
}
/**
* Set whether the WebView uses its background for over scroll background.
* If true, it will use the WebView's background. If false, it will use an
* internal pattern. Default is true.
* @deprecated This method is now obsolete.
*/
@Deprecated
public void setUseWebViewBackgroundForOverscrollBackground(boolean view) {
throw new MustOverrideException();
}
/**
* Returns true if this WebView uses WebView's background instead of
* internal pattern for over scroll background.
* @deprecated This method is now obsolete.
*/
@Deprecated
public boolean getUseWebViewBackgroundForOverscrollBackground() {
throw new MustOverrideException();
}
/**
* Store whether the WebView is saving form data.
*/
public void setSaveFormData(boolean save) {
throw new MustOverrideException();
}
/**
* Return whether the WebView is saving form data and displaying prior
* entries/autofill++. Always false in private browsing mode.
*/
public boolean getSaveFormData() {
throw new MustOverrideException();
}
/**
* Store whether the WebView is saving password.
*/
public void setSavePassword(boolean save) {
throw new MustOverrideException();
}
/**
* Return whether the WebView is saving password.
*/
public boolean getSavePassword() {
throw new MustOverrideException();
}
/**
* Set the text zoom of the page in percent. Default is 100.
* @param textZoom A percent value for increasing or decreasing the text.
*/
public synchronized void setTextZoom(int textZoom) {
throw new MustOverrideException();
}
/**
* Get the text zoom of the page in percent.
* @return A percent value describing the text zoom.
* @see setTextSizeZoom
*/
public synchronized int getTextZoom() {
throw new MustOverrideException();
}
/**
* Set the text size of the page.
* @param t A TextSize value for increasing or decreasing the text.
* @see WebSettings.TextSize
* @deprecated Use {@link #setTextZoom(int)} instead
*/
public synchronized void setTextSize(TextSize t) {
throw new MustOverrideException();
}
/**
* Get the text size of the page. If the text size was previously specified
* in percent using {@link #setTextZoom(int)}, this will return
* the closest matching {@link TextSize}.
* @return A TextSize enum value describing the text size.
* @see WebSettings.TextSize
* @deprecated Use {@link #getTextZoom()} instead
*/
public synchronized TextSize getTextSize() {
throw new MustOverrideException();
}
/**
* Set the default zoom density of the page. This should be called from UI
* thread.
* @param zoom A ZoomDensity value
* @see WebSettings.ZoomDensity
*/
public void setDefaultZoom(ZoomDensity zoom) {
throw new MustOverrideException();
}
/**
* Get the default zoom density of the page. This should be called from UI
* thread.
* @return A ZoomDensity value
* @see WebSettings.ZoomDensity
*/
public ZoomDensity getDefaultZoom() {
throw new MustOverrideException();
}
/**
* Enables using light touches to make a selection and activate mouseovers.
*/
public void setLightTouchEnabled(boolean enabled) {
throw new MustOverrideException();
}
/**
* Returns true if light touches are enabled.
*/
public boolean getLightTouchEnabled() {
throw new MustOverrideException();
}
/**
* @deprecated This setting controlled a rendering optimization
* that is no longer present. Setting it now has no effect.
*/
@Deprecated
public synchronized void setUseDoubleTree(boolean use) {
// Specified to do nothing, so no need for derived classes to override.
}
/**
* @deprecated This setting controlled a rendering optimization
* that is no longer present. Setting it now has no effect.
*/
@Deprecated
public synchronized boolean getUseDoubleTree() {
// Returns false unconditionally, so no need for derived classes to override.
return false;
}
/**
* Tell the WebView about user-agent string.
* @param ua 0 if the WebView should use an Android user-agent string,
* 1 if the WebView should use a desktop user-agent string.
*
* @deprecated Please use setUserAgentString instead.
*/
@Deprecated
public synchronized void setUserAgent(int ua) {
throw new MustOverrideException();
}
/**
* Return user-agent as int
* @return int 0 if the WebView is using an Android user-agent string.
* 1 if the WebView is using a desktop user-agent string.
* -1 if the WebView is using user defined user-agent string.
*
* @deprecated Please use getUserAgentString instead.
*/
@Deprecated
public synchronized int getUserAgent() {
throw new MustOverrideException();
}
/**
* Tell the WebView to use the wide viewport
*/
public synchronized void setUseWideViewPort(boolean use) {
throw new MustOverrideException();
}
/**
* @return True if the WebView is using a wide viewport
*/
public synchronized boolean getUseWideViewPort() {
throw new MustOverrideException();
}
/**
* Tell the WebView whether it supports multiple windows. TRUE means
* that {@link WebChromeClient#onCreateWindow(WebView, boolean,
* boolean, Message)} is implemented by the host application.
*/
public synchronized void setSupportMultipleWindows(boolean support) {
throw new MustOverrideException();
}
/**
* @return True if the WebView is supporting multiple windows. This means
* that {@link WebChromeClient#onCreateWindow(WebView, boolean,
* boolean, Message)} is implemented by the host application.
*/
public synchronized boolean supportMultipleWindows() {
throw new MustOverrideException();
}
/**
* Set the underlying layout algorithm. This will cause a relayout of the
* WebView.
* @param l A LayoutAlgorithm enum specifying the algorithm to use.
* @see WebSettings.LayoutAlgorithm
*/
public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
throw new MustOverrideException();
}
/**
* Return the current layout algorithm. The default is NARROW_COLUMNS.
* @return LayoutAlgorithm enum value describing the layout algorithm
* being used.
* @see WebSettings.LayoutAlgorithm
*/
public synchronized LayoutAlgorithm getLayoutAlgorithm() {
throw new MustOverrideException();
}
/**
* Set the standard font family name.
* @param font A font family name.
*/
public synchronized void setStandardFontFamily(String font) {
throw new MustOverrideException();
}
/**
* Get the standard font family name. The default is "sans-serif".
* @return The standard font family name as a string.
*/
public synchronized String getStandardFontFamily() {
throw new MustOverrideException();
}
/**
* Set the fixed font family name.
* @param font A font family name.
*/
public synchronized void setFixedFontFamily(String font) {
throw new MustOverrideException();
}
/**
* Get the fixed font family name. The default is "monospace".
* @return The fixed font family name as a string.
*/
public synchronized String getFixedFontFamily() {
throw new MustOverrideException();
}
/**
* Set the sans-serif font family name.
* @param font A font family name.
*/
public synchronized void setSansSerifFontFamily(String font) {
throw new MustOverrideException();
}
/**
* Get the sans-serif font family name.
* @return The sans-serif font family name as a string.
*/
public synchronized String getSansSerifFontFamily() {
throw new MustOverrideException();
}
/**
* Set the serif font family name. The default is "sans-serif".
* @param font A font family name.
*/
public synchronized void setSerifFontFamily(String font) {
throw new MustOverrideException();
}
/**
* Get the serif font family name. The default is "serif".
* @return The serif font family name as a string.
*/
public synchronized String getSerifFontFamily() {
throw new MustOverrideException();
}
/**
* Set the cursive font family name.
* @param font A font family name.
*/
public synchronized void setCursiveFontFamily(String font) {
throw new MustOverrideException();
}
/**
* Get the cursive font family name. The default is "cursive".
* @return The cursive font family name as a string.
*/
public synchronized String getCursiveFontFamily() {
throw new MustOverrideException();
}
/**
* Set the fantasy font family name.
* @param font A font family name.
*/
public synchronized void setFantasyFontFamily(String font) {
throw new MustOverrideException();
}
/**
* Get the fantasy font family name. The default is "fantasy".
* @return The fantasy font family name as a string.
*/
public synchronized String getFantasyFontFamily() {
throw new MustOverrideException();
}
/**
* Set the minimum font size.
* @param size A non-negative integer between 1 and 72.
* Any number outside the specified range will be pinned.
*/
public synchronized void setMinimumFontSize(int size) {
throw new MustOverrideException();
}
/**
* Get the minimum font size. The default is 8.
* @return A non-negative integer between 1 and 72.
*/
public synchronized int getMinimumFontSize() {
throw new MustOverrideException();
}
/**
* Set the minimum logical font size.
* @param size A non-negative integer between 1 and 72.
* Any number outside the specified range will be pinned.
*/
public synchronized void setMinimumLogicalFontSize(int size) {
throw new MustOverrideException();
}
/**
* Get the minimum logical font size. The default is 8.
* @return A non-negative integer between 1 and 72.
*/
public synchronized int getMinimumLogicalFontSize() {
throw new MustOverrideException();
}
/**
* Set the default font size.
* @param size A non-negative integer between 1 and 72.
* Any number outside the specified range will be pinned.
*/
public synchronized void setDefaultFontSize(int size) {
throw new MustOverrideException();
}
/**
* Get the default font size. The default is 16.
* @return A non-negative integer between 1 and 72.
*/
public synchronized int getDefaultFontSize() {
throw new MustOverrideException();
}
/**
* Set the default fixed font size.
* @param size A non-negative integer between 1 and 72.
* Any number outside the specified range will be pinned.
*/
public synchronized void setDefaultFixedFontSize(int size) {
throw new MustOverrideException();
}
/**
* Get the default fixed font size. The default is 16.
* @return A non-negative integer between 1 and 72.
*/
public synchronized int getDefaultFixedFontSize() {
throw new MustOverrideException();
}
/**
* Sets whether the WebView should load image resources. Note that this method
* controls loading of all images, including those embedded using the data
* URI scheme. Use {@link #setBlockNetworkImage} to control loading only
* of images specified using network URI schemes. Note that if the value of this
* setting is changed from false to true, all images resources referenced
* by content currently displayed by the WebView are loaded automatically.
* @param flag Whether the WebView should load image resources.
*/
public synchronized void setLoadsImagesAutomatically(boolean flag) {
throw new MustOverrideException();
}
/**
* Returns true if the WebView loads image resources. This includes
* images embedded using the data URI scheme. The default is true.
* @return True if the WebView loads image resources.
*/
public synchronized boolean getLoadsImagesAutomatically() {
throw new MustOverrideException();
}
/**
* Sets whether the WebView should not load image resources from the
* network (resources accessed via http and https URI schemes). Note
* that this method has no effect unless
* {@link #getLoadsImagesAutomatically} returns true. Also note that
* disabling all network loads using {@link #setBlockNetworkLoads}
* will also prevent network images from loading, even if this flag is set
* to false. When the value of this setting is changed from true to false,
* network images resources referenced by content currently displayed by
* the WebView are fetched automatically.
* @param flag Whether the WebView should not load image resources from
* the network.
* @see #setBlockNetworkLoads
*/
public synchronized void setBlockNetworkImage(boolean flag) {
throw new MustOverrideException();
}
/**
* Returns true if the WebView does not load image resources from the network.
* The default is false.
* @return True if the WebView does not load image resources from the network.
*/
public synchronized boolean getBlockNetworkImage() {
throw new MustOverrideException();
}
/**
* Sets whether the WebView should not load resources from the network.
* Use {@link #setBlockNetworkImage} to only avoid loading
* image resources. Note that if the value of this setting is
* changed from true to false, network resources referenced by content
* currently displayed by the WebView are not fetched until
* {@link android.webkit.WebView#reload} is called.
* If the application does not have the
* {@link android.Manifest.permission#INTERNET} permission, attempts to set
* a value of false will cause a {@link java.lang.SecurityException}
* to be thrown.
* @param flag Whether the WebView should not load any resources
* from the network.
* @see android.webkit.WebView#reload
*/
public synchronized void setBlockNetworkLoads(boolean flag) {
throw new MustOverrideException();
}
/**
* Returns true if the WebView does not load any resources from the network.
* The default value is false if the application has the
* {@link android.Manifest.permission#INTERNET} permission, otherwise it is
* true.
* @return True if the WebView does not load any resources from the network.
*/
public synchronized boolean getBlockNetworkLoads() {
throw new MustOverrideException();
}
/**
* Tell the WebView to enable javascript execution.
* @param flag True if the WebView should execute javascript.
*/
public synchronized void setJavaScriptEnabled(boolean flag) {
throw new MustOverrideException();
}
/**
* Configure scripting (such as XmlHttpRequest) access from file scheme URLs
* to any origin. Note, calling this method with a true argument value also
* implies calling setAllowFileAccessFromFileURLs with a true. The default
* value is false for API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN}
* and higher and true otherwise.
*
. * @param flag True if the WebView should allow scripting access from file
* scheme URLs to any origin
*/
public abstract void setAllowUniversalAccessFromFileURLs(boolean flag);
/**
* Configure scripting (such as XmlHttpRequest) access from file scheme URLs
* to file origin. The default value is false for API level
* {@link android.os.Build.VERSION_CODES#JELLY_BEAN} and higher and true
* otherwise.
*
* @param flag True if the WebView should allow scripting access from file
* scheme URLs to file origin
*/
public abstract void setAllowFileAccessFromFileURLs(boolean flag);
/**
* Tell the WebView to enable plugins.
* @param flag True if the WebView should load plugins.
* @deprecated This method has been deprecated in favor of
* {@link #setPluginState}
*/
@Deprecated
public synchronized void setPluginsEnabled(boolean flag) {
throw new MustOverrideException();
}
/**
* Tell the WebView to enable, disable, or have plugins on demand. On
* demand mode means that if a plugin exists that can handle the embedded
* content, a placeholder icon will be shown instead of the plugin. When
* the placeholder is clicked, the plugin will be enabled.
* @param state One of the PluginState values.
*/
public synchronized void setPluginState(PluginState state) {
throw new MustOverrideException();
}
/**
* Set a custom path to plugins used by the WebView. This method is
* obsolete since each plugin is now loaded from its own package.
* @param pluginsPath String path to the directory containing plugins.
* @deprecated This method is no longer used as plugins are loaded from
* their own APK via the system's package manager.
*/
@Deprecated
public synchronized void setPluginsPath(String pluginsPath) {
// Specified to do nothing, so no need for derived classes to override.
}
/**
* Set the path to where database storage API databases should be saved.
* Nota that the WebCore Database Tracker only allows the path to be set once.
* This will update WebCore when the Sync runs in the C++ side.
* @param databasePath String path to the directory where databases should
* be saved. May be the empty string but should never be null.
*/
public synchronized void setDatabasePath(String databasePath) {
throw new MustOverrideException();
}
/**
* Set the path where the Geolocation permissions database should be saved.
* This will update WebCore when the Sync runs in the C++ side.
* @param databasePath String path to the directory where the Geolocation
* permissions database should be saved. May be the empty string but
* should never be null.
*/
public synchronized void setGeolocationDatabasePath(String databasePath) {
throw new MustOverrideException();
}
/**
* Tell the WebView to enable Application Caches API.
* @param flag True if the WebView should enable Application Caches.
*/
public synchronized void setAppCacheEnabled(boolean flag) {
throw new MustOverrideException();
}
/**
* Set a custom path to the Application Caches files. The client
* must ensure it exists before this call.
* @param appCachePath String path to the directory containing Application
* Caches files. The appCache path can be the empty string but should not
* be null. Passing null for this parameter will result in a no-op.
*/
public synchronized void setAppCachePath(String appCachePath) {
throw new MustOverrideException();
}
/**
* Set the maximum size for the Application Caches content.
* @param appCacheMaxSize the maximum size in bytes.
*/
public synchronized void setAppCacheMaxSize(long appCacheMaxSize) {
throw new MustOverrideException();
}
/**
* Set whether the database storage API is enabled.
* @param flag boolean True if the WebView should use the database storage
* API.
*/
public synchronized void setDatabaseEnabled(boolean flag) {
throw new MustOverrideException();
}
/**
* Set whether the DOM storage API is enabled.
* @param flag boolean True if the WebView should use the DOM storage
* API.
*/
public synchronized void setDomStorageEnabled(boolean flag) {
throw new MustOverrideException();
}
/**
* Returns true if the DOM Storage API's are enabled.
* @return True if the DOM Storage API's are enabled.
*/
public synchronized boolean getDomStorageEnabled() {
throw new MustOverrideException();
}
/**
* Return the path to where database storage API databases are saved for
* the current WebView.
* @return the String path to the database storage API databases.
*/
public synchronized String getDatabasePath() {
throw new MustOverrideException();
}
/**
* Returns true if database storage API is enabled.
* @return True if the database storage API is enabled.
*/
public synchronized boolean getDatabaseEnabled() {
throw new MustOverrideException();
}
/**
* Sets whether Geolocation is enabled.
* @param flag Whether Geolocation should be enabled.
*/
public synchronized void setGeolocationEnabled(boolean flag) {
throw new MustOverrideException();
}
/**
* Return true if javascript is enabled. <b>Note: The default is false.</b>
* @return True if javascript is enabled.
*/
public synchronized boolean getJavaScriptEnabled() {
throw new MustOverrideException();
}
/**
* Return true if scripting access {see @setAllowUniversalAccessFromFileURLs} from
* file URLs to any origin is enabled. The default value is false for API level
* {@link android.os.Build.VERSION_CODES#JELLY_BEAN} and higher and true otherwise.
*
* @return True if the WebView allows scripting access from file scheme requests
* to any origin
*/
public abstract boolean getAllowUniversalAccessFromFileURLs();
/**
* Return true if scripting access {see @setAllowFileAccessFromFileURLs} from file
* URLs to file origin is enabled. The default value is false for API level
* {@link android.os.Build.VERSION_CODES#JELLY_BEAN} and higher, and true otherwise.
*
* @return True if the WebView allows scripting access from file scheme requests
* to file origin
*/
public abstract boolean getAllowFileAccessFromFileURLs();
/**
* Return true if plugins are enabled.
* @return True if plugins are enabled.
* @deprecated This method has been replaced by {@link #getPluginState}
*/
@Deprecated
public synchronized boolean getPluginsEnabled() {
throw new MustOverrideException();
}
/**
* Return the current plugin state.
* @return A value corresponding to the enum PluginState.
*/
public synchronized PluginState getPluginState() {
throw new MustOverrideException();
}
/**
* Returns the directory that contains the plugin libraries. This method is
* obsolete since each plugin is now loaded from its own package.
* @return An empty string.
* @deprecated This method is no longer used as plugins are loaded from
* their own APK via the system's package manager.
*/
@Deprecated
public synchronized String getPluginsPath() {
// Unconditionally returns empty string, so no need for derived classes to override.
return "";
}
/**
* Tell javascript to open windows automatically. This applies to the
* javascript function window.open().
* @param flag True if javascript can open windows automatically.
*/
public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
throw new MustOverrideException();
}
/**
* Return true if javascript can open windows automatically. The default
* is false.
* @return True if javascript can open windows automatically during
* window.open().
*/
public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() {
throw new MustOverrideException();
}
/**
* Set the default text encoding name to use when decoding html pages.
* @param encoding The text encoding name.
*/
public synchronized void setDefaultTextEncodingName(String encoding) {
throw new MustOverrideException();
}
/**
* Get the default text encoding name. The default is "Latin-1".
* @return The default text encoding name as a string.
*/
public synchronized String getDefaultTextEncodingName() {
throw new MustOverrideException();
}
/**
* Set the WebView's user-agent string. If the string "ua" is null or empty,
* it will use the system default user-agent string.
*/
public synchronized void setUserAgentString(String ua) {
throw new MustOverrideException();
}
/**
* Return the WebView's user-agent string.
*/
public synchronized String getUserAgentString() {
throw new MustOverrideException();
}
/**
* Tell the WebView whether it needs to set a node to have focus when
* {@link WebView#requestFocus(int, android.graphics.Rect)} is called.
*
* @param flag
*/
public void setNeedInitialFocus(boolean flag) {
throw new MustOverrideException();
}
/**
* Set the priority of the Render thread. Unlike the other settings, this
* one only needs to be called once per process. The default is NORMAL.
*
* @param priority RenderPriority, can be normal, high or low.
*/
public synchronized void setRenderPriority(RenderPriority priority) {
throw new MustOverrideException();
}
/**
* Override the way the cache is used. The way the cache is used is based
* on the navigation option. For a normal page load, the cache is checked
* and content is re-validated as needed. When navigating back, content is
* not revalidated, instead the content is just pulled from the cache.
* This function allows the client to override this behavior.
* @param mode One of the LOAD_ values.
*/
public void setCacheMode(int mode) {
throw new MustOverrideException();
}
/**
* Return the current setting for overriding the cache mode. For a full
* description, see the {@link #setCacheMode(int)} function.
*/
public int getCacheMode() {
throw new MustOverrideException();
}
}