If there's a PageLoadDeferrer on the stack, we can't execute script, but need to delay execution. To allow for this, Call() should not require a return value, but take a callback that is invoked once the result is available.
Yuzhu, is this something you could do?
Per offline discussion, gin::Runner is currently only used by Mojo. So instead of fixing it, we could remove it after we finish switching to the new Mojo JS bindings.
There is still one last old Mojo JS bindings (i.e., usage of gin by Mojo) left: an external dependency caused by the mojoPrivate extension API.
I am planning to work on it. Will need to chat with the users of this API. If I could create some adapter preserving the behavior of that API but backed by the new JS bindings, it would be easier.
It is being actively worked on.
At the moment, old mojo JS bindings is only exposed to blessed extension context. And only the private extension API mojoPrivate uses it. This API is used by the media router extension living in google3. There is a CL under review to remove that: https://chromium-review.googlesource.com/c/chromium/src/+/783645
I don't have access to 629431. But if it is about normal web pages, then it shouldn't be a concern.
Comment 1 by yzshen@chromium.org
, May 3 2017