We need a root entity (WebAppRegistrar) which will be able: - to add/remove new apps. - to iterate over all the registered apps. - to iterate over various subsets of all registered apps (shortcuts, for example)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c9025c869223701c37c2afb97ab2d5c299cb6381 commit c9025c869223701c37c2afb97ab2d5c299cb6381 Author: Alexey Baskakov <loyso@chromium.org> Date: Tue Oct 09 04:33:58 2018 WebApp: Establish web_app::AppId. It improves code searchability. Bug: 891172 Change-Id: I89305fbcd2e03513e9411e5ced2e7187a3a6a48a Reviewed-on: https://chromium-review.googlesource.com/c/1270398 Reviewed-by: Ben Wells <benwells@chromium.org> Reviewed-by: Dominick Ng <dominickn@chromium.org> Commit-Queue: Alexey Baskakov <loyso@chromium.org> Cr-Commit-Position: refs/heads/master@{#597798} [modify] https://crrev.com/c9025c869223701c37c2afb97ab2d5c299cb6381/chrome/browser/extensions/convert_web_app.cc [modify] https://crrev.com/c9025c869223701c37c2afb97ab2d5c299cb6381/chrome/browser/web_applications/components/web_app_helpers.cc [modify] https://crrev.com/c9025c869223701c37c2afb97ab2d5c299cb6381/chrome/browser/web_applications/components/web_app_helpers.h [modify] https://crrev.com/c9025c869223701c37c2afb97ab2d5c299cb6381/chrome/browser/web_applications/components/web_app_helpers_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21 commit fd3894ec9d6adfab26f5e4aa895f2902d8e02d21 Author: Alexey Baskakov <loyso@chromium.org> Date: Tue Oct 16 06:09:58 2018 WebApp: Introduce WebApp, WebAppRegistrar and InstallManager entities. Introduce DesktopPWAsWithoutExtensions command line switch. A WebApp represents single web app. WebApp objects are owned by WebAppRegistrar. WebAppRegistrar is a root entity which is able to add/remove new apps. Later WebAppRegistrar will be able: - to iterate over all the registered apps. - to iterate over various subsets of all registered apps (shortcut apps) - to survive the browser (and ChromeOS) relaunch (persistence) InstallManager is an abstract manager to plumb 3-dot menu user installation. We will evolve its WebAppInstallManager implementation into comprehensive install manager later. --enable-features=DesktopPWAsWithoutExtensions will enable off-extensions implementation for Desktop PWAs. Bug: 891172, 871116 Change-Id: Iebcbd93cf08eec0f11c7c22dce57ded81a2a2e94 Reviewed-on: https://chromium-review.googlesource.com/c/1275468 Reviewed-by: Ben Wells <benwells@chromium.org> Reviewed-by: Trent Apted <tapted@chromium.org> Commit-Queue: Alexey Baskakov <loyso@chromium.org> Cr-Commit-Position: refs/heads/master@{#599887} [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/BUILD.gn [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/chromeos/BUILD.gn [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/ui/browser_commands.cc [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/BUILD.gn [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/bookmark_apps/BUILD.gn [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/bookmark_apps/bookmark_app_install_manager.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/bookmark_apps/bookmark_app_install_manager.h [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/components/BUILD.gn [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/components/install_manager.h [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/components/install_result_code.h [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/extensions/BUILD.gn [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/test/web_app_test.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/test/web_app_test.h [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app.h [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_install_manager.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_install_manager.h [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_install_manager_unittest.cc [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_provider.cc [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_provider.h [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_registrar.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_registrar.h [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_registrar_unittest.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_utils.cc [add] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/browser/web_applications/web_app_utils.h [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/common/chrome_features.cc [modify] https://crrev.com/fd3894ec9d6adfab26f5e4aa895f2902d8e02d21/chrome/common/chrome_features.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/92b8ceffcac0c20def2c547f1dec62f1bd2d22e2 commit 92b8ceffcac0c20def2c547f1dec62f1bd2d22e2 Author: Alexey Baskakov <loyso@chromium.org> Date: Tue Oct 23 05:13:03 2018 WebApp: Support iteration over all apps in WebAppRegistrar. Expose Registry as read-only collection. Users can write: for (auto& kv : registrar->registry()) { const WebApp* web_app = kv.second.get(); ... } Add IsEmpty and UnregisterAll methods. Bug: 891172 Change-Id: I17ad8a5b569eeffb614adeec5575dc6804ce5251 Reviewed-on: https://chromium-review.googlesource.com/c/1295611 Commit-Queue: Alexey Baskakov <loyso@chromium.org> Reviewed-by: Ben Wells <benwells@chromium.org> Cr-Commit-Position: refs/heads/master@{#601855} [modify] https://crrev.com/92b8ceffcac0c20def2c547f1dec62f1bd2d22e2/chrome/browser/web_applications/web_app_registrar.cc [modify] https://crrev.com/92b8ceffcac0c20def2c547f1dec62f1bd2d22e2/chrome/browser/web_applications/web_app_registrar.h [modify] https://crrev.com/92b8ceffcac0c20def2c547f1dec62f1bd2d22e2/chrome/browser/web_applications/web_app_registrar_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/455a04d90c892eb8b0daa14c37cf23cdb268c679 commit 455a04d90c892eb8b0daa14c37cf23cdb268c679 Author: Alexey Baskakov <loyso@chromium.org> Date: Wed Oct 24 07:15:01 2018 WebApp: InstallManager::InstallWebApp should report result via callback. This unifies the API for both old and new implementations of InstallManager interface. Bug: 891172 Change-Id: I95086c897c4fe3d6f58bf8e8e88050b0e5692118 Reviewed-on: https://chromium-review.googlesource.com/c/1295616 Commit-Queue: Alexey Baskakov <loyso@chromium.org> Reviewed-by: Ben Wells <benwells@chromium.org> Cr-Commit-Position: refs/heads/master@{#602268} [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/bookmark_apps/bookmark_app_install_manager.cc [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/bookmark_apps/bookmark_app_install_manager.h [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/components/install_manager.h [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/web_app_install_manager.cc [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/web_app_install_manager.h [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/web_app_install_manager_unittest.cc [modify] https://crrev.com/455a04d90c892eb8b0daa14c37cf23cdb268c679/chrome/browser/web_applications/web_app_provider.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/393b2aafa877d4bc069b2cc3cf5d934b2fed8468 commit 393b2aafa877d4bc069b2cc3cf5d934b2fed8468 Author: Alexey Baskakov <loyso@chromium.org> Date: Thu Oct 25 06:42:31 2018 WebApp: Implement ostream operator for WebApp for logging and debug purposes. Bug: 891172 Change-Id: I4f8677df123b2b87bdfedddc612c70e3b320e708 Reviewed-on: https://chromium-review.googlesource.com/c/1298521 Commit-Queue: Alexey Baskakov <loyso@chromium.org> Reviewed-by: Ben Wells <benwells@chromium.org> Cr-Commit-Position: refs/heads/master@{#602624} [modify] https://crrev.com/393b2aafa877d4bc069b2cc3cf5d934b2fed8468/chrome/browser/web_applications/web_app.cc [modify] https://crrev.com/393b2aafa877d4bc069b2cc3cf5d934b2fed8468/chrome/browser/web_applications/web_app.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/79b0690060059487af3be954dec8c27b14e4d780 commit 79b0690060059487af3be954dec8c27b14e4d780 Author: Alexey Baskakov <loyso@chromium.org> Date: Thu Nov 08 05:30:03 2018 WebApp: Use GURL for WebApp::launch_url data member. To ensure URL correctness. Bug: 891172 Change-Id: If2fad77d59a3675f30c168e55c376a5c53d43262 Reviewed-on: https://chromium-review.googlesource.com/c/1325573 Commit-Queue: Alexey Baskakov <loyso@chromium.org> Reviewed-by: Alan Cutter <alancutter@chromium.org> Cr-Commit-Position: refs/heads/master@{#606356} [modify] https://crrev.com/79b0690060059487af3be954dec8c27b14e4d780/chrome/browser/web_applications/web_app.cc [modify] https://crrev.com/79b0690060059487af3be954dec8c27b14e4d780/chrome/browser/web_applications/web_app.h [modify] https://crrev.com/79b0690060059487af3be954dec8c27b14e4d780/chrome/browser/web_applications/web_app_database.cc [modify] https://crrev.com/79b0690060059487af3be954dec8c27b14e4d780/chrome/browser/web_applications/web_app_database_unittest.cc [modify] https://crrev.com/79b0690060059487af3be954dec8c27b14e4d780/chrome/browser/web_applications/web_app_install_manager.cc [modify] https://crrev.com/79b0690060059487af3be954dec8c27b14e4d780/chrome/browser/web_applications/web_app_registrar_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4768f623aa44c968f24ec0666b12ddf706f83d7d commit 4768f623aa44c968f24ec0666b12ddf706f83d7d Author: Alexey Baskakov <loyso@chromium.org> Date: Thu Nov 08 09:26:46 2018 WebApp: Add GURL scope and theme_color WebApp data members. We parse them from manifest during installability check. Bug: 891172 Change-Id: I891dd48f29e6f43386c028a14f92c08db630da5e Reviewed-on: https://chromium-review.googlesource.com/c/1325580 Commit-Queue: Alexey Baskakov <loyso@chromium.org> Reviewed-by: Alan Cutter <alancutter@chromium.org> Cr-Commit-Position: refs/heads/master@{#606395} [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/proto/web_app.proto [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app.cc [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app.h [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app_database.cc [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app_database_unittest.cc [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app_install_manager.cc [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app_install_manager_unittest.cc [modify] https://crrev.com/4768f623aa44c968f24ec0666b12ddf706f83d7d/chrome/browser/web_applications/web_app_registrar_unittest.cc
Comment 1 by loyso@google.com
, Oct 2