[API categories](API-categories.md) | [API index](API-index.md) # Browser (object) Remember to free all browser references when closing app for the browser to shut down cleanly. Otherwise data such as cookies or other storage might not be flushed to disk when closing app, and other issues might occur as well. To free a reference just assign a None value to a browser variable. To compare browser objects always use [GetIdentifier()](#getidentifier) method. Do not compare two Browser objects variables directly. Table of contents: * [Notes](#notes) * [Methods](#methods) * [AddWordToDictionary](#addwordtodictionary) * [CanGoBack](#cangoback) * [CanGoForward](#cangoforward) * [CloseBrowser](#closebrowser) * [CloseDevTools](#closedevtools) * [DragTargetDragEnter](#dragtargetdragenter) * [DragTargetDragOver](#dragtargetdragover) * [DragTargetDragLeave](#dragtargetdragleave) * [DragTargetDrop](#dragtargetdrop) * [DragSourceEndedAt](#dragsourceendedat) * [DragSourceSystemDragEnded](#dragsourcesystemdragended) * [ExecuteFunction](#executefunction) * [ExecuteJavascript](#executejavascript) * [Find](#find) * [GetClientCallback](#getclientcallback) * [GetClientCallbacksDict](#getclientcallbacksdict) * [GetFocusedFrame](#getfocusedframe) * [GetFrame](#getframe) * [GetFrameByIdentifier](#getframebyidentifier) * [GetFrames](#getframes) * [GetFrameCount](#getframecount) * [GetFrameIdentifiers](#getframeidentifiers) * [GetFrameNames](#getframenames) * [GetJavascriptBindings](#getjavascriptbindings) * [GetMainFrame](#getmainframe) * [GetNSTextInputContext](#getnstextinputcontext) * [GetOpenerWindowHandle](#getopenerwindowhandle) * [GetOuterWindowHandle](#getouterwindowhandle) * [GetUrl](#geturl) * [GetUserData](#getuserdata) * [GetWindowHandle](#getwindowhandle) * [GetIdentifier](#getidentifier) * [GetZoomLevel](#getzoomlevel) * [GoBack](#goback) * [GoForward](#goforward) * [HandleKeyEventAfterTextInputClient](#handlekeyeventaftertextinputclient) * [HandleKeyEventBeforeTextInputClient](#handlekeyeventbeforetextinputclient) * [HasDocument](#hasdocument) * [IsFullscreen](#isfullscreen) * [IsLoading](#isloading) * [IsMouseCursorChangeDisabled](#ismousecursorchangedisabled) * [IsPopup](#ispopup) * [IsWindowRenderingDisabled](#iswindowrenderingdisabled) * [LoadUrl](#loadurl) * [Navigate](#navigate) * [NotifyMoveOrResizeStarted](#notifymoveorresizestarted) * [NotifyScreenInfoChanged](#notifyscreeninfochanged) * [ParentWindowWillClose](#parentwindowwillclose) * [Reload](#reload) * [ReloadIgnoreCache](#reloadignorecache) * [ReplaceMisspelling](#replacemisspelling) * [SetBounds](#setbounds) * [SendKeyEvent](#sendkeyevent) * [SendMouseClickEvent](#sendmouseclickevent) * [SendMouseMoveEvent](#sendmousemoveevent) * [SendMouseWheelEvent](#sendmousewheelevent) * [SendFocusEvent](#sendfocusevent) * [SendCaptureLostEvent](#sendcapturelostevent) * [SetClientCallback](#setclientcallback) * [SetClientHandler](#setclienthandler) * [SetFocus](#setfocus) * [SetMouseCursorChangeDisabled](#setmousecursorchangedisabled) * [SetJavascriptBindings](#setjavascriptbindings) * [SetUserData](#setuserdata) * [SetZoomLevel](#setzoomlevel) * [ShowDevTools](#showdevtools) * [StartDownload](#startdownload) * [StopLoad](#stopload) * [StopFinding](#stopfinding) * [ToggleFullscreen](#togglefullscreen) * [TryCloseBrowser](#tryclosebrowser) * [WasResized](#wasresized) * [WasHidden](#washidden) ## Notes Methods available in upstream CEF which were not yet exposed in CEF Python (see src/include/cef_browser.h): * ImeSetComposition * ImeCommitText * ImeFinishComposingText * ImeCancelComposition There are some edge cases when after the OnBeforeClose event browser objects are no more globally referenced thus a new instance is created that wraps upstream CefBrowser object. Browser objects that were globally unreferenced do not have properties of the original Browser object, for example they do not have client callbacks, javascript bindings or user data set. ## Methods ### AddWordToDictionary | Parameter | Type | | --- | --- | | word | string | | __Return__ | void | Add the specified |word| to the spelling dictionary. ### CanGoBack | | | | --- | --- | | __Return__ | bool | Returns true if the browser can navigate backwards. ### CanGoForward | | | | --- | --- | | __Return__ | bool | Returns true if the browser can navigate forwards. ### CloseBrowser | Parameter | Type | | --- | --- | | forceClose | bool | | __Return__ | void | Closes the browser. If the window was created explicitily by you (not a popup) you still need to post WM_DESTROY message to the window. Request that the browser close. The Javascript 'onbeforeunload' event will be fired. If |force_close| is false the event handler, if any, will be allowed to prompt the user and the user can optionally cancel the close. If |force_close| is true the prompt will not be displayed and the close will proceed. Results in a call to LifespanHandler::DoClose() if the event handler allows the close or if |force_close| is true. See LifespanHandler::DoClose() documentation for additional usage information. ### CloseDevTools | | | | --- | --- | | __Return__ | bool | Explicitly close the associated DevTools browser, if any. ### DragTargetDragEnter | Parameter | Type | | --- | --- | | drag_data | [DragData](DragData.md) | | x | int | | y | int | | allowed_ops | int | | __Return__ | void | Description from upstream CEF: > Call this method when the user drags the mouse into the web view (before > calling DragTargetDragOver/DragTargetLeave/DragTargetDrop). > |drag_data| should not contain file contents as this type of data is not > allowed to be dragged into the web view. File contents can be removed using > CefDragData::ResetFileContents (for example, if |drag_data| comes from > CefRenderHandler::StartDragging). > This method is only used when window rendering is disabled. ### DragTargetDragOver | Parameter | Type | | --- | --- | | x | int | | y | int | | allowed_ops | int | | __Return__ | void | Description from upstream CEF: > Call this method each time the mouse is moved across the web view during > a drag operation (after calling DragTargetDragEnter and before calling > DragTargetDragLeave/DragTargetDrop). > This method is only used when window rendering is disabled. ### DragTargetDragLeave | | | | --- | --- | | __Return__ | void | Description from upstream CEF: > Call this method when the user drags the mouse out of the web view (after > calling DragTargetDragEnter). > This method is only used when window rendering is disabled. ### DragTargetDrop | Parameter | Type | | --- | --- | | x | int | | y | int | | __Return__ | void | Description from upstream CEF: > Call this method when the user completes the drag operation by dropping > the object onto the web view (after calling DragTargetDragEnter). > The object being dropped is |drag_data|, given as an argument to > the previous DragTargetDragEnter call. > This method is only used when window rendering is disabled. ### DragSourceEndedAt | Parameter | Type | | --- | --- | | x | int | | y | int | | operation | int | | __Return__ | void | Description from upstream CEF: > Call this method when the drag operation started by a > CefRenderHandler::StartDragging call has ended either in a drop or > by being cancelled. |x| and |y| are mouse coordinates relative to the > upper-left corner of the view. If the web view is both the drag source > and the drag target then all DragTarget* methods should be called before > DragSource* mthods. > This method is only used when window rendering is disabled. Operation enum from upstream CEF - these constants are declared in the `cefpython` module: > DRAG_OPERATION_NONE = 0, > DRAG_OPERATION_COPY = 1, > DRAG_OPERATION_LINK = 2, > DRAG_OPERATION_GENERIC = 4, > DRAG_OPERATION_PRIVATE = 8, > DRAG_OPERATION_MOVE = 16, > DRAG_OPERATION_DELETE = 32, > DRAG_OPERATION_EVERY = UINT_MAX ### DragSourceSystemDragEnded | | | | --- | --- | | __Return__ | void | Description from upstream CEF: > Call this method when the drag operation started by a > CefRenderHandler::StartDragging call has completed. This method may be > called immediately without first calling DragSourceEndedAt to cancel a > drag operation. If the web view is both the drag source and the drag > target then all DragTarget* methods should be called before DragSource* > mthods. > This method is only used when window rendering is disabled. ### ExecuteFunction | Parameter | Type | | --- | --- | | funcName | string | | [params..] | mixed | | __Return__ | void | Call javascript function asynchronously. This can also call object's methods, just pass "object.method" as `funcName`. Any valid javascript syntax is allowed as `funcName`, you could even pass an anonymous function here. For a list of allowed types for `mixed` see [JavascriptBindings](JavascriptBindings.md).IsValueAllowed() (except function, method and instance). Passing a python function here is not allowed, it is only possible through [JavascriptCallback](JavascriptCallback.md) object. ### ExecuteJavascript | Parameter | Type | | --- | --- | | jsCode | string | | scriptUrl="" | string | | startLine=1 | int | | __Return__ | void | Execute a string of JavaScript code in this frame. The `sciptURL` parameter is the URL where the script in question can be found, if any. The renderer may request this URL to show the developer the source of the error. The `startLine` parameter is the base line number to use for error reporting. This function executes asynchronously so there is no way to get the returned value. Calling javascript from native code synchronously is not possible in CEF 3. It is also not possible doing it synchronously the other way around ie. js->native. ### Find | Parameter | Type | | --- | --- | | searchID | int | | searchText | string | | forward | bool | | matchCase | bool | | findNext | bool | | __Return__ | void | Search for |searchText|. |searchID| can be custom, it is so that you can have multiple searches running simultaneously. |forward| indicates whether to search forward or backward within the page. |matchCase| indicates whether the search should be case-sensitive. |findNext| indicates whether this is the first request or a follow-up. The CefFindHandler instance, if any, returned via CefClient::GetFindHandler will be called to report find results. ### GetClientCallback | Parameter | Type | | --- | --- | | name | string | | __Return__ | func | Get client callback by name. ### GetClientCallbacksDict | | | | --- | --- | | __Return__ | dict | Get client callbacks as a dictionary. ### GetFocusedFrame | | | | --- | --- | | __Return__ | Frame | Returns the focused [Frame](Frame.md) for the browser window. ### GetFrame | Parameter | Type | | --- | --- | | name | string | | __Return__ | Frame | Returns the [Frame](Frame.md) with the specified name, or NULL if not found. ### GetFrameByIdentifier | Parameter | Type | | --- | --- | | identifier | long | | __Return__ | Frame | Available only in CEF 3. Returns the [Frame](Frame.md) with the specified identifier, or None if not found. ### GetFrames | | | | --- | --- | | __Return__ | list | Get all frames. This is an internal CEF Python implementation that uses GetFrameNames() and GetFrame() methods to list through all frames. The main frame is not included in that list. ### GetFrameCount | | | | --- | --- | | __Return__ | int | Available only in CEF 3. Not yet implemented. Returns the number of frames that currently exist. ### GetFrameIdentifiers | | | | --- | --- | | __Return__ | void | Available only in CEF 3. Not yet implemented. Returns the identifiers of all existing frames. ### GetFrameNames | | | | --- | --- | | __Return__ | string[] | Returns the names of all existing frames. This list does not include the main frame. ### GetJavascriptBindings | | | | --- | --- | | __Return__ | [JavascriptBindings](JavascriptBindings.md) | Returns the [JavascriptBindings](JavascriptBindings.md) object that was passed to [cefpython](cefpython.md).CreateBrowserSync(). ### GetMainFrame | | | | --- | --- | | __Return__ | Frame | Returns the main (top-level) [Frame](Frame.md) for the browser window. ### GetNSTextInputContext | | | | --- | --- | | __Return__ | TextInputContext | Not yet ported. Available only in CEF 3. Get the NSTextInputContext implementation for enabling IME on Mac when window rendering is disabled. ### GetOpenerWindowHandle | | | | --- | --- | | __Return__ | windowHandle | Retrieve the CEF-internal (inner or outer) window handle of the browser that opened this browser. Will return None for non-popup windows. See GetWindowHandle() for an explanation of inner/outer window handles. ### GetOuterWindowHandle | | | | --- | --- | | __Return__ | windowHandle | Get the most outer window handle. ### GetUrl | | | | --- | --- | | __Return__ | string | Get url of the main frame. ### GetUserData | Parameter | Type | | --- | --- | | key | mixed | | __Return__ | mixed | Get user data. See also SetUserData(). ### GetWindowHandle | | | | --- | --- | | __Return__ | windowHandle | Returns an inner or outer window handle for the browser. If the browser was created using CreateBrowserSync() then this will return an inner CEF-internal window handle. If this is a popup browser created from javascript using `window.open()` and its [WindowInfo](WindowInfo.md) has not been set in LifespanHandler.OnAfterCreated(), then it returns CEF-internal window handle which is the most outer window handle in this case. ### GetIdentifier | | | | --- | --- | | __Return__ | int | Returns the globally unique identifier for this browser. ### GetZoomLevel | | | | --- | --- | | __Return__ | float | Get the current zoom level. The default zoom level is 0.0. ### GoBack | | | | --- | --- | | __Return__ | void | Navigate backwards. ### GoForward | | | | --- | --- | | __Return__ | void | Navigate forwards. ### HandleKeyEventAfterTextInputClient | Parameter | Type | | --- | --- | | keyEvent | eventHandle | | __Return__ | void | Available only in CEF 3. Not yet implemented. Performs any additional actions after NSTextInputClient handles the event. ### HandleKeyEventBeforeTextInputClient | | | | --- | --- | | __Return__ | void | Available only in CEF 3. Not yet implemented. Handles a keyDown event prior to passing it through the NSTextInputClient machinery. ### HasDocument | | | | --- | --- | | __Return__ | bool | Returns true if a document has been loaded in the browser. ### IsFullscreen | | | | --- | --- | | __Return__ | void | Whether in fullscreen mode, see ToggleFullscreen(). This function is Windows-only. ### IsLoading | | | | --- | --- | | __Return__ | bool | Available only in CEF 3. Not yet implemented. Returns true if the browser is currently loading. ### IsMouseCursorChangeDisabled | | | | --- | --- | | __Return__ | bool | Available only in CEF 3. Returns true if mouse cursor change is disabled. ### IsPopup | | | | --- | --- | | __Return__ | bool | Returns true if the window is a popup window. ### IsWindowRenderingDisabled | | | | --- | --- | | __Return__ | bool | Returns true if window rendering is disabled. ### LoadUrl | Parameter | Type | | --- | --- | | url | string | | __Return__ | void | Load url in the main frame. ### Navigate | Parameter | Type | | --- | --- | | url | string | | __Return__ | void | This is an alias for the `LoadUrl` method. ### NotifyMoveOrResizeStarted | | | | --- | --- | | __Return__ | void | Notify the browser of move or resize events so that popup widgets (e.g. `