-
-
Notifications
You must be signed in to change notification settings - Fork 36
Browser Lifecycle
NeekoGta edited this page Jun 17, 2026
·
1 revision
A browser is owned per player and identified by a script-defined browserid.
not created
-> create request sent
-> created
-> visible / hidden
-> navigated / reloaded
-> destroyedOverlay2D:
CEF_CreateBrowser(playerid, browserid, "http://cef/demo/index.html", false);World2D:
CEF_CreateWorld2DBrowser(playerid, browserid, "http://cef/demo/world2d.html", x, y, z, 512.0, 256.0);WorldObject3D:
CEF_CreateWorldBrowser(playerid, browserid, "http://cef/demo/world3d.html", "CJ_TV_SCREEN", 512.0, 256.0);
CEF_AttachBrowserToObject(playerid, browserid, objectid);public OnCefBrowserCreated(playerid, browserid, bool:success, E_CEF_CREATE_STATUS:code, const reason[])
{
printf("CEF browser created: player=%d browser=%d success=%d code=%d reason=%s", playerid, browserid, success, _:code, reason);
return 1;
}CEF_SetBrowserVisible(playerid, browserid, false);
CEF_SetBrowserVisible(playerid, browserid, true);Use hide/show when the browser should remain alive and keep its JS state.
CEF_ReloadBrowser(playerid, browserid, true);Use reload when the same URL should refresh.
CEF_LoadUrl(playerid, browserid, "http://cef/demo/other.html");Use CEF_LoadUrl when an existing browser should load a different page without destroying/recreating it.
CEF_DestroyBrowser(playerid, browserid);Destroy browsers that are no longer needed.
Recommended cleanup:
public OnPlayerDisconnect(playerid, reason)
{
CEF_DestroyBrowser(playerid, 1000);
CEF_DestroyBrowser(playerid, 2000);
CEF_DestroyBrowser(playerid, 3000);
return 1;
}- IDs are per player.
- Reusing the same ID before the old browser is fully destroyed can fail.
- Keep constants for important browsers.
Example:
#define CEF_BROWSER_LOGIN 1000
#define CEF_BROWSER_PHONE 1100
#define CEF_BROWSER_TV 3000When testing destroy/recreate, use a short timer:
CEF_DestroyBrowser(playerid, browserid);
SetTimerEx("RecreateBrowser", 500, false, "i", playerid);If you see ID already in use, increase the delay.
CEF Plugin — Client & Server for SA-MP / open.mp
Issues & PRs welcome.