That suggests that the argument of URLLoaderClientImpl should remain a SingleThreadTaskRunner, and we should pass nullptr when we want to run on a SequencedTaskRunner which isn't a SingleThreadTaskRunner. But that argument isn't only used to
bind an interface, it's also used to
post tasks. That means that I would need to add logic to get the SequencedTaskRunnerHandle to post tasks when the argument is nullptr (maybe by making
GetTaskRunnerToUseFromUserProvidedTaskRunner public).
What solution do you recommend?
- Make GetTaskRunnerToUseFromUserProvidedTaskRunner() public, so that any code can easily accept a specific SingleThreadTaskRunner, or run on SequencedTaskRunnerHandle otherwise.
- Allow a SequencedTaskRunner argument in InterfacePtr::Bind, making it trivial to write classes that can run both on a SingleThreadTaskRunner and a SequencedTaskRunner.
- ?
Thanks!