Currently, SigninManagerBase objects sometimes need to be downcast to SigninManager objects on non-ChromeOS platforms. We have added functionality to ensure that this downcast is always safe ( crbug.com/882441 ); however, it would still be much better to not require the downcasts at all. Once SigninManager and SigninManagerBase are hidden behind IdentityManager, we should be able to redesign them to avoid the need for these downcasts (which at that point would presumably be only in IdentityManager and related test infrastructure).