diff --git a/include/wx/gtk/webview_webkit.h b/include/wx/gtk/webview_webkit.h index 0b9a1939f8..75a22e5343 100644 --- a/include/wx/gtk/webview_webkit.h +++ b/include/wx/gtk/webview_webkit.h @@ -81,6 +81,7 @@ public: #if wxUSE_WEBVIEW_WEBKIT2 virtual void EnableAccessToDevTools(bool enable = true) wxOVERRIDE; virtual bool IsAccessToDevToolsEnabled() const wxOVERRIDE; + virtual bool SetUserAgent(const wxString& userAgent) wxOVERRIDE; #endif void SetZoomType(wxWebViewZoomType) wxOVERRIDE; @@ -176,6 +177,7 @@ private: #endif WebKitWebView *m_web_view; + wxString m_customUserAgent; int m_historyLimit; wxVector > m_handlerList; diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp index 4ae910e5af..2bddbe8de8 100644 --- a/src/gtk/webview_webkit2.cpp +++ b/src/gtk/webview_webkit2.cpp @@ -651,6 +651,9 @@ bool wxWebViewWebKit::Create(wxWindow *parent, GTKCreateScrolledWindowWith(GTK_WIDGET(m_web_view)); g_object_ref(m_widget); + if (!m_customUserAgent.empty()) + SetUserAgent(m_customUserAgent); + g_signal_connect(m_web_view, "decide-policy", G_CALLBACK(wxgtk_webview_webkit_decide_policy), this); @@ -756,6 +759,18 @@ bool wxWebViewWebKit::IsAccessToDevToolsEnabled() const return webkit_settings_get_enable_developer_extras(settings); } +bool wxWebViewWebKit::SetUserAgent(const wxString& userAgent) +{ + if (m_web_view) + { + WebKitSettings* settings = webkit_web_view_get_settings(m_web_view); + webkit_settings_set_user_agent(settings, userAgent.utf8_str()); + } + else + m_customUserAgent = userAgent; + return true; +} + void wxWebViewWebKit::Stop() { webkit_web_view_stop_loading(m_web_view);