diff --git a/include/wx/osx/webview_webkit.h b/include/wx/osx/webview_webkit.h index 3d95825b73..2166966cc5 100644 --- a/include/wx/osx/webview_webkit.h +++ b/include/wx/osx/webview_webkit.h @@ -71,6 +71,9 @@ public: virtual bool IsBusy() const wxOVERRIDE; + virtual bool IsAccessToDevToolsEnabled() const wxOVERRIDE; + virtual void EnableAccessToDevTools(bool enable = true) wxOVERRIDE; + //History functions virtual void ClearHistory() wxOVERRIDE; virtual void EnableHistory(bool enable = true) wxOVERRIDE; diff --git a/src/osx/webview_webkit.mm b/src/osx/webview_webkit.mm index 262409ad05..3f304310bf 100644 --- a/src/osx/webview_webkit.mm +++ b/src/osx/webview_webkit.mm @@ -308,6 +308,26 @@ bool wxWebViewWebKit::IsEditable() const return false; } +bool wxWebViewWebKit::IsAccessToDevToolsEnabled() const +{ + // WebKit API available since macOS 10.11 and iOS 9.0 + WKPreferences* prefs = m_webView.configuration.preferences; + SEL devToolsSelector = @selector(_developerExtrasEnabled); + id val = nil; + if ([prefs respondsToSelector:devToolsSelector]) + val = [prefs performSelector:devToolsSelector]; + return (val != nil); +} + +void wxWebViewWebKit::EnableAccessToDevTools(bool enable) +{ + // WebKit API available since macOS 10.11 and iOS 9.0 + WKPreferences* prefs = m_webView.configuration.preferences; + SEL devToolsSelector = @selector(_setDeveloperExtrasEnabled:); + if ([prefs respondsToSelector:devToolsSelector]) + [prefs performSelector:devToolsSelector withObject:(id)enable]; +} + void wxWebViewWebKit::SetZoomType(wxWebViewZoomType zoomType) { // there is only one supported zoom type at the moment so this setter