New issue
Advanced search Search tips

Issue 826982 link

Starred by 14 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Feature

Blocked on:
issue 853604



Sign in to add a comment

Create a Chrome OS apps registry

Project Member Reported by dominickn@chromium.org, Mar 29 2018

Issue description

Currently, there is significant boilerplate / copy-paste code required for an app on Chrome OS to be integrated into system UI, including:

 - shelf
 - launcher
 - intent picker
 - external protocol dialog
 - Files.app

There is also no consistent way to maintain system-wide settings for apps, such as:

 - default URL handlers (and persistence)
 - default protocol handlers (and persistence)
 - default file type/MIME handlers (and persistence)

And finally, each app platform requires some amount of synchronisation of these settings to maintain consistency, e.g. ensuring that default handlers are the same when navigating to a URL in Chrome browser and when tapping a link in an ARC++ app. For ARC++ in particular, much of this functionality is currently stored inside the container, requiring asynchronous querying to access and not being compatible with other app platforms.

We now have sufficient app platforms that there is a strong need to create a central app registry for Chrome OS to manage all of these properties. Eventually, this will simplify a lot of code that wants to know:

 - what apps are installed on the system, and what are their names/icons
 - launch an app
 - what app is preferred for this particular action

It is currently envisioned that there will be some amount of global state (e.g.default handlers), and then a separate sub-registry for each app platform which is responsible for synchronisation work with that app platform's implementation (e.g. the ARC++ container). In effect, the source of truth for apps will be the app registry; changes will be made to the app registry, and then passed down into the containers if necessary for consistency.

A design doc will be put together to capture these ideas, and circulated to the related teams for their input and feedback. Once the registry exists, code will slowly be migrated to use it over the existing approaches.
 
Blockedon: 853604
Cc: nigeltao@chromium.org
+cc nigeltao who will be taking this on shortly.
Components: Platform>Apps>Foundation
Design doc: go/app-service-design-doc
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c

commit 2d1e7d102ae50dbe5f2e36e76c3c1c519478891c
Author: Dominick Ng <dominickn@chromium.org>
Date: Wed Jul 18 07:24:14 2018

Create a skeleton App Service and App Registry.

This CL creates the App Service as a in-process per-profile service, and
attaches the App Registry to it.

App Service is currently located in chrome/browser as many of its direct
dependencies (which are not yet connected to the service) live there.
Over time, we will refactor the dependencies such that:

1. data which can be made independent of chrome/browser is moved within
   the App Service
2. components which rely on that data access it asynchronously via the
   App Service

This will allow us to move the App Service to chrome/services in the
future.

BUG=826982

Change-Id: Ia7608fbb8c8b235d2b3e69ffa447963b32f2d5f0
Reviewed-on: https://chromium-review.googlesource.com/1127513
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575968}
[modify] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/app/BUILD.gn
[modify] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/BUILD.gn
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/OWNERS
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/README.md
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/BUILD.gn
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/OWNERS
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/app_registry/app_registry.cc
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/app_registry/app_registry.h
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/app_registry/app_registry_unittest.cc
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/app_service.cc
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/app_service.h
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/manifest.json
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/public/mojom/BUILD.gn
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/public/mojom/OWNERS
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/public/mojom/app_registry.mojom
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/public/mojom/constants.mojom
[add] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/apps/foundation/app_service/public/mojom/types.mojom
[modify] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/2d1e7d102ae50dbe5f2e36e76c3c1c519478891c/chrome/test/BUILD.gn

Cc: nverne@chromium.org
Cc: jopra@chromium.org
Cc: -nigeltao@chromium.org dominickn@chromium.org
Owner: nigeltao@chromium.org
Over to nigeltao@ who will be taking up implementation work here.
Labels: Tablet-Polish
Labels: -M-69 M-72
Please confirm priority and target milestone.
Labels: OS-Linux OS-Mac OS-Windows
> Please confirm priority and target milestone.

I still don't understand why this is on the "Tablet-Polish" hotlist. I've seen a spreadsheet with a row for this bug number, stating "Support the App Manifest refactor" but also "Bug? Description? This is vague". I suspect that this bug (826982) was put into that spreadsheet cell because somebody wanted a bug number for "Support the App Manifest refactor", and 826982 is our best guess given that vague "Support etc" request, but I still don't know what "Support etc" is actually asking for.

This bug, regarding a new App Service, is essentially a refactor. It should neither add new features nor fix old user-facing bugs per se. What it should do is significantly improve our velocity in adding new features or fixing old bugs, especially for inconsistency bugs, both across the various UI places where we display apps and across the various app implementations (Extensions, Android apps, Linux apps, etc).

