extends Node @export var browser_name: String = "browser" @export var url: String = "http://192.168.1.2:5555/pfd" # ============================================================================== # Create a single browser named "browser_name" that is attached as child node to $CEF. # ============================================================================== func _ready(): # See API.md for more details. CEF Configuration is: # resource_path := {"artifacts", CEF_ARTIFACTS_FOLDER} # resource_path := {"exported_artifacts", application_real_path()} # {"incognito":false} # {"cache_path", resource_path / "cache"} # {"root_cache_path", resource_path / "cache"} # {"browser_subprocess_path", resource_path / SUBPROCESS_NAME } # {"log_file", resource_path / "debug.log"} # {log_severity", "warning"} # {"remote_debugging_port", 7777} # {"exception_stack_size", 5} # {"enable_media_stream", false} # # Configurate CEF. In incognito mode cache directories not used and in-memory # caches are used instead and no data is persisted to disk. # # artifacts: allows path such as "build" or "res://cef_artifacts/". Note that "res://" # will use ProjectSettings.globalize_path but exported projects don't support globalize_path: # https://docs.godotengine.org/en/3.5/classes/class_projectsettings.html#class-projectsettings-method-globalize-path if !$CEF.initialize({"incognito":true, "locale":"en-US"}): push_error($CEF.get_error()) get_tree().quit() return print("CEF version: " + $CEF.get_full_version()) # Wait one frame for the texture rect to get its size await get_tree().process_frame # See API.md for more details. Browser configuration is: # {"frame_rate", 30} # {"javascript", true} # {"javascript_close_windows", false} # {"javascript_access_clipboard", false} # {"javascript_dom_paste", false} # {"image_loading", true} # {"databases", true} # {"webgl", true} var browser = $CEF.create_browser(url, $SubViewport/TextureRect, { "frame_rate": 90, "javascript": true, }) browser.name = browser_name browser.connect("on_page_loaded", _on_page_loaded) browser.connect("on_page_failed_loading", _on_page_failed_loading) #browser.set_zoom_level(0.05) # Required for lidia static assets browser.enable_ad_block(false) # ============================================================================== # Callback when a page has ended to load: we print a message # ============================================================================== func _on_page_loaded(node): print(node.name + ": page " + node.get_url() + " loaded") # ============================================================================== # Callback when a page has ended to load with failure. # Display a load error message using a data: URI. # ============================================================================== func _on_page_failed_loading(err_code, err_msg, node): if err_code == -3: return push_error("The browser " + node.name + " failed loading " + \ node.get_url() + ": " + err_msg) pass