New issue
Advanced search Search tips

Issue 893927 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Allow WebAPKs to run on Chrome OS

Project Member Reported by dominickn@chromium.org, Oct 10

Issue description

We want installed WebAPKs in the ARC container on Chrome OS to run and bounce out to the installed desktop Chrome browser.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 12

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

commit 4729eda6b9057a0a052573a7cb9c9af46f907eae
Author: Dominick Ng <dominickn@chromium.org>
Date: Fri Oct 12 03:21:21 2018

Add the CrOS intent helper as a browser supporting WebAPKs.

This will allow WebAPKs to be bounced to the desktop browser on Chrome
OS devices.

BUG=893927

Change-Id: Ic70b58d2ab2b23960cc894dd3420174b523908e6
Reviewed-on: https://chromium-review.googlesource.com/c/1272756
Reviewed-by: Xi Han <hanxi@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599083}
[modify] https://crrev.com/4729eda6b9057a0a052573a7cb9c9af46f907eae/chrome/android/webapk/shell_apk/current_version/current_version.gni
[modify] https://crrev.com/4729eda6b9057a0a052573a7cb9c9af46f907eae/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserUtils.java

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 16

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

commit 087125fbb9597234cc2e8f0954eb66e00e0176b9
Author: Dominick Ng <dominickn@chromium.org>
Date: Tue Oct 16 22:51:41 2018

Apply a separate version check for WebAPKs on Chrome OS.

The intent helper is versioned differently to Chrome. Explicitly check
its version separately if the incoming WebAPK launch intent specifies
the intent helper as its default browser. Fail out and launch as a tab
always if the provided default browser isn't supported.

BUG=893927

Change-Id: I2eb551042003eb6ca59062b86992428282ecad91
Reviewed-on: https://chromium-review.googlesource.com/c/1282143
Reviewed-by: Xi Han <hanxi@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600162}
[modify] https://crrev.com/087125fbb9597234cc2e8f0954eb66e00e0176b9/chrome/android/webapk/shell_apk/current_version/current_version.gni
[modify] https://crrev.com/087125fbb9597234cc2e8f0954eb66e00e0176b9/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserLauncher.java
[modify] https://crrev.com/087125fbb9597234cc2e8f0954eb66e00e0176b9/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserUtils.java

Cc: shihuis@google.com hashimoto@chromium.org
qq: In the expected use case, will the user install WebAPKs using clank installed on Chrome OS, and launch them with Chrome on Chrome OS?  We're currently banning clank install on Chrome OS to avoid confusing users.
Labels: M-72
We will not need Clank installed for this functionality - we will bounce out to Chrome on Chrome OS.
Thanks, I'll be happy if you're not going to install Clank on ARC++ :)
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 19

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

commit 7be964fa029f852da1966e204d05bfc370f24c6c
Author: Dominick Ng <dominickn@chromium.org>
Date: Fri Oct 19 21:33:16 2018

Implement IntentHelperHost::OnOpenWebApp.

This CL implements a method on the ARC IntentHelperHost to allow ARC to
request that a URL be opened as a web app in Chrome. If that URL does
not have a corresponding installed web app, the method falls back to
simply opening the URL in a tab.

An additional extension app launch source is added for the new launch
pathway.

BUG=893927

Change-Id: Ifbcc48f7cab65373dc6353d422580d6e9cc43796
Reviewed-on: https://chromium-review.googlesource.com/c/1282546
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Greg Kerr <kerrnel@chromium.org>
Reviewed-by: David Jacobo <djacobo@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601305}
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/chrome/browser/ui/ash/chrome_new_window_client.cc
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/chrome/browser/ui/ash/chrome_new_window_client.h
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/chrome/browser/ui/ash/chrome_new_window_client_browsertest.cc
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/components/arc/common/intent_helper.mojom
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/components/arc/intent_helper/arc_intent_helper_bridge.cc
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/components/arc/intent_helper/arc_intent_helper_bridge.h
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/components/arc/intent_helper/arc_intent_helper_bridge_unittest.cc
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/components/arc/intent_helper/open_url_delegate.h
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/extensions/browser/api/app_runtime/app_runtime_api.cc
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/extensions/common/api/app_runtime.idl
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/extensions/common/constants.h
[modify] https://crrev.com/7be964fa029f852da1966e204d05bfc370f24c6c/tools/metrics/histograms/enums.xml

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 22

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

