This has been a bit tricky. I'm having issues with the lifecycle of the task runner. BrowserThread::GetMessageLoopProxyForThread() gives a refcounted object.