So... priority? Well, it's important, but not urgent. P2, I guess??

So... milestone? Well, we're aiming for late 2018Q4, but whether or not that makes M-72 (e.g. branch on Nov 29) isn't really important. Again, it's a refactor, and shouldn't affect any user-facing features or bugs. This bug is also not tablet-specfic, let alone Chromium OS specific.
FYI, M71 has branched.  If this is needed in M71, it will need to be merged to the branch.  Note: M71 Beta is in less than two weeks.
Labels: -M-72 -Tablet-Polish
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b46dee671755e1f7f97be52a7c8fa6b51b7828f0

commit b46dee671755e1f7f97be52a7c8fa6b51b7828f0
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Nov 15 04:36:19 2018

Add chrome/services/app_service design doc

BUG=826982

Change-Id: Icc1398c6c6a87484e8348039c7e7b9b8918d483e
Reviewed-on: https://chromium-review.googlesource.com/c/1328626
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608256}
[modify] https://crrev.com/b46dee671755e1f7f97be52a7c8fa6b51b7828f0/chrome/services/app_service/README.md

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d5fbb61cae49be068f1e911a1b73d3b8af00daa

commit 3d5fbb61cae49be068f1e911a1b73d3b8af00daa
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Nov 15 23:18:38 2018

Add an AppService base::Feature

Also run clang-format on chrome_features.cc.

BUG=826982

Change-Id: I4916b2eeb226ca7e8ed1e73fe7d930b4634c08ee
Reviewed-on: https://chromium-review.googlesource.com/c/1336950
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608571}
[modify] https://crrev.com/3d5fbb61cae49be068f1e911a1b73d3b8af00daa/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/3d5fbb61cae49be068f1e911a1b73d3b8af00daa/chrome/common/chrome_features.cc
[modify] https://crrev.com/3d5fbb61cae49be068f1e911a1b73d3b8af00daa/chrome/common/chrome_features.h

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/304799cc96cb41f3aa9fb859af27caab047651ba

commit 304799cc96cb41f3aa9fb859af27caab047651ba
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Nov 21 06:18:32 2018

Add an App Service AppUpdate type

BUG=826982

Change-Id: I93e8b96ac058bc4c6d76cbd0af417727a0680b27
Reviewed-on: https://chromium-review.googlesource.com/c/1335071
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609926}
[modify] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/README.md
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/BUILD.gn
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/app_registry_cache.cc
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/app_registry_cache.h
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/app_registry_cache_unittest.cc
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/app_update.cc
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/app_update.h
[add] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/cpp/app_update_unittest.cc
[modify] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/services/app_service/public/mojom/types.mojom
[modify] https://crrev.com/304799cc96cb41f3aa9fb859af27caab047651ba/chrome/test/BUILD.gn

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d33ec5201b74504b3d3661e350e2ca3bbde2237b

commit d33ec5201b74504b3d3661e350e2ca3bbde2237b
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Nov 21 20:43:41 2018

Add an App Service registry implementation

The App Registry is discussed in chrome/services/app_service/README.md.

BUG=826982

Change-Id: If914f4237b6a42c2b212225be280218b69d676b3
Reviewed-on: https://chromium-review.googlesource.com/c/1338590
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610202}
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/BUILD.gn
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/DEPS
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/OWNERS
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/README.md
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/app_service_proxy.cc
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/app_service_proxy.h
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/app_service_proxy_factory.cc
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/app_service_proxy_factory.h
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/chromeos/apps/intent_helper/apps_navigation_throttle.cc
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/BUILD.gn
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/README.md
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/app_registry/app_registry.h
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/app_service.cc
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/app_service.h
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/app_service_impl.cc
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/app_service_impl.h
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/app_service_impl_unittest.cc
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/manifest.json
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/public/mojom/BUILD.gn
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/public/mojom/app_registry.mojom
[add] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/public/mojom/app_service.mojom
[modify] https://crrev.com/d33ec5201b74504b3d3661e350e2ca3bbde2237b/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 20 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e

commit 5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Nov 28 05:04:20 2018

Add an App Service icon factory implementation

BUG=826982

Change-Id: Iede4849e94bbecc9340dcd3d612e419531185fa9
Reviewed-on: https://chromium-review.googlesource.com/c/1347955
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611565}
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/BUILD.gn
[add] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/apps/app_service/app_icon_factory.cc
[add] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/apps/app_service/app_icon_factory.h
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/README.md
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/app_service_impl.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/app_service_impl.h
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/app_service_impl_unittest.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/cpp/app_registry_cache.h
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/cpp/app_registry_cache_unittest.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/cpp/app_update.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/cpp/app_update.h
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/cpp/app_update_unittest.cc
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/mojom/BUILD.gn
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/mojom/app_service.mojom
[modify] https://crrev.com/5ba0b4acbcd6c9d4448fa0f4ed00e9ee8f8e6d8e/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 21 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8e64901d6094af90f70c90f19377b57b8c2fed8e