commit c5173362e513a2eae7532d2e0cf55616928f1ce7
Author: Dominick Ng <dominickn@chromium.org>
Date: Mon Oct 22 23:04:26 2018

Add an extra test for IntentHelperHost::OnOpenWebApp.

This CL adds an additional test for the non-installed URL case, as well as
some extra documentation for profile fetching.

BUG=893927

Change-Id: Icb6d98121f9c4347561a31c9ea97af15b10ebdfb
Reviewed-on: https://chromium-review.googlesource.com/c/1292659
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: David Jacobo <djacobo@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601768}
[modify] https://crrev.com/c5173362e513a2eae7532d2e0cf55616928f1ce7/chrome/browser/ui/ash/chrome_new_window_client.cc
[modify] https://crrev.com/c5173362e513a2eae7532d2e0cf55616928f1ce7/chrome/browser/ui/ash/chrome_new_window_client_browsertest.cc
[modify] https://crrev.com/c5173362e513a2eae7532d2e0cf55616928f1ce7/components/arc/intent_helper/open_url_delegate.h

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 29

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

commit b2e6942f1c79beefd83e5e834341cd26a7590f47
Author: Dominick Ng <dominickn@chromium.org>
Date: Thu Nov 29 05:27:57 2018

Call ArcAppListPrefs::Observer::{OnPackage{Added,Removed}} from OnPackageListRefreshed.

ArcAppListPref's browser-side cache of ARC apps may become out of date
with the ARC container, as the async IPC communication pipe between
container and browser may be flaky, or be established after the
container has processed some package installations/removals. This means
observer classes which follow the OnPackageAdded or OnPackageRemoved
calls may miss installations/uninstallations.

This CL augments ArcAppListPrefs::OnPackageListRefreshed to additionally
call observers if it detects packages which have been installed or
uninstalled which it has not yet seen.

BUG=893927

Change-Id: Icd069fdc89e348918f1185102e566bfc772087e3
Reviewed-on: https://chromium-review.googlesource.com/c/1345705
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Yury Khmel <khmel@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612055}
[modify] https://crrev.com/b2e6942f1c79beefd83e5e834341cd26a7590f47/chrome/browser/extensions/chrome_app_icon_unittest.cc
[modify] https://crrev.com/b2e6942f1c79beefd83e5e834341cd26a7590f47/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
[modify] https://crrev.com/b2e6942f1c79beefd83e5e834341cd26a7590f47/chrome/browser/ui/app_list/arc/arc_app_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Dec 3

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

commit be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee
Author: Dominick Ng <dominickn@chromium.org>
Date: Mon Dec 03 09:42:22 2018

Trigger a web app installation when a web app is installed in ARC.

This CL allows ARC to inform ArcAppListPrefs whether a newly installed
package is a web app or not. If it is a web app, ArcAppListPrefs
requests the web app's data from ARC, and upon receiving the data,
triggers an installation of the web app.

BUG=893927

Change-Id: Ia88043ef1d01f709e82340326e81de01da6c1c4c
Reviewed-on: https://chromium-review.googlesource.com/c/1314068
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Yury Khmel <khmel@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Greg Kerr <kerrnel@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: David Jacobo <djacobo@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613031}
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/BUILD.gn
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_installer.cc
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_installer.h
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_installer_unittest.cc
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_service.cc
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_service.h
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_service_factory.cc
[add] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/apps/apk_web_app_service_factory.h
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/chromeos/arc/arc_service_launcher.cc
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/extensions/bookmark_app_helper.cc
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/extensions/bookmark_app_helper.h
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/installable/installable_metrics.h
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/web_applications/components/web_app_constants.h
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/chrome/browser/web_applications/extensions/bookmark_app_installation_task.cc
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/components/arc/common/app.mojom
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/components/arc/test/fake_app_instance.h
[modify] https://crrev.com/be35fdc4e3cb6cc9e88c9e79d4d9b6fe677d7cee/tools/metrics/histograms/enums.xml

Project Member

Comment 10 by bugdroid1@chromium.org, Jan 7

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

commit ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8
Author: Dominick Ng <dominickn@chromium.org>
Date: Mon Jan 07 21:44:21 2019

Synchronise web app uninstallation between ARC and Chrome.

This CL synchronises uninstallation of web apps and their APK wrappers:

