Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); cefpython/api/cefpython.md at master · Toroto006/cefpython · GitHub
Skip to content

Latest commit

History

History
313 lines (213 loc) · 10.3 KB

File metadata and controls

313 lines (213 loc) · 10.3 KB

API categories | API index

cefpython

Functions in the cefpython module.

Table of contents:

Functions

CreateBrowser

Not yet implemented - currently this method just calls CreateBrowserSync. In upstream CEF this method creates browser asynchronously. Currently CEF Python depends on browser being created synchronously in a few parts of code.

CreateBrowserSync

ParameterType
window_infoWindowInfo
settingsBrowserSettings
urlstring
window_titlestring
ReturnBrowser

All parameters are optional.

This function can only be called on the UI thread.

The "window_title" parameter will be used only when parent window provided in window_info was set to 0. This is for use with hello_world.py and tutorial.py examples which don't use any third party GUI framework for creation of top-level window.

After the call to CreateBrowserSync() the page is not yet loaded, if you want your next lines of code to do some stuff on the webpage you will have to implement LoadHandler.OnLoadingStateChange callback.

ExceptHook

ParameterType
exc_type-
exc_value-
exc_trace-
Returnvoid

Global except hook to exit app cleanly on error. CEF has a multiprocess architecture and when exiting you need to close all processes (main Browser process, Renderer process, GPU process, etc.) by calling Shutdown(). This hook does the following: in case of exception write it to the "error.log" file, display it to the console, shutdown CEF and exit application immediately by ignoring "finally" (_exit()).

See also Tutorial: Handling Python exceptions.

GetAppSetting

ParameterType
keystring
Returnobject

Returns ApplicationSettings option that was passed to Initialize(). Returns None if key is not found.

GetAppPath

file_ (optional)string
Returnstring

Get path to where application resides.

GetBrowserByWindowHandle

ParameterType
windowHandlelong
Returnvoid

Get browser by outer or inner window handle. An outer window handle is the one that was passed to CreateBrowserSync(). An inner window handle is a CEF internal window handle.

GetCommandLineSwitch

ParameterType
keystring
Returnobject

Returns the CommandLineSwitches switch that was passed to Initialize(). Returns None if key is not found.

GetGlobalClientCallback

ParameterType
namestring
Returnobject

Returns a global client callback that was set using SetGlobalClientCallback(). Returns None if callback was not set.

GetModuleDirectory

Returnstring

Get the cefpython module directory. This method is useful to get full path to CEF binaries. This is required when setting ApplicationSettings options like: 'browser_subprocess_path', 'resources_dir_pat' and 'locales_dir_path'.

GetVersion

Returndict

Return CEF Python and CEF versions dictionary with keys:

  • version
  • chrome_version
  • cef_version
  • cef_api_hash_platform
  • cef_api_hash_universal
  • cef_commit_hash
  • cef_commit_number

Initialize

ParameterType
settings (optional)ApplicationSettings
switches (optional)CommandLineSwitches
Returnbool

This function should be called on the main application thread (UI thread) to initialize CEF when the application is started. A call to Initialize() must have a corresponding call to Shutdown() so that CEF exits cleanly. Otherwise when application closes data (eg. storage, cookies) might not be saved to disk or the process might freeze (experienced on Windows XP).

IsThread

ParameterType
threadIDint
Returnbool

Returns true if called on the specified thread.

CEF maintains multiple internal threads that are used for handling different types of tasks. The UI thread creates the browser window and is used for all interaction with the webkit rendering engine and V8 Javascript engine. The UI thread will be the same as the main application thread if CefInitialize() is called with an ApplicationSettings 'multi_threaded_message_loop' option set to false. The IO thread is used for handling schema and network requests. The FILE thread is used for the application cache and other miscellaneous activities.

See PostTask() for a list of threads.

MessageLoop

Returnvoid

Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread (UI thread) and only if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system.

See also MessageLoopWork().

MessageLoopWork

Returnvoid

Call this function in a periodic timer (eg. 10ms).

Description from upstream CEF:

Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block.

PostTask

ParameterType
threadint
funcobject
[args..]mixed
Returnvoid

Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Only Browser process threads are allowed.

An example usage is in the wxpython.py example on Windows, in implementation of LifespanHandler.OnBeforePopup().

List of threads in the Browser process:

  • cef.TID_UI: The main thread in the browser. This will be the same as the main application thread if cefpython.Initialize() is called with a ApplicationSettings.multi_threaded_message_loop value of false.
  • cef.TID_DB: Used to interact with the database.
  • cef.TID_FILE: Used to interact with the file system.
  • cef.TID_FILE_USER_BLOCKING: Used for file system operations that block user interactions. Responsiveness of this thread affects users.
  • cef.TID_PROCESS_LAUNCHER: Used to launch and terminate browser processes.
  • cef.TID_CACHE: Used to handle slow HTTP cache operations.
  • cef.TID_IO: Used to process IPC and network messages.

List of threads in the Renderer process:

  • cef.TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction.

PostDelayedTask

ParameterType
threadint
delay_msint
funcobject
[args..]mixed
Returnvoid

Post a task for delayed execution on the specified thread. This function behaves similarly to PostTask above, but with an additional |delay_ms| argument.

QuitMessageLoop

Returnvoid

Quit the CEF message loop that was started by calling cefpython.MessageLoop(). This function should only be called on the main application thread (UI thread) and only if cefpython.MessageLoop() was used.

SetGlobalClientCallback

ParameterType
namestring
callbackfunction
Returnvoid

Current CEF Python implementation is limited in handling callbacks that occur during browser creation, in such cases a callback set with Browser.SetClientCallback() or Browser.SetClientHandler() won't work, as this methods can be called only after browser was created. An example of such callback is LifespanHandler.OnAfterCreated().

Some client callbacks are not associated with any browser. In such case use this function instead of the SetClientCallback() and SetClientHandler() Browser methods. An example of such callback is OnCertificateError() in RequestHandler.

Example of using SetGlobalClientCallback() is provided in the wxpython.py example.

SetOsModalLoop

ParameterType
modalLoopbool
Returnvoid

Set to true before calling Windows APIs like 'TrackPopupMenu' that enter a modal message loop. Set to false after exiting the modal message loop.

Shutdown

Returnvoid

This function should be called on the main application thread (UI thread) to shut down CEF before the application exits.

You must call this function so that CEF shuts down cleanly. Remember also to delete all CEF browsers references for the browsers to shut down cleanly. For an example see the wxpython.py example MainFrame.OnClose().