commit 8e64901d6094af90f70c90f19377b57b8c2fed8e
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Nov 28 06:51:37 2018

Delete the obsolete "App Registry" design

That design was introduced, some months ago (2018 July), in
crrev.com/c/1127513 "Create a skeleton App Service and App Registry".
The 'skeleton' App Registry wasn't actually called anywhere in
production code, only in tests.

Some months later (2018 November), crrev.com/c/1328626 "Add
chrome/services/app_service design doc" and crrev.com/c/1338590 "Add an
App Service registry implementation" gave more detail or 'flesh on the
bones' about how the App Service (and the registry aspect of that
service) would work. This involved a new design, also called the "App
Registry". The old design was deprecated.

This commit deletes that old code, removing the confusion in having both
the old and new designs, both called "App Registry".

The new design does not depend on the prefs service, so some
dependencies were removed. In the future, some other to-be-written part
of the App Service may depend on the prefs service. At that future point
in time, some of these dependencies (and the 'pause incoming Mojo
requests until the pref service is ready' dance in app_service.cc) may
be re-introduced. But for now, YAGNI.

BUG=826982

Change-Id: I4ad52c5b9ba307a3922ed6dda330b7d9aedf29a0
Reviewed-on: https://chromium-review.googlesource.com/c/1348881
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611579}
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/BUILD.gn
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/DEPS
[delete] https://crrev.com/c3f9b27fbe6ff3ef5bf6fe209698d2741476b253/chrome/services/app_service/app_registry/app_registry.cc
[delete] https://crrev.com/c3f9b27fbe6ff3ef5bf6fe209698d2741476b253/chrome/services/app_service/app_registry/app_registry.h
[delete] https://crrev.com/c3f9b27fbe6ff3ef5bf6fe209698d2741476b253/chrome/services/app_service/app_registry/app_registry_unittest.cc
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/app_service.cc
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/app_service.h
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/manifest.json
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/public/mojom/BUILD.gn
[delete] https://crrev.com/c3f9b27fbe6ff3ef5bf6fe209698d2741476b253/chrome/services/app_service/public/mojom/app_registry.mojom
[modify] https://crrev.com/8e64901d6094af90f70c90f19377b57b8c2fed8e/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 23 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e64faaee80dc46c5ed5b4a88535edf3ef4df4402

commit e64faaee80dc46c5ed5b4a88535edf3ef4df4402
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Nov 28 07:26:24 2018

Make AppRegistryCache consistent under recursion

BUG=826982

Change-Id: I1feaec0eae9a0d2413ce4b2200da1d87b798ae98
Reviewed-on: https://chromium-review.googlesource.com/c/1352124
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611581}
[modify] https://crrev.com/e64faaee80dc46c5ed5b4a88535edf3ef4df4402/chrome/services/app_service/public/cpp/app_registry_cache.cc
[modify] https://crrev.com/e64faaee80dc46c5ed5b4a88535edf3ef4df4402/chrome/services/app_service/public/cpp/app_registry_cache_unittest.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/485d77209131a09f9106931c0a933d6b16e3ebf9

commit 485d77209131a09f9106931c0a933d6b16e3ebf9
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Nov 29 02:51:46 2018

CrOS: add first draft of an App Service app list model

Just names and icons for now. More features will come in future commits.

Tested manually, with "chrome --enable-features=AppService".

BUG=826982

Change-Id: I465daa7597e5172792d185e8b33228b127879057
Reviewed-on: https://chromium-review.googlesource.com/c/1349155
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Alex Newcomer <newcomer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612003}
[modify] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/BUILD.gn
[add] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/DEPS
[modify] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/app_list_syncable_service.cc
[modify] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/app_list_syncable_service.h
[add] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/app_service_app_item.cc
[add] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/app_service_app_item.h
[add] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/app_service_app_model_builder.cc
[add] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/browser/ui/app_list/app_service_app_model_builder.h
[modify] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/services/app_service/public/cpp/app_registry_cache.cc
[modify] https://crrev.com/485d77209131a09f9106931c0a933d6b16e3ebf9/chrome/services/app_service/public/cpp/app_registry_cache.h

Project Member

Comment 25 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c8b833e3044b97150c009868db6ec5f631f1d38d

commit c8b833e3044b97150c009868db6ec5f631f1d38d
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Nov 29 04:44:34 2018

