Comment 0 for bug 1410753

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Currently the browser provides user agent string overrides using WebContextDelegateWorker (intercepting onGetUserAgentOverride for accesses to navigator.userAgent and onBeforeSendHeaders for modifying the User-Agent header). However, it's only possible to access these and resolve the user agent string on the IO thread.

There is a requirement for being able to resolve the URL-specific user agent string when not on the IO thread (eg, mediahub), and this is not possible with the current design. As the browser's overrides appear to be a list of simple patterns (using "*" and "?"), there's no reason why we couldn't expose a new API (WebContext.userAgentOverrides) to allow the browser to specify the set of overrides. We would then do the matching inside Oxide on whatever thread requires it, using an API that is thread-safe internally