fix!: Make CoreAndroid plugin instantiate on load #1605
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I don't anticipate breaking changes from this change, however it is a difference in behaviour since CoreAndroid won't be lazily loaded, therefore I've marked this commit has a breaking change.
Platforms affected
Android / CoreAndroid plugin
Motivation and Context
CoreAndroid was lazily loaded via
getPlugin
call. This can create a race condition in some situations, particularlywith a new feature in the works: #1574 where onRenderProcessGone may be invoked before anything gets a chance to call
getPlugin
forCoreAndroid
.In general, because this is Core plugin, I feel like it should always be loaded in, not lazily loaded in.
Description
Inside
PluginManager
, I added a new public API:addService(String serviceName, String className, bool onload)
.The
addService(String serviceName, String className)
implementation has been moved to the new public API.CordovaWebviewImpl
will now add the CoreAndroid service withonload
set to true.Testing
Ran
npm test
on linux.Also manual test while testing the onRenderProcessGone PR.
Checklist
(platform)
if this change only applies to one platform (e.g.(android)
)