Add an App Service Launch method

BUG=826982

Change-Id: I91dde844b443343a63ac099eece6e15e0b8b90fd
Reviewed-on: https://chromium-review.googlesource.com/c/1352128
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Alex Newcomer <newcomer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612040}
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/ui/app_list/app_service_app_item.cc
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/ui/app_list/app_service_app_item.h
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/ui/app_list/internal_app/internal_app_item.cc
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/browser/ui/app_list/internal_app/internal_app_item.h
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/services/app_service/app_service_impl.cc
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/services/app_service/app_service_impl.h
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/services/app_service/app_service_impl_unittest.cc
[modify] https://crrev.com/c8b833e3044b97150c009868db6ec5f631f1d38d/chrome/services/app_service/public/mojom/app_service.mojom

Project Member

Comment 26 by bugdroid1@chromium.org, Dec 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3582e2d015a6e44ff56359fd228cd4f5aaee0a44

commit 3582e2d015a6e44ff56359fd228cd4f5aaee0a44
Author: Nigel Tao <nigeltao@chromium.org>
Date: Mon Dec 03 23:58:14 2018

First draft of an App Service extension publisher

Lots of TODOs, but there's enough implemented so that running "chrome
--enable-features=AppService" will populate the launcher with extension
apps' names and icons, and clicking on the icon will launch the app.

BUG=826982

Change-Id: Id424abac859dde69ffdac3c28a473fce61fbe8df
Reviewed-on: https://chromium-review.googlesource.com/c/1351975
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613334}
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/BUILD.gn
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/apps/app_service/app_icon_factory.cc
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[add] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/apps/app_service/extension_apps.cc
[add] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/apps/app_service/extension_apps.h
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/browser/chromeos/apps/intent_helper/apps_navigation_throttle.cc
[modify] https://crrev.com/3582e2d015a6e44ff56359fd228cd4f5aaee0a44/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 27 by bugdroid1@chromium.org, Dec 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6bee435ad69b4daec4d6fbf52bedc914c18a2c72

commit 6bee435ad69b4daec4d6fbf52bedc914c18a2c72
Author: Nigel Tao <nigeltao@chromium.org>
Date: Tue Dec 04 06:58:49 2018

Add launch_source and display_id args to the App Service Launch method

BUG=826982

Change-Id: I12d79f3a7700cddd135cb9dafa6adf6fa96b3e05
Reviewed-on: https://chromium-review.googlesource.com/c/1355311
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613450}
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/apps/app_service/extension_apps.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/apps/app_service/extension_apps.h
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/ui/app_list/app_service_app_item.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/ui/app_list/app_service_app_item.h
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/ui/app_list/app_service_app_model_builder.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/ui/app_list/internal_app/internal_app_item.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/ui/app_list/search/internal_app_result.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/browser/ui/app_list/search/internal_app_result.h
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/services/app_service/app_service_impl.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/services/app_service/app_service_impl.h
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/services/app_service/app_service_impl_unittest.cc
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/services/app_service/public/mojom/app_service.mojom
[modify] https://crrev.com/6bee435ad69b4daec4d6fbf52bedc914c18a2c72/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 28 by bugdroid1@chromium.org, Dec 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f4cd59a01351d213e782174c933a6da6160723c2

commit f4cd59a01351d213e782174c933a6da6160723c2
Author: Nigel Tao <nigeltao@chromium.org>
Date: Fri Dec 07 04:32:24 2018

First draft of an App Service search provider

Lots of TODOs, but there's enough implemented so that running "chrome
--enable-features=AppService" will populate the app list search box with
apps' names and icons, and clicking on the icon will launch the app.

BUG=826982

Change-Id: I564bbd9142061e95a91c1a0b63a70980c970d56d
Reviewed-on: https://chromium-review.googlesource.com/c/1362597
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614583}
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/apps/app_service/extension_apps.cc
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/ui/app_list/app_service_app_item.cc
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/ui/app_list/search/app_search_provider.cc
[add] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/ui/app_list/search/app_service_app_result.cc
[add] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/browser/ui/app_list/search/app_service_app_result.h
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/services/app_service/public/cpp/app_registry_cache.cc
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/services/app_service/public/cpp/app_registry_cache.h
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/services/app_service/public/cpp/app_update.cc
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/services/app_service/public/cpp/app_update.h
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/services/app_service/public/cpp/app_update_unittest.cc
[modify] https://crrev.com/f4cd59a01351d213e782174c933a6da6160723c2/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 30 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/74610c85c20d1200f1b53eb1c53b1649c3bd7155

