Android L and M require an app restart after installing a DFM. To avoid this use Play Core SDK’s SplitCompat to patch the class loader (see go/splitcompat).
Bumping to M71 as discussed.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aada02dfce485d6754e6e1a6b24d561cd164a50e commit aada02dfce485d6754e6e1a6b24d561cd164a50e Author: Tibor Goldschwendt <tiborg@chromium.org> Date: Fri Sep 21 15:27:10 2018 [ar] On-demand install AR module, add ModuleInstaller class The ModuleInstaller goes into the new component module_installer, which hosts code necessary to install dynamic feature modules. It is used by Chrome to install the AR module (and other modules in the future). See go/chromevr-dfm-design-proposal for more information. Bug: 863068, 862690 Change-Id: Ib7fb7451fbd9ce08cd57e96f923a81f7327a8ddb Reviewed-on: https://chromium-review.googlesource.com/1228308 Commit-Queue: Tibor Goldschwendt <tiborg@chromium.org> Reviewed-by: Cait Phillips <caitkp@chromium.org> Reviewed-by: Ted Choc <tedchoc@chromium.org> Reviewed-by: agrieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/master@{#593190} [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/android/BUILD.gn [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/android/java/DEPS [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreJavaUtils.java [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/android/java/strings/android_chrome_strings.grd [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/android/modules/ar/AndroidManifest.xml [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/browser/android/vr/arcore_device/arcore_device.cc [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/browser/android/vr/arcore_device/arcore_device.h [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/browser/android/vr/arcore_device/arcore_java_utils.cc [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/browser/android/vr/arcore_device/arcore_java_utils.h [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/browser/android/vr/arcore_device/arcore_shim.cc [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/chrome/browser/android/vr/arcore_device/arcore_shim.h [add] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/components/module_installer/OWNERS [add] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/components/module_installer/android/BUILD.gn [add] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/components/module_installer/android/java/src/org/chromium/components/module_installer/ModuleInstaller.java [modify] https://crrev.com/aada02dfce485d6754e6e1a6b24d561cd164a50e/tools/gritsettings/translation_expectations.pyl
Patching the class loader before accessing a DFM now. Seems to work, too, and we don't incur the start up cost.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d9002403e5a956fd161f0092b619bcfd7bb48435 commit d9002403e5a956fd161f0092b619bcfd7bb48435 Author: Tibor Goldschwendt <tiborg@chromium.org> Date: Tue Nov 20 22:55:54 2018 Revert "[ar] On-demand install AR module, add ModuleInstaller class" This reverts commit aada02dfce485d6754e6e1a6b24d561cd164a50e. Reason for revert: only needed for bundles but we don't build bundles for M72. Original change's description: > [ar] On-demand install AR module, add ModuleInstaller class > > The ModuleInstaller goes into the new component module_installer, which > hosts code necessary to install dynamic feature modules. It is used by > Chrome to install the AR module (and other modules in the future). See > go/chromevr-dfm-design-proposal for more information. > > Bug: 863068, 862690 > Change-Id: Ib7fb7451fbd9ce08cd57e96f923a81f7327a8ddb > Reviewed-on: https://chromium-review.googlesource.com/1228308 > Commit-Queue: Tibor Goldschwendt <tiborg@chromium.org> > Reviewed-by: Cait Phillips <caitkp@chromium.org> > Reviewed-by: Ted Choc <tedchoc@chromium.org> > Reviewed-by: agrieve <agrieve@chromium.org> > Cr-Commit-Position: refs/heads/master@{#593190} TBR=caitkp@chromium.org,tedchoc@chromium.org,agrieve@chromium.org Bug: 899574 Change-Id: Id3fbafdbdfdbd3d4058409dff9eccf51944ebc46 Reviewed-on: https://chromium-review.googlesource.com/c/1345243 Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#780} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034} [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/android/BUILD.gn [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/android/java/DEPS [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreJavaUtils.java [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/android/java/strings/android_chrome_strings.grd [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/android/modules/ar/AndroidManifest.xml [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/browser/android/vr/arcore_device/arcore_device.cc [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/browser/android/vr/arcore_device/arcore_device.h [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/browser/android/vr/arcore_device/arcore_java_utils.cc [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/browser/android/vr/arcore_device/arcore_java_utils.h [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/browser/android/vr/arcore_device/arcore_shim.cc [modify] https://crrev.com/d9002403e5a956fd161f0092b619bcfd7bb48435/chrome/browser/android/vr/arcore_device/arcore_shim.h [delete] https://crrev.com/396bfd307c865a4332529f1279ddc9ee23cac4f3/components/module_installer/OWNERS [delete] https://crrev.com/396bfd307c865a4332529f1279ddc9ee23cac4f3/components/module_installer/android/BUILD.gn [delete] https://crrev.com/396bfd307c865a4332529f1279ddc9ee23cac4f3/components/module_installer/android/java/src/org/chromium/components/module_installer/ModuleInstaller.java
Only reverted in M71. We don't ship bundles in M71 and save some binary size that way.
Comment 1 by tiborg@chromium.org
, Jul 12