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

Issue 686049 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

Add missing screenshot when sharing from Chrome

Project Member Reported by jif@chromium.org, Jan 27 2017

Issue description

When using a share extension from Chrome, a screenshot of the tab should be displayed, like with Safari.

Attached are the before/after screenshots.

Paragraph giving more context and explanation:
https://docs.google.com/document/d/1xYKyUn0yVt-qB6N3CR90b4XOczxbH7DDHZ6DqDkVHbI/edit#heading=h.5tat8tr1dkjj


 
without_thumbnail.png
196 KB View Download
with_thumbnail.png
207 KB View Download
Cc: msramek@chromium.org yitingc@chromium.org noyau@chromium.org
+ Kay, Martin to make sure Privacy is ok with this
+ Éric 

Hi Kay, Martin: 

For context, please see the small section titled "Thumbnail" here: 
https://docs.google.com/document/d/1xYKyUn0yVt-qB6N3CR90b4XOczxbH7DDHZ6DqDkVHbI/edit#heading=h.px68uyxe1g7t

Worth noting that this when sharing from Incognito, we will not send the thumbnail. 
Components: UI>Browser>Mobile>Share
Does this mean when sharing from Chrome to app A, before the user hits confirm (or the equivalent? I can't find it on the screenshot) app A gets a thumbnail?

Comment 4 by jif@chromium.org, Jan 27 2017

I attached the steps a user goes through to share a page (icons and transparency is messed up because the screenshots are taken on a simulator).
Circled in red are the buttons the user touch to go from step N to step N+1.

App B gets the thumbnail from app A when the user taps on the name of the app in step 3.

share.png
383 KB View Download
So Chrome Privacy isn't particularly concerned about the Incognito sharing.

Now the questions are:
1. Why are we adding this? It seems like we are currently sharing without the thumbnail. Is the driving factor to only align with Safari and other iOS apps? What are the added benefits for users other than consistency (not that consistency isn't great.)

2. How is the thumbnail generated? It's not the current screenshot, right? I didn't find related details in your doc. Can we show a safe version a website has approved or intends to show? For example, when I receive a shared link someone else on Android, some apps could show a thumbnail of a link, but this may be slightly different from what the sender sends. Can we do that?

Comment 6 by jif@chromium.org, Jan 31 2017

1. The driving factor is indeed consistency. Some see it as a facet of PE :-)

2.a. The thumbnail is generated by resizing a screenshot of the webpage (which excludes any browser UI). I added that bit to the paragraph in the doc.

2.b. I don't understand the part about a website approving a thumbnail.

2.c. On Android, a receiving app can indeed choose to create a thumbnail of a shared link by downloading and rendering the webpage itself. In our case, Chrome iOS is the sending app, and we do not control the receiving app.

Are you suggesting that Chrome should redownload and rerender the page to create and share a thumbnail different from what is shown on-screen?
#2 - yes what we meant is the version returned to the receiver app when the receiver app pings the server to render a thumbnail.

We have some concern about someone sharing a URL while the user is signed in with a sensitive site and the current screen could be showing personal data. Once the thumbnail is rendered it's already sent to the receiving app (and perhaps also the person who will receive the URL?)
Hi Kay, 

I have two comments: 
1/ When the user is sharing a URL, they'd like the recipient entity (app or person) to have and to see what they're current looking at. So if this is a sensitive site and the current screen should not be seen by others, the user wouldn't share it. If they share it, then they don't deem it sensitive enough. 

2/ The URL itself that the user is sharing might contain sensitive parameters (i.e. session tokens that would make the recipient log into the user's account if they click on the URL). We don't strip out the parameters from the URL.

The engineering effort required to send thumbnails to some Google backend for sanitization and get it back is hard to justify on our end. As Jean-François mentioned, this is a product excellence fix so that our share extension looks polished. How strongly does the privacy team feel about the thumbnail issue and how big is the risk in your opinion?

Thanks.

We did discuss #1 in our weekly meeting this Monday. We factored in the fact that it takes 3 clicks to get to the point when a thumbnail is shared. But the moment the thumbnail is shown to the user sharing it, it's done and there's no way back. Personally, I've shared screenshots at Google with personal information that I had all the time to examine but yet still failed to notice. More than 3 clicks were involved and yet, these things do happen. I had to write to some engineer to delete my screenshot in their database. This will not be possible for users.

I've discussed with Martin and I think we will grant privacy approval. But speaking of product excellence, watching out for users is another move towards the same goal. :) We'd encourage your team to consider an alternative to generating the thumbnail that is more privacy preserving for the users.


Thanks, Kay. Much appreciated. 
Project Member

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

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

commit 4a8cf9449a9df503e1993433249a9e6923b5d810
Author: jif <jif@chromium.org>
Date: Fri Feb 03 12:05:24 2017

Expose thumbnails of pages to iOS share extensions.

This CLs implements UIActivityItemSource's
|activityViewController:thumbnailImageForActivityType:suggestedSize:|.
Also:
-factor out of the BVC the creation of ShareToData.
-remove unused UIActivityURLSource.
-fix ui/base/test/ios/OWNERS (broken by
https://codereview.chromium.org/1885043012 )

TEST=Share a page from Chrome iOS to the Chrome iOS extension. A
thumbnail of the page should be shown.
BUG= 686049 

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

[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/BUILD.gn
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/activity_service_controller.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/chrome_activity_item_source.h
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/chrome_activity_item_source.mm
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/chrome_activity_item_thumbnail_generator.h
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/chrome_activity_item_thumbnail_generator.mm
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/chrome_activity_item_thumbnail_generator_unittest.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/share_to_data.h
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/share_to_data.mm
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/share_to_data_builder.h
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/activity_services/share_to_data_builder.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/browser_view_controller.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/browser_view_controller_unittest.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/ui_util.h
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/ui_util.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/ui_util_unittest.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ios/chrome/browser/ui/uikit_ui_util_unittest.mm
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ui/base/BUILD.gn
[modify] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ui/base/test/ios/OWNERS
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ui/base/test/ios/ui_image_test_utils.h
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ui/base/test/ios/ui_image_test_utils.mm
[add] https://crrev.com/4a8cf9449a9df503e1993433249a9e6923b5d810/ui/base/test/ios/ui_image_test_utils_unittest.mm

Comment 12 by jif@chromium.org, Feb 6 2017

Labels: Merge-Request-57 OS-Linux
Status: Fixed (was: Started)

Comment 13 by jif@chromium.org, Feb 6 2017

Labels: -OS-Linux
Project Member

Comment 14 by sheriffbot@chromium.org, Feb 6 2017

Labels: -Merge-Request-57 Hotlist-Merge-Approved Merge-Approved-57
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Verified (was: Fixed)
Verified in 58.0.3005.0, iPad Air 2 iOS 10.2
Project Member

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

Labels: -merge-approved-57 merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2186c11d838c7a5633197018ec3727360827623

commit a2186c11d838c7a5633197018ec3727360827623
Author: Jean-François Geyelin <jif@google.com>
Date: Wed Feb 08 09:46:34 2017

Expose thumbnails of pages to iOS share extensions.

This CLs implements UIActivityItemSource's
|activityViewController:thumbnailImageForActivityType:suggestedSize:|.
Also:
-factor out of the BVC the creation of ShareToData.
-remove unused UIActivityURLSource.
-fix ui/base/test/ios/OWNERS (broken by
https://codereview.chromium.org/1885043012 )

TEST=Share a page from Chrome iOS to the Chrome iOS extension. A
thumbnail of the page should be shown.
BUG= 686049 

Review-Url: https://codereview.chromium.org/2645653003
Cr-Commit-Position: refs/heads/master@{#447977}
(cherry picked from commit 4a8cf9449a9df503e1993433249a9e6923b5d810)

Review-Url: https://codereview.chromium.org/2682043002 .
Cr-Commit-Position: refs/branch-heads/2987@{#383}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/BUILD.gn
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/activity_service_controller.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/chrome_activity_item_source.h
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/chrome_activity_item_source.mm
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/chrome_activity_item_thumbnail_generator.h
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/chrome_activity_item_thumbnail_generator.mm
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/chrome_activity_item_thumbnail_generator_unittest.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/share_to_data.h
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/share_to_data.mm
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/share_to_data_builder.h
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/activity_services/share_to_data_builder.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/browser_view_controller.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/browser_view_controller_unittest.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/ui_util.h
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/ui_util.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/ui_util_unittest.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ios/chrome/browser/ui/uikit_ui_util_unittest.mm
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ui/base/BUILD.gn
[modify] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ui/base/test/ios/OWNERS
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ui/base/test/ios/ui_image_test_utils.h
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ui/base/test/ios/ui_image_test_utils.mm
[add] https://crrev.com/a2186c11d838c7a5633197018ec3727360827623/ui/base/test/ios/ui_image_test_utils_unittest.mm

Verified in 57.0.2987.52 beta, iPad Air 2 iOS 10.2.1, iPhone iOS 10.2
Verified on chrome beta version 57.0.2987.53 on iPhone 7 plus with iOS 10.2.1, iPad4 with iOS 10.2.1.

Steps followed for verification:
1. Launch chrome.
2. Open any website ex:rediff.com
3. Go to Share --> Reminders

Verified that the thumbnail of rediff.com is displayed on right side of pop up.  Looks good.



Comment 19 by jif@chromium.org, Mar 17 2017

Cc: jif@chromium.org
 Issue 677659  has been merged into this issue.

Sign in to add a comment