commit 74610c85c20d1200f1b53eb1c53b1649c3bd7155
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Dec 12 05:49:48 2018

Have App Service serve non-ready extensions

Currently, the App Service's extension-backed app publisher only serves
enabled (i.e. ready) extensions. Also serving disabled and terminated
extensions matches AppListControllerDelegate::GetApps in
app_list_controller_delegate.cc and ExtensionDataSource::AddApps in
app_search_provider.cc.

For example, disabled apps might still be shown in the UI, but with a
grayed out icon.

BUG=826982

Change-Id: I896d33cf574d4016a73b372003445329ae895e8e
Reviewed-on: https://chromium-review.googlesource.com/c/1367071
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615821}
[modify] https://crrev.com/74610c85c20d1200f1b53eb1c53b1649c3bd7155/chrome/browser/apps/app_service/extension_apps.cc
[modify] https://crrev.com/74610c85c20d1200f1b53eb1c53b1649c3bd7155/chrome/browser/apps/app_service/extension_apps.h
[modify] https://crrev.com/74610c85c20d1200f1b53eb1c53b1649c3bd7155/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 31 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/090a2a50d7557bc327cba2ad4e022476314a42bb

commit 090a2a50d7557bc327cba2ad4e022476314a42bb
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Dec 12 11:52:44 2018

Don't compile app_icon_factory except for ChromeOS.

Compiling app_icon_factory  code triggered compilation errors in some
Windows and Mac builds since the code references app_list which
only exists in ChromeOS. In most builds it was ok because the generated
object file was unused and got stripped by the linker before the dangling
references was found.

BUG=826982

TBR=nigeltao@chromium.org,rdevlin.cronin@chromium.org,dominickn@chromium.org

Change-Id: I25f0fa090f3466bcc83e06a070c7aa6c8600976d
Reviewed-on: https://chromium-review.googlesource.com/c/1373450
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#615856}
[modify] https://crrev.com/090a2a50d7557bc327cba2ad4e022476314a42bb/chrome/browser/BUILD.gn

Project Member

Comment 32 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eebdbbc93197e9370bf3b201d002e2025ab72f4d

commit eebdbbc93197e9370bf3b201d002e2025ab72f4d
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Dec 13 03:11:39 2018

Make LoadIconFromExtension check Chrome-OS-ness

The icon loading helper functions, prior to both this CL and
http://crrev.com/c/1373450, called app_list image processing functions
unconditionally, which broke the build, as app_list is Chrome OS only.

The quick fix was to build app_icon_factory.cc conditionally, only for
Chrome OS. This was http://crrev.com/c/1373450

This fix is to make more of app_icon_factory.cc conditional on #ifdef
OS_CHROMEOS. The App Service isn't necessarily Chrome OS only.

A longer term possibility is to move the app_list image processing
function out of //chrome/browser/ui/app_list per se, and build it
unconditionally. This would be a user-visible change (in that extension
icons on desktop Chrome might look different), but arguably a change
that improves consistency. In any case, doing that is out of scope of
this CL. In the initial stage, the App Service aims to be a
user-invisible refactoring.

BUG=826982

Change-Id: Ic4fd3db27789117bb57e72e6b557b3e56b28fb7f
Reviewed-on: https://chromium-review.googlesource.com/c/1374889
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616190}
[modify] https://crrev.com/eebdbbc93197e9370bf3b201d002e2025ab72f4d/chrome/browser/BUILD.gn
[modify] https://crrev.com/eebdbbc93197e9370bf3b201d002e2025ab72f4d/chrome/browser/apps/app_service/app_icon_factory.cc

Project Member

Comment 33 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e

commit 673a051b65e3ab4ae0c3fb23356ac00522e0ee3e
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Dec 20 03:08:47 2018

Add an AppUpdate::StateIsNull method

This also loosens an AppUpdate's fields (state and delta) to allow
nullptr values.

Previously, when presenting the first AppUpdate for a given app_id, we
have duplicated the delta to also be the initial state, so that the
overall AppUpdate's FooChanged methods all return false. This makes it
awkward in client code that needs to do something (e.g. update a UI
icon) both for the initial update and whenever the icon actually
changes.

Follow-up commits will use the new StateIsNull method.

BUG=826982

