Class BrowserFunction
- java.lang.Object
-
- com.equo.chromium.swt.BrowserFunction
-
public class BrowserFunction extends Object
Instances of this class represent java-side "functions" that are invokable from javascript. Browser clients define these functions by subclassingBrowserFunction
and overriding itsfunction(Object[])
method. This method will be invoked whenever javascript running in the Browser makes a call with the function's name.Application code must explicitly invoke the
BrowserFunction.dispose()
method to release the resources managed by each instance when those instances are no longer required. Since there is usually a correlation between the registering of BrowserFunction(s) in a Browser and the loading of a page in the Browser that is aware of these functions, theLocationListener.changed()
listener is often a good place to do this.Note that disposing a Browser automatically disposes all BrowserFunctions associated with it.
- Since:
- 3.5
- See Also:
dispose()
,function(Object[])
,LocationListener.changed(LocationEvent)
-
-
Constructor Summary
Constructors Constructor Description BrowserFunction(Browser browser, String name)
Constructs a new instance of this class, which will be invokable by javascript running in the specified Browser.BrowserFunction(Browser browser, String name, boolean top, String[] frameNames)
Constructs a new instance of this class, which will be invokable by javascript running in the specified Browser.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
Disposes of the resources associated with this BrowserFunction.void
dispose(boolean remove)
Disposes of the resources associated with this BrowserFunction.Object
function(Object[] arguments)
Subclasses should override this method.Browser
getBrowser()
Returns the Browser whose pages can invoke this BrowserFunction.String[]
getFrameNames()
Gets a array names of all frames in context browser.String
getName()
Returns the name that javascript can use to invoke this BrowserFunction.boolean
isDisposed()
Returnstrue
if this BrowserFunction has been disposed andfalse
otherwise.
-
-
-
Field Detail
-
index
public int index
-
top
public boolean top
-
token
public String token
-
router
public org.cef.browser.CefMessageRouter router
-
-
Constructor Detail
-
BrowserFunction
public BrowserFunction(Browser browser, String name)
Constructs a new instance of this class, which will be invokable by javascript running in the specified Browser. The function will be accessible in the top-level window and all child frames. To create a function with a reduced scope of accessibility use theBrowserFunction
constructor that accepts frame names instead.You must dispose the BrowserFunction when it is no longer required. A common place to do this is in a
LocationListener.changed()
listener.- Parameters:
browser
- the browser whose javascript can invoke this functionname
- the name that javascript will use to invoke this function- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the browser is null
- ERROR_NULL_ARGUMENT - if the name is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the browser has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
dispose()
,BrowserFunction(Browser, String, boolean, String[])
,LocationListener.changed(LocationEvent)
-
BrowserFunction
public BrowserFunction(Browser browser, String name, boolean top, String[] frameNames)
Constructs a new instance of this class, which will be invokable by javascript running in the specified Browser. The accessibility of the function to the top-level window and its child frames is determined by thetop
andframeNames
arguments. To create a function that is globally accessible to the top-level window and all child frames use theBrowserFunction
constructor that does not accept frame names instead.You must dispose the BrowserFunction when it is no longer required. A common place to do this is in a
LocationListener.changed()
listener.- Parameters:
browser
- the browser whose javascript can invoke this functionname
- the name that javascript will use to invoke this functiontop
-true
if the function should be accessible to the top-level window andfalse
otherwiseframeNames
- the names of the child frames that the function should be accessible in- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the browser is null
- ERROR_NULL_ARGUMENT - if the name is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the browser has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 3.8
- See Also:
dispose()
,BrowserFunction(Browser, String)
,LocationListener.changed(LocationEvent)
-
-
Method Detail
-
dispose
public void dispose()
Disposes of the resources associated with this BrowserFunction. Applications must dispose of all BrowserFunctions that they create.Note that disposing a Browser automatically disposes all BrowserFunctions associated with it.
-
dispose
public void dispose(boolean remove)
Disposes of the resources associated with this BrowserFunction. Applications must dispose of all BrowserFunctions that they create.Note that disposing a Browser automatically disposes all BrowserFunctions associated with it.
- Parameters:
remove
- Destroy BrowserFunction when remove is true.
-
function
public Object function(Object[] arguments)
Subclasses should override this method. This method is invoked when the receiver's function is called from javascript. If all of the arguments that are passed to the javascript function call are of supported types then this method is invoked with the argument values converted as follows: javascript null or undefined ->null
javascript number ->java.lang.Double
javascript string ->java.lang.String
javascript boolean ->java.lang.Boolean
javascript array whose elements are all of supported types ->java.lang.Object[]
If any of the javascript arguments are of unsupported types then the function invocation will fail and this method will not be called. This method must return a value with one of these supported java types to the javascript caller. Note thatnull
values are converted to javascript'snull
value (notundefined
), and instances of anyjava.lang.Number
subclass will be converted to a javascript number.- Parameters:
arguments
- the javascript arguments converted to java equivalents- Returns:
- the value to return to the javascript caller
- Throws:
org.eclipse.swt.SWTException
-- ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
- ERROR_FUNCTION_DISPOSED when the BrowserFunction has been disposed
-
getBrowser
public Browser getBrowser()
Returns the Browser whose pages can invoke this BrowserFunction.- Returns:
- the Browser associated with this BrowserFunction
- Throws:
org.eclipse.swt.SWTException
-- ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
- ERROR_FUNCTION_DISPOSED when the BrowserFunction has been disposed
-
getName
public String getName()
Returns the name that javascript can use to invoke this BrowserFunction.- Returns:
- the BrowserFunction's name
- Throws:
org.eclipse.swt.SWTException
-- ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
- ERROR_FUNCTION_DISPOSED when the BrowserFunction has been disposed
-
isDisposed
public boolean isDisposed()
Returnstrue
if this BrowserFunction has been disposed andfalse
otherwise.This method gets the dispose state for the BrowserFunction. When a BrowserFunction has been disposed it is an error to invoke any of its methods.
Note that disposing a Browser automatically disposes all BrowserFunctions associated with it.
- Returns:
true
if this BrowserFunction has been disposed andfalse
otherwise
-
getFrameNames
public String[] getFrameNames()
Gets a array names of all frames in context browser.- Returns:
- Returs a array with all names of frames in context browser.
-
-