Not boolean related -- present tense in Qt contains a chance of mutation (QMatrix::reset()) and pass tense doesn't modify (QMatrix::inverted() an inverted copy). However, this is a bit tricky to map to QML properties. At this movement new tab is requested but result variable is not yet used. 

In current, BrowserPage we don't have clean way to pass this information as an argument to QmlMozView's load and/or add extra load functions as functions related to loading. The reason for this is that there are functions declared in BrowserPage while they should be functions of QmlMozView. In newWebView branch, functions related to loading / tab handling that are currently declared inside BrowserPage have been moved inside WebView. So, there we can add something like loadTab(url, title) / newTab(url, title). I'll definitely want to fix this but imo this is not correct context.

Currently sequence looks like...

BrowserPage::newTab -> BrowserPage::load -> QmlMozView::load

As some critical parts are now in BrowserPage::load and those should belong to WebView load handling. Thus, it'd easily add a loop when doing a round-trip via QmlMozView function as we eventually need to go through QmlMozView::load before tab can be added (in this proposed approach).

Alternative solution would be that we'd write input url to db (as done now), figure out redirected end result url (currently we're not interested about this), map it to the input url, and once redirected url is know we'd remove original entered url from database. Keep in mind that we have no clean way now to distinguish in QmlMozView level if redirect was caused by link clicking or by user entering the address. We would need add more state information to handle that. This approach would make download handling that was initiated by user clicking links more difficult. QmlMozView does not emit anymore urlChanged when given url resulted a download request (embedui:download).

Of topic,
Ariya wrote recently good blog post about badly named JS function:
http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html