Change-Id: I284977e7bbc692b0a7b725c658d96ba77e40cfbb
Reviewed-on: https://chromium-review.googlesource.com/c/1373250
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618091}
[modify] https://crrev.com/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e/chrome/services/app_service/public/cpp/app_registry_cache.cc
[modify] https://crrev.com/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e/chrome/services/app_service/public/cpp/app_registry_cache.h
[modify] https://crrev.com/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e/chrome/services/app_service/public/cpp/app_registry_cache_unittest.cc
[modify] https://crrev.com/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e/chrome/services/app_service/public/cpp/app_update.cc
[modify] https://crrev.com/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e/chrome/services/app_service/public/cpp/app_update.h
[modify] https://crrev.com/673a051b65e3ab4ae0c3fb23356ac00522e0ee3e/chrome/services/app_service/public/cpp/app_update_unittest.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Jan 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab6a9b9d2a9b83dabfe6cb6f39763f3013ca8d24

commit ab6a9b9d2a9b83dabfe6cb6f39763f3013ca8d24
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Jan 09 03:57:15 2019

Let AppRegistryCache.OnApps recurse

Having cache.OnApps notifying observer.OnAppsUpdate calling cache.OnApps
should be pretty rare, but if it does happen, we should behave sensibly.

Sensibly includes maintaining the consistency condition that if calling
cache.ForEachApp or cache.ForOneApp, the AppRegistryCache should present
a consistent view of the world: the inner and outer AppUpdate's should
be equal.

Sensibly also includes that delta's passed to OnApps should be processed
in FIFO, not LIFO order. Each delta builds on the sum of previous ones.

BUG=826982

Change-Id: I99b99b99176dd0afff6281814c0a20a025b9d462
Reviewed-on: https://chromium-review.googlesource.com/c/1388348
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621041}
[modify] https://crrev.com/ab6a9b9d2a9b83dabfe6cb6f39763f3013ca8d24/chrome/services/app_service/public/cpp/app_registry_cache.cc
[modify] https://crrev.com/ab6a9b9d2a9b83dabfe6cb6f39763f3013ca8d24/chrome/services/app_service/public/cpp/app_registry_cache.h
[modify] https://crrev.com/ab6a9b9d2a9b83dabfe6cb6f39763f3013ca8d24/chrome/services/app_service/public/cpp/app_registry_cache_unittest.cc

Project Member

Comment 35 by bugdroid1@chromium.org, Jan 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e9b1c29af14671091d909ced75e094f4b4f418f

commit 6e9b1c29af14671091d909ced75e094f4b4f418f
Author: Nigel Tao <nigeltao@chromium.org>
Date: Thu Jan 10 00:21:07 2019

Rename some AppRegistryCache::DoOnApps vars

This makes the first halves of the "Notify the observers" and the
"Update the states" for loops the same. This makes it clearer that they
iterate over the same things (twice).

BUG=826982

Change-Id: Ia156c0e92d3c8e8cf98e0a517beedd3fe0fedd94
Reviewed-on: https://chromium-review.googlesource.com/c/1401882
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621389}
[modify] https://crrev.com/6e9b1c29af14671091d909ced75e094f4b4f418f/chrome/services/app_service/public/cpp/app_registry_cache.cc

Project Member

Comment 36 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/026630f338e29a3e0a28713c0df24178bbee671f

commit 026630f338e29a3e0a28713c0df24178bbee671f
Author: Nigel Tao <nigeltao@chromium.org>
Date: Fri Jan 11 04:54:56 2019

Implement context menus for App List + App Service

It re-uses the existing AppContextMenu, ArcAppContextMenu,
CrostiniAppContextMenu and ExtensionAppContextMenu code. Making an App
Service abstraction was considered, but rejected as not worth it. For
example, the shelf's context menu differs from the launcher's context
menu, even for the same app, so the bulk of the *_context_menu.cc code
is essentially idiosyncratic UI code for the launcher (aka app list).

Some broader concepts (e.g. is it a platform app, is it an uninstallable
app), rather than an explicit serialized context menu model, could be
factored into the App Service. That work is reserved for future commits.

Also remove the ExtensionAppContextMenu::set_is_platform_app method, as
it's really a constructor argument.

Also clean up some double-calls at two GetAppContextMenu call sites.

BUG=826982

Change-Id: I0f9afad47f8de145b391f6dfa9f51ec9085f17b2
Reviewed-on: https://chromium-review.googlesource.com/c/1404761
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621910}
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/apps/app_service/extension_apps.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/app_context_menu_unittest.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/app_service_app_item.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/app_service_app_item.h
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/chrome_app_list_item.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/extension_app_context_menu.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/extension_app_context_menu.h
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/extension_app_item.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/search/app_service_app_result.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/search/app_service_app_result.h
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/search/chrome_search_result.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/browser/ui/app_list/search/extension_app_result.cc
[modify] https://crrev.com/026630f338e29a3e0a28713c0df24178bbee671f/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 37 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7cd680d601dadc27d26d1a6e17658028f49fab56

