Отладив его, я обнаружил, что это может быть связано с проблемами потоков. Когда собирается открыть новый браузер, OnAddNewContentsMessage и OnDidCreateScriptContextMessage запускаются одновременно в другом потоке. Если я позволю сначала возобновить поток OnAddNewContentsMessage, который позже создаст новый браузер, OnDidCreateScriptContextMessage будет работать правильно, будучи перехваченным новым браузером и создаст поток jsContext, но если я позволю сначала возобновить поток OnDidCreateScriptContextMessage, он не будет перехвачен браузером и не будет jsContext будет создан. Работа в режиме без отладки работает так же, как последний. Наличие нулевого jsContext приведет к тому, что большинство операций над JsValue вызовет исключение NullPointerException.
Эта проблема возникает только в браузерах, открытых другим браузером с помощью window.open (url). Работает нормально, если я обновляю браузер или сразу захожу на URL (набираю или вставляю URL в адресную строку).
================ обновленный ============
Это также работает нормально, если новый браузер открывается по ссылке href. В этом случае OnAddNewContentsMessage и OnDidCreateScriptContextMessage запускаются последовательно