For datatypes that live in the UI thread, ModelTypeController should directly talk to the delegate without the need to PostTask() to the very same UI thread.
This is simpler conceptually, avoids an unnecessary intermediate state (which required RunUntilIdle() in some tests).
Once a proxy delegate object is factored out (blocking bug), the solution here would be to introduce another delegate that:
1. Forwards all the calls to the real delegate (which the controller cannot uniquely own).
2. Does not need a delegate provider and can directly take a raw pointer to the real delegate.
Comment 1 by mastiz@chromium.org
, Jul 26