commit 7cd680d601dadc27d26d1a6e17658028f49fab56
Author: Nigel Tao <nigeltao@chromium.org>
Date: Fri Jan 11 06:25:50 2019

First draft of an App Service ARC++ publisher

Lots of TODOs, but there's enough implemented so that running "chrome
--enable-features=AppService" will populate the launcher with ARC++
apps' names and icons, and clicking on the icon will launch the app.

BUG=826982

Change-Id: Ie61b33ce9fa0588e53615f5e086d558fe6abf840
Reviewed-on: https://chromium-review.googlesource.com/c/1377485
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621923}
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/BUILD.gn
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/app_service_proxy_factory.cc
[add] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/arc_apps.cc
[add] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/arc_apps.h
[add] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/arc_apps_factory.cc
[add] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/arc_apps_factory.h
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/apps/app_service/extension_apps.h
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/browser/chromeos/arc/arc_service_launcher.cc
[modify] https://crrev.com/7cd680d601dadc27d26d1a6e17658028f49fab56/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 38 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc

commit b2a8f71b4b46bd39debf3e6c204913f0ca649dcc
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Fri Jan 11 06:54:14 2019

Revert "First draft of an App Service ARC++ publisher"

This reverts commit 7cd680d601dadc27d26d1a6e17658028f49fab56.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 621923 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzdjZDY4MGQ2MDFkYWRjMjdkMjZkMWE2ZTE3NjU4MDI4ZjQ5ZmFiNTYM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium.chromiumos/chromeos-daisy-rel/44281

Sample Failed Step: compile

Original change's description:
> First draft of an App Service ARC++ publisher
> 
> Lots of TODOs, but there's enough implemented so that running "chrome
> --enable-features=AppService" will populate the launcher with ARC++
> apps' names and icons, and clicking on the icon will launch the app.
> 
> BUG=826982
> 
> Change-Id: Ie61b33ce9fa0588e53615f5e086d558fe6abf840
> Reviewed-on: https://chromium-review.googlesource.com/c/1377485
> Commit-Queue: Nigel Tao <nigeltao@chromium.org>
> Reviewed-by: Dominick Ng <dominickn@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#621923}

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
BUG=826982

Change-Id: I8473f94521c3be383cd2683e9157d911288818c5
Reviewed-on: https://chromium-review.googlesource.com/c/1406146
Cr-Commit-Position: refs/heads/master@{#621928}
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/BUILD.gn
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/apps/app_service/app_service_proxy_factory.cc
[delete] https://crrev.com/fdbc1ac98d7b01eb0139ecc80ca842b531e9c7aa/chrome/browser/apps/app_service/arc_apps.cc
[delete] https://crrev.com/fdbc1ac98d7b01eb0139ecc80ca842b531e9c7aa/chrome/browser/apps/app_service/arc_apps.h
[delete] https://crrev.com/fdbc1ac98d7b01eb0139ecc80ca842b531e9c7aa/chrome/browser/apps/app_service/arc_apps_factory.cc
[delete] https://crrev.com/fdbc1ac98d7b01eb0139ecc80ca842b531e9c7aa/chrome/browser/apps/app_service/arc_apps_factory.h
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/apps/app_service/extension_apps.h
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/browser/chromeos/arc/arc_service_launcher.cc
[modify] https://crrev.com/b2a8f71b4b46bd39debf3e6c204913f0ca649dcc/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 39 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63cfe5b893ed9e7be3621c6e60bc012de3b402be

commit 63cfe5b893ed9e7be3621c6e60bc012de3b402be
Author: Nigel Tao <nigeltao@chromium.org>
Date: Fri Jan 11 21:17:31 2019

Reland "First draft of an App Service ARC++ publisher"

This is a reland of 7cd680d601dadc27d26d1a6e17658028f49fab56

It is combined with the fix in http://crrev.com/c/1406488 "Fix switch on
apps::mojom::LaunchSource", which was not submitted, but has some
discussion of the build breakage.

Original change's description:
> First draft of an App Service ARC++ publisher
>
> Lots of TODOs, but there's enough implemented so that running "chrome
> --enable-features=AppService" will populate the launcher with ARC++
> apps' names and icons, and clicking on the icon will launch the app.
>
> BUG=826982
>
> Change-Id: Ie61b33ce9fa0588e53615f5e086d558fe6abf840
> Reviewed-on: https://chromium-review.googlesource.com/c/1377485
> Commit-Queue: Nigel Tao <nigeltao@chromium.org>
> Reviewed-by: Dominick Ng <dominickn@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#621923}

Bug: 826982
Change-Id: I76b5fdcc85f9992ad684c3eca57e0213050ef186
Reviewed-on: https://chromium-review.googlesource.com/c/1406490
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622153}
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/BUILD.gn
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/app_service_proxy.cc
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/app_service_proxy.h
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/app_service_proxy_factory.cc
[add] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/arc_apps.cc
[add] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/arc_apps.h
[add] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/arc_apps_factory.cc
[add] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/arc_apps_factory.h
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/built_in_chromeos_apps.h
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/apps/app_service/extension_apps.h
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/browser/chromeos/arc/arc_service_launcher.cc
[modify] https://crrev.com/63cfe5b893ed9e7be3621c6e60bc012de3b402be/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 40 by bugdroid1@chromium.org, Jan 16 (3 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0255d2c5605fe47411193c8d43a0647401600dea

