One other thing that will need fixing - changing the zoom factor in one webview will also set the zoom in other webviews that are displaying a site from the same host, but the current implementation won't fire OxideQQuickWebView::zoomFactorChanged() in those other webviews.
content::HostZoomMap has a mechanism for adding zoom change callbacks which can probably help here. As Oxide only ever has a single storage partition per BrowserContext, the HostZoomMap associated with a WebContents won't ever change during its lifetime, which probably makes this a bit easier.
Thanks, I've added a few comments inline.
One other thing that will need fixing - changing the zoom factor in one webview will also set the zoom in other webviews that are displaying a site from the same host, but the current implementation won't fire OxideQQuickWebV iew::zoomFactor Changed( ) in those other webviews.
content: :HostZoomMap has a mechanism for adding zoom change callbacks which can probably help here. As Oxide only ever has a single storage partition per BrowserContext, the HostZoomMap associated with a WebContents won't ever change during its lifetime, which probably makes this a bit easier.