Implement AddUserScript() for GTK

This commit is contained in:
Tobias Taschner
2021-02-27 10:59:23 +01:00
parent 4d78437a77
commit c9606d7b5a
2 changed files with 26 additions and 0 deletions

View File

@@ -119,6 +119,9 @@ public:
virtual bool RunScript(const wxString& javascript, wxString* output = NULL) const wxOVERRIDE;
virtual bool AddScriptMessageHandler(const wxString& name) wxOVERRIDE;
virtual bool RemoveScriptMessageHandler(const wxString& name) wxOVERRIDE;
virtual bool AddUserScript(const wxString& javascript,
wxWebViewUserScriptInjectionTime injectionTime = wxWEBVIEW_INJECT_AT_DOCUMENT_START) wxOVERRIDE;
virtual void RemoveAllUserScripts() wxOVERRIDE;
//Virtual Filesystem Support
virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler) wxOVERRIDE;

View File

@@ -1317,6 +1317,29 @@ bool wxWebViewWebKit::RemoveScriptMessageHandler(const wxString& name)
return true;
}
bool wxWebViewWebKit::AddUserScript(const wxString& javascript,
wxWebViewUserScriptInjectionTime injectionTime)
{
WebKitUserScript* userScript = webkit_user_script_new(
javascript.utf8_str(),
WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
(injectionTime == wxWEBVIEW_INJECT_AT_DOCUMENT_START) ?
WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START : WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END,
NULL, NULL
);
WebKitUserContentManager *ucm = webkit_web_view_get_user_content_manager(m_web_view);
webkit_user_content_manager_add_script(ucm, userScript);
webkit_user_script_unref(userScript);
return true;
}
void wxWebViewWebKit::RemoveAllUserScripts()
{
WebKitUserContentManager *ucm = webkit_web_view_get_user_content_manager(m_web_view);
webkit_user_content_manager_remove_all_scripts(ucm);
}
void wxWebViewWebKit::RegisterHandler(wxSharedPtr<wxWebViewHandler> handler)
{
m_handlerList.push_back(handler);