Now that mozbrowserlocationchange provides canGoBack/canGoForward status, we can store the current state of those properties and don't have to spin the event loop while awaiting asynchronous calls to getCanGoBack/Forward.
Also, fix the "[object Object] in sample browser location bar" regression by getting the URL from mozbrowserlocationchange.detail.url now that detail is an object containing the URL (and canGoBack/canGoForward) rather than the URL itself.
Finally, disable Electron's wrapping of WebContents by NavigationController, because mozbrowserlocationchange doesn't provide the inPage and replaceEntry metadata that would be required for NavigationController to "compeletely do history control on user land" (as navigation-controller.js describes it).
Now that mozbrowserlocationchange provides canGoBack/canGoForward status, we can store the current state of those properties and don't have to spin the event loop while awaiting asynchronous calls to getCanGoBack/Forward.
Also, fix the "[object Object] in sample browser location bar" regression by getting the URL from mozbrowserlocationchange.detail.url now that detail is an object containing the URL (and canGoBack/canGoForward) rather than the URL itself.
Finally, disable Electron's wrapping of WebContents by NavigationController, because mozbrowserlocationchange doesn't provide the inPage and replaceEntry metadata that would be required for NavigationController to "compeletely do history control on user land" (as navigation-controller.js describes it).