1. upon the user uninstalling a WebAPK in ARC++, allows ArcAppListPrefs to
   inform the web app container (currently the extensions system) to
   uninstall the corresponding web app.
2. upon the user uninstalling the web app in Chrome, informs
   ArcAppListPrefs so that it can uninstall the corresponding WebAPK in
   ARC++.
3. if ARC is not running when a web app is uninstalled, the uninstallation
   of the corresponding ARC package is deferred to the next time ARC is
   running.

A number of end-to-end browser tests of installation and uninstallation are
also added to exercise the implementation.

BUG=893927

Change-Id: I6ddd6ca5daf12b5c616810d1449fb0a878256f6d
Reviewed-on: https://chromium-review.googlesource.com/c/1328630
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620485}
[add] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/chrome/browser/chromeos/apps/apk_web_app_installer_browsertest.cc
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/chrome/browser/chromeos/apps/apk_web_app_service.cc
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/chrome/browser/chromeos/apps/apk_web_app_service.h
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/chrome/browser/web_applications/extensions/web_app_extension_ids_map.cc
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/chrome/browser/web_applications/extensions/web_app_extension_ids_map.h
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/chrome/test/BUILD.gn
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/components/arc/test/fake_app_instance.cc
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/components/arc/test/fake_app_instance.h
[modify] https://crrev.com/ca1fdde6ca24e9506c6dfbde1419d093cf51c3d8/extensions/browser/uninstall_reason.h

Project Member

Comment 11 by bugdroid1@chromium.org, Jan 8

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

commit 20ba58da734ce88bf6eb60bec822dbc6833a3f96
Author: Dominick Ng <dominickn@chromium.org>
Date: Tue Jan 08 04:55:17 2019

Move clear_site_data_utils.h to content/public.

This allows the useful ClearSiteData method (which clears all data +
ETLD+1 scoped cookies for an origin) to be accessible outside of
content/browser.

BUG=893927

Change-Id: Ia0d90a624c6d2de4b6307f2824dfaaf03b41d449
Reviewed-on: https://chromium-review.googlesource.com/c/1394104
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620625}
[modify] https://crrev.com/20ba58da734ce88bf6eb60bec822dbc6833a3f96/content/browser/BUILD.gn
[modify] https://crrev.com/20ba58da734ce88bf6eb60bec822dbc6833a3f96/content/browser/browsing_data/clear_site_data_handler.cc
[modify] https://crrev.com/20ba58da734ce88bf6eb60bec822dbc6833a3f96/content/browser/browsing_data/clear_site_data_throttle.cc
[modify] https://crrev.com/20ba58da734ce88bf6eb60bec822dbc6833a3f96/content/browser/browsing_data/clear_site_data_utils.cc
[delete] https://crrev.com/dfab7a3df6f5040cf0a79ebf2fc19edf7925ef78/content/browser/browsing_data/clear_site_data_utils.h
[modify] https://crrev.com/20ba58da734ce88bf6eb60bec822dbc6833a3f96/content/public/browser/BUILD.gn
[add] https://crrev.com/20ba58da734ce88bf6eb60bec822dbc6833a3f96/content/public/browser/clear_site_data_utils.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jan 8

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

commit 2a47d2f5e08bc61a71863de940cb3cb1ff5f3213
Author: Dominick Ng <dominickn@chromium.org>
Date: Tue Jan 08 09:05:01 2019

Add a option to bookmark app uninstallation to remove associated data.

This CL allows users to wipe all origin-bound storage and ETLD+1 bound
cookies associated with the URL of a bookmark app at uninstallation. It
accomplishes this via a off-by-default checkbox in the uninstallation
dialog. The dialog discloses the origin for which data will be removed.

BUG=893927

Change-Id: I96a9d759fcd409f6b1b428ea1b39cff102816b77
Reviewed-on: https://chromium-review.googlesource.com/c/1395857
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620658}
[modify] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/chrome/app/generated_resources.grd
[add] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/chrome/app/generated_resources_grd/IDS_EXTENSION_UNINSTALL_PROMPT_REMOVE_DATA_CHECKBOX.png.sha1
[modify] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/chrome/browser/extensions/extension_uninstall_dialog.cc
[modify] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/chrome/browser/extensions/extension_uninstall_dialog.h
[modify] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc
[modify] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/2a47d2f5e08bc61a71863de940cb3cb1ff5f3213/tools/metrics/histograms/histograms.xml

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 14

Sign in to add a comment