New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 38 users

Issue metadata

Status: Fixed
Owner:
Long OOO (go/where-is-mgiuca)
Closed: Dec 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Feature
Launch-Accessibility: NotReviewed
Launch-Legal: NotReviewed
Launch-Privacy: NotReviewed
Launch-Security: NotReviewed
Launch-Test: NotReviewed
Launch-UI: NotReviewed

Blocked on:
issue 689805
issue 795165


Show other hotlists

Hotlists containing this issue:
Hotlist-1


Sign in to add a comment
link

Issue 668389: Web Share Target API

Reported by mgiuca@chromium.org, Nov 24 2016 Project Member

Issue description

Change description:
Web Share Target is a proposed API for allowing websites to receive shared data (text, URLs, images) and register to be choosable by the user as targets from sharing contexts, including (but not limited to) Web Share.

Changes to API surface:
- Adding new entries to the Web App Manifest.

Links:
Public standards discussion: https://discourse.wicg.io/t/web-share-target-api-for-websites-to-receive-shared-content/1854

Support in other browsers:
Internet Explorer: No
Firefox: No (but similar API already exists, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Social_API/Share)
Safari: No
 

Comment 1 by mgiuca@chromium.org, Nov 24 2016

Description: Show this description

Comment 3 by owe...@chromium.org, Dec 20 2016

Marking for posterity that since this launch likely has privacy, security, testing implications it needs a type=Launch issue too to track approval.

This will be done by me before we enable these changes.

For anyone reading and curious, the Type=Launch system is explained here: https://docs.google.com/document/d/1Z9x-PBYgDaR99tsNLvhibZLeAwDR757Gor--I60ygeE/edit

Comment 4 by mgiuca@chromium.org, Jan 11 2017

Labels: -M-57 M-59

Comment 5 by bugdroid1@chromium.org, Jan 13 2017

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/31b8b23c68531e587060823f8c9814d52c63425a

commit 31b8b23c68531e587060823f8c9814d52c63425a
Author: constantina <constantina@google.com>
Date: Fri Jan 13 01:31:20 2017

Changed email suffixes in OWNERS from .com to .org

BUG= 668389 

