[PWA] Remove ExternallyManagedAppInstallTask dependencies [2/N]
This CL is the 2nd step in the chain to remove any dependency on
ExternallyManagedAppInstallTask. This is done on production by updating
the struct that stored an instance of the task to only store an instance
of the ExternalInstallOption and the corresponding callback. When an
installation needs to happen, the WebAppCommandScheduler is used to
invoke an ExternalAppResolutionCommand directly with the callback, thus
completely bypassing the requirement of an intermediary task like state.
This CL also updates existing documentation that mentions the
ExternallyManagedAppInstallTask to instead refer to the command that is
called.
A future CL will remove all traces of the task code altogether.
Change-Id: Iaf88ae4c9c709a0a1ee72c63163f0f4bdd3dd313
Bug: 328431086
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6357998
Commit-Queue: Dibyajyoti Pal <[email protected]>
Reviewed-by: Daniel Murphy <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1437102}
diff --git a/docs/webapps/installation_pipeline.md b/docs/webapps/installation_pipeline.md
index 7b2e718c..3c595bd0 100644
--- a/docs/webapps/installation_pipeline.md
+++ b/docs/webapps/installation_pipeline.md
@@ -74,7 +74,8 @@
1. A call to [`ExternallyManagedAppProvider::SynchronizeInstalledApps`][16]
1. Finding all apps that need to be uninstalled and uninstalling them, find all apps that need to be installed and:
-1. Queue an `ExternallyManagedAppInstallTask` to install each app sequentially.
+1. Enqueue an `ExternalAppResolutionCommand` for each app to start resolving what the final behavior
+should be.
1. Each task loads the url for the app.
1. If the url is successfully loaded, then use [`ExternallyManagedInstallCommand`][14], and continue installation on the normal pipeline (described above, and [flowchart][17] above).
1. If the url fails to fully load (usually a redirect if the user needs to sign in or corp credentials are not installed), and the external app manager specified a [placeholder app was required][18] then: