I have a CEF C++ application that creates multiple browser instances with unique clients and request contexts. All of the cache path variables (CefBrowserSettings cache_path + root_cache_path and CefRequestContext cache_path) are set to empty string. The deviceIds returned by Javascript navigator.mediaDevices.enumerateDevices() persist across browser instances, clearing cookies and restarting the application. I'm quite confused as I thought empty cache paths meant "incognito" mode, meaning the deviceIds wouldn't be shared between browser instances. In addition, msdn docs for MediaDeviceInfo deviceId say the following "[deviceId] is reset when the user clears cookies. For private browsing, a different identifier is used that is not persisted across sessions", both of which seems to be contradicted by what I'm experiencing. Is chrome's implementation of MediaDeviceInfo that different from firefox? Am I missing something, for example not setting cache_path correctly to have incognito mode? How can I reset these deviceIds and/or avoid having them shared between browser instances?
I'm on ubuntu, CEF 117.0.0-master.2827+gcab4045+chromium-117.0.5938.0
Any help is much appreciated.