Review-Url: https://codereview.chromium.org/2628043003
Cr-Commit-Position: refs/heads/master@{#443437}

[modify] https://crrev.com/31b8b23c68531e587060823f8c9814d52c63425a/chrome/browser/webshare/OWNERS

Comment 6 by bugdroid1@chromium.org, Jan 13 2017

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 31 2017

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/39e40676d8769fade0dca9fc864eb5e2ef80ee58

commit 39e40676d8769fade0dca9fc864eb5e2ef80ee58
Author: mgiuca <mgiuca@chromium.org>
Date: Tue Jan 31 04:16:49 2017

Add picker view for Web Share Target.

This is temporary UI which has not been approved by UX and will only be
used for an experimental feature behind a flag.

Hooked up to the share service for navigator.share on Desktop. Currently
does not show any real apps (just the dummy app which is currently
hard-coded in the share service).

BUG= 668389 

Review-Url: https://codereview.chromium.org/2644793006
Cr-Commit-Position: refs/heads/master@{#447187}

[modify] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/app/generated_resources.grd
[modify] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/ui/browser_dialogs.h
[add] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/ui/views/webshare/webshare_target_picker_view.cc
[add] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/ui/views/webshare/webshare_target_picker_view.h
[modify] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/webshare/share_service_impl.cc
[modify] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/webshare/share_service_impl.h
[modify] https://crrev.com/39e40676d8769fade0dca9fc864eb5e2ef80ee58/chrome/browser/webshare/share_service_impl_unittest.cc

Comment 9 by bugdroid1@chromium.org, Feb 2 2017

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

commit 8bad70ff3383c7c71a96451d32aa93fc4a87b018
Author: constantina <constantina@google.com>
Date: Thu Feb 02 07:42:20 2017

Add a pref name for share targets, and store their manifest data.

Adds a dictionary pref name, to store sites with manifests that
contain the share_url_template field; the key is the site origin, and
value is the value of share_url_template in the site's manifest.

Reads manifests after they have been parsed, for the share_url_template,
and stores the site and value under the pref name added.

Follow-up CL will read the pref store for the pref name added, and read
share targets in chrome/browser/webshare/share_service_impl.cc.

NO_DEPENDENCY_CHECKS=true
BUG= 668389 

Review-Url: https://codereview.chromium.org/2639463002
Cr-Commit-Position: refs/heads/master@{#447721}

[modify] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/browser/BUILD.gn
[modify] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/browser/extensions/bookmark_app_helper.cc
[modify] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/browser/profiles/profile.cc
[add] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/browser/webshare/share_target_pref_helper.cc
[add] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/browser/webshare/share_target_pref_helper.h
[add] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/browser/webshare/share_target_pref_helper_unittest.cc
[modify] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/common/pref_names.cc
[modify] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/common/pref_names.h
[modify] https://crrev.com/8bad70ff3383c7c71a96451d32aa93fc4a87b018/chrome/test/BUILD.gn

Comment 10 by bugdroid1@chromium.org, Feb 7 2017

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

commit e4c513e7ae3fd3a6c7752f8add47b93fb1c66444
Author: constantina <constantina@google.com>
Date: Tue Feb 07 02:14:10 2017

Picker takes a vector of pairs, and passes back the user chosen target.

Instead of vector of string16s, input is a vector of pairs of string16
and GURL where the first element is the app name, and the second is the
manifest URL of the app.

The manifest URL of the chosen target is passed back via a callback as
a string. The passed URL is Optional, so it can be null if the share is
cancelled.

BUG= 668389 

Review-Url: https://codereview.chromium.org/2667803002
Cr-Commit-Position: refs/heads/master@{#448512}

[modify] https://crrev.com/e4c513e7ae3fd3a6c7752f8add47b93fb1c66444/chrome/browser/ui/browser_dialogs.h
[modify] https://crrev.com/e4c513e7ae3fd3a6c7752f8add47b93fb1c66444/chrome/browser/ui/views/webshare/webshare_target_picker_view.cc
[modify] https://crrev.com/e4c513e7ae3fd3a6c7752f8add47b93fb1c66444/chrome/browser/ui/views/webshare/webshare_target_picker_view.h
[modify] https://crrev.com/e4c513e7ae3fd3a6c7752f8add47b93fb1c66444/chrome/browser/webshare/share_service_impl.cc
[modify] https://crrev.com/e4c513e7ae3fd3a6c7752f8add47b93fb1c66444/chrome/browser/webshare/share_service_impl.h
[modify] https://crrev.com/e4c513e7ae3fd3a6c7752f8add47b93fb1c66444/chrome/browser/webshare/share_service_impl_unittest.cc

Comment 11 by bugdroid1@chromium.org, Feb 7 2017

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2883697c7814c4fca4675bd071161498b3b6aa27

commit 2883697c7814c4fca4675bd071161498b3b6aa27
Author: constantina <constantina@google.com>
Date: Tue Feb 07 08:04:02 2017

Store target app name in Web Share prefs, and remove external logic.

UpdateShareTargetInPrefs now stores the name field of the supplied
target's manifest in the Web Share target prefs. For the given share
target, adds the name to the dictionary associated with the target.

UpdateShareTargetInPrefs also handles the logic about web apps with
manifests that don't have the share_target field, entirely internally.

BUG= 668389 

Review-Url: https://codereview.chromium.org/2679523002
Cr-Commit-Position: refs/heads/master@{#448568}

[modify] https://crrev.com/2883697c7814c4fca4675bd071161498b3b6aa27/chrome/browser/extensions/bookmark_app_helper.cc
[modify] https://crrev.com/2883697c7814c4fca4675bd071161498b3b6aa27/chrome/browser/webshare/share_target_pref_helper.cc
[modify] https://crrev.com/2883697c7814c4fca4675bd071161498b3b6aa27/chrome/browser/webshare/share_target_pref_helper.h
[modify] https://crrev.com/2883697c7814c4fca4675bd071161498b3b6aa27/chrome/browser/webshare/share_target_pref_helper_unittest.cc

Comment 12 by mgiuca@chromium.org, Feb 8 2017

Blockedon: 689805

Comment 13 by bugdroid1@chromium.org, Feb 9 2017

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

commit c5166d7cb235178146eee3431f7f64f0afc8aa4f
Author: mgiuca <mgiuca@chromium.org>
Date: Thu Feb 09 05:48:05 2017

Added unit test for WebShareTargetPickerView.

Also minor fix to avoid a DCHECK if double-clicking on an empty table
(which I don't think was possible to trigger anyway).

BUG= 668389 

Review-Url: https://codereview.chromium.org/2679533002
Cr-Commit-Position: refs/heads/master@{#449210}

[modify] https://crrev.com/c5166d7cb235178146eee3431f7f64f0afc8aa4f/chrome/browser/ui/views/webshare/webshare_target_picker_view.h
[add] https://crrev.com/c5166d7cb235178146eee3431f7f64f0afc8aa4f/chrome/browser/ui/views/webshare/webshare_target_picker_view_unittest.cc
[modify] https://crrev.com/c5166d7cb235178146eee3431f7f64f0afc8aa4f/chrome/test/BUILD.gn

Comment 14 by bugdroid1@chromium.org, Feb 13 2017

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/33f13724ed6d1a1a56b0f112767e62c36824e377

commit 33f13724ed6d1a1a56b0f112767e62c36824e377
Author: mgiuca <mgiuca@chromium.org>
Date: Mon Feb 13 02:02:54 2017

Do not build share_service_impl and associated test on Mac/Android.

These files are not used on those platforms and have a growing number of
conditional compilation statements which can be removed in a follow-up
CL.

BUG= 668389 

Review-Url: https://codereview.chromium.org/2695563002
Cr-Commit-Position: refs/heads/master@{#449905}

[modify] https://crrev.com/33f13724ed6d1a1a56b0f112767e62c36824e377/chrome/browser/BUILD.gn
[modify] https://crrev.com/33f13724ed6d1a1a56b0f112767e62c36824e377/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/33f13724ed6d1a1a56b0f112767e62c36824e377/chrome/test/BUILD.gn

Comment 15 by bugdroid1@chromium.org, Feb 13 2017

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5558f3f32e3182a29ef236242e2c50c37a3f6a1a

commit 5558f3f32e3182a29ef236242e2c50c37a3f6a1a
Author: constantina <constantina@google.com>
Date: Mon Feb 13 05:37:54 2017

Read share targets from prefstore, and filter by engagement.

New function, GetTargetsWithSufficientEngagement, called when browser
receives Share from renderer. Function collates all share targets and
their templates, and keeps targets that have a high enough engagement
score with the user.

Calls picker UI with this filtered list of targets.

BUG= 668389 

Review-Url: https://codereview.chromium.org/2664033002
Cr-Commit-Position: refs/heads/master@{#449911}

[modify] https://crrev.com/5558f3f32e3182a29ef236242e2c50c37a3f6a1a/chrome/browser/webshare/share_service_impl.cc
[modify] https://crrev.com/5558f3f32e3182a29ef236242e2c50c37a3f6a1a/chrome/browser/webshare/share_service_impl.h
[modify] https://crrev.com/5558f3f32e3182a29ef236242e2c50c37a3f6a1a/chrome/browser/webshare/share_service_impl_unittest.cc

Comment 16 by bugdroid1@chromium.org, Feb 14 2017

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

commit f7077234f58cf96b6a9102691ce13cb28150cbab
Author: mgiuca <mgiuca@chromium.org>
Date: Tue Feb 14 01:45:42 2017

Remove conditional compile statements in ShareServiceImpl (and test).

These were previously added to allow this code to compile (but be
useless) on Mac and Android. As of r449905, these files are not compiled
at all on Mac and Android, so these if statements are no longer needed.

BUG= 668389 

Review-Url: https://codereview.chromium.org/2694643002
Cr-Commit-Position: refs/heads/master@{#450193}

[modify] https://crrev.com/f7077234f58cf96b6a9102691ce13cb28150cbab/chrome/browser/webshare/share_service_impl.cc
[modify] https://crrev.com/f7077234f58cf96b6a9102691ce13cb28150cbab/chrome/browser/webshare/share_service_impl.h
[modify] https://crrev.com/f7077234f58cf96b6a9102691ce13cb28150cbab/chrome/browser/webshare/share_service_impl_unittest.cc

Comment 17 by owe...@chromium.org, Sep 12 2017

Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge

Comment 18 by pkalinnikov@chromium.org, Sep 18 2017

Components: Privacy

Comment 19 by mgiuca@chromium.org, Aug 21

Blockedon: 795165

Comment 20 by jsb...@chromium.org, Aug 23

Do we have an Intent to Implement/etc for this? Or was it subsumed into another I2I ?

Comment 22 by dxie@google.com, Oct 12

Labels: -Pri-3 Proj-Fugu Pri-1

Comment 23 by dxie@google.com, Oct 19

Labels: -M-59 M-71

Comment 24 by jsb...@chromium.org, Oct 26

Labels: Type-Feature

Comment 25 by mgiuca@chromium.org, Dec 13

Cc: ericwilligers@chromium.org
Labels: -OS-Linux -OS-Windows -OS-Chrome OS-Android
Launched in M71 on Android.

Will file separate feature bugs to ship WST on each other platform (which will be shipping individually).

Comment 26 by mgiuca@chromium.org, Dec 13

Status: Fixed (was: Assigned)

Comment 27 by rekt...@gmail.com, Jan 18

Can we get those follow-up tickets to track for other platforms please?

Comment 28 by itsdimit...@gmail.com, Jan 22

Is there a way to detect if this API is available? I want to show the user a different flow only if it is.

Comment 29 by ericwilligers@chromium.org, Jan 22

There isn't currently a way to feature detect Web Share Target, only Web Share.

What is the use case? The user agent (browser) has full discretion whether to show a given web app in the Share list, so detecting Web Share Target may have limited usefulness.

Sign in to add a comment