These three methods are still quite bad but until WebView::load is moved to C++ no good way to cleanup these.

One idea that I've been baking is that newTabData would be kept inside event loop till new web page created and only after that we'd trigger load for it. WebView::load would need to be turned upside down (first activate the page and then do other operations)