Internal webview

This should lessen the pain described in #3886