commit 0255d2c5605fe47411193c8d43a0647401600dea
Author: Nigel Tao <nigeltao@chromium.org>
Date: Wed Jan 16 02:01:53 2019

Add an App.installed_internally Mojo field

BUG=826982

Change-Id: I4455af108d301de251baac0877524fcc2499ac00
Reviewed-on: https://chromium-review.googlesource.com/c/1377955
Reviewed-by: calamity <calamity@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623021}
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/browser/apps/app_service/arc_apps.cc
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/browser/apps/app_service/extension_apps.cc
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/browser/ui/app_list/search/app_search_provider.cc
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/services/app_service/public/cpp/app_update.cc
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/services/app_service/public/cpp/app_update.h
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/services/app_service/public/cpp/app_update_unittest.cc
[modify] https://crrev.com/0255d2c5605fe47411193c8d43a0647401600dea/chrome/services/app_service/public/mojom/types.mojom

Project Member

Comment 42 by bugdroid1@chromium.org, Yesterday (47 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f9e29edea64e2ca098523131bfcaea72e453e74

commit 2f9e29edea64e2ca098523131bfcaea72e453e74
Author: Nigel Tao <nigeltao@chromium.org>
Date: Fri Jan 18 00:04:26 2019

Plumb ARC++ updates through the App Service

BUG=826982

Change-Id: I00838a9f12c25d953ae638b6893bf3649f3c288f
Reviewed-on: https://chromium-review.googlesource.com/c/1414731
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623920}
[modify] https://crrev.com/2f9e29edea64e2ca098523131bfcaea72e453e74/chrome/browser/apps/app_service/arc_apps.cc
[modify] https://crrev.com/2f9e29edea64e2ca098523131bfcaea72e453e74/chrome/browser/apps/app_service/arc_apps.h

Project Member

Comment 43 by bugdroid1@chromium.org, Today (23 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/761f9fb014a66dd769a41f91c8533053110ade93

commit 761f9fb014a66dd769a41f91c8533053110ade93
Author: Nigel Tao <nigeltao@chromium.org>
Date: Fri Jan 18 23:48:27 2019

Load ARC++ App Service icons from the cache

Looking in the cache is what the existing code (without
--enable-features=AppService) does: e.g. ArcAppIcon::LoadForScaleFactor
calls ArcAppListPrefs::GetIconPath.

Without looking in the cache (but with --enable-features=AppService), we
have to delay calling ARC_GET_INSTANCE_FOR_METHOD(etc, RequestAppIcon)
until ARC++ is ready (as notified by arc::ConnectionObserver<etc>'s
OnConnectionReady). On my high-end test hardware, waiting for
OnConnectionReady can still take around six seconds after log-in. During
that time, prior to this commit, ARC++ apps' icons are blank.

BUG=826982

Change-Id: I9db258bf12d25a22d32c4b2b9d6756555c7256bf
Reviewed-on: https://chromium-review.googlesource.com/c/1416796
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624358}
[modify] https://crrev.com/761f9fb014a66dd769a41f91c8533053110ade93/chrome/browser/apps/app_service/app_icon_factory.cc
[modify] https://crrev.com/761f9fb014a66dd769a41f91c8533053110ade93/chrome/browser/apps/app_service/app_icon_factory.h
[modify] https://crrev.com/761f9fb014a66dd769a41f91c8533053110ade93/chrome/browser/apps/app_service/arc_apps.cc
[modify] https://crrev.com/761f9fb014a66dd769a41f91c8533053110ade93/chrome/browser/apps/app_service/arc_apps.h
[modify] https://crrev.com/761f9fb014a66dd769a41f91c8533053110ade93/chrome/browser/apps/app_service/built_in_chromeos_apps.cc
[modify] https://crrev.com/761f9fb014a66dd769a41f91c8533053110ade93/chrome/browser/apps/app_service/extension_apps.cc

Sign in to add a comment