Android: Refactor Module Installer for Testability
The intrinsic dependencies encountered along the way made it difficult
(less effective) to break up this CL into multiple smaller CLs
(apologies to the reviewers in advance).
To simplify its understanding, please refer to the following doc:
https://docs.google.com/document/d/1ClZglFQroV53zSYEGIZ7yca8KIsPHGBmzMCbtreu5lg
The following are the major points to review:
- refactoring of the infra into builder, installer, logger, observer, util
- new design (IoC driven) for installers to enable for easy testability
- new design for emitted modules (cross-package communication)
Out-of-scope (following CLs):
- removal of bytecode processing for third-party activities (no longer needed)
- move code from ModuleInstallerConfig.java into BuildConfig.java
- unit tests for the remaining module_installer classes
Testing: this change was verified with vr, ar, autofill_assistant, dev_ui,
and test_dummy modules. It was tested with both -m and -f command line args.
Bug: 1005802
Change-Id: Icf357c06c4b71a96ed9fa0584f6322d6dc6143d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1813520
Reviewed-by: Ilya Sherman <[email protected]>
Reviewed-by: Tibor Goldschwendt <[email protected]>
Reviewed-by: Andrew Grieve <[email protected]>
Reviewed-by: Peter Wen <[email protected]>
Commit-Queue: Fred Mello <[email protected]>
Cr-Commit-Position: refs/heads/master@{#702165}
diff --git a/docs/android_dynamic_feature_modules.md b/docs/android_dynamic_feature_modules.md
index dc1879e..19a0633a 100644
--- a/docs/android_dynamic_feature_modules.md
+++ b/docs/android_dynamic_feature_modules.md
@@ -178,7 +178,7 @@
```java
package org.chromium.chrome.features.foo;
-import org.chromium.components.module_installer.ModuleInterface;
+import org.chromium.components.module_installer.builder.ModuleInterface;
/** Interface to call into Foo feature. */
@ModuleInterface(module = "foo", impl = "org.chromium.chrome.features.FooImpl")