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

Issue 685856 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Feature

Blocked on:
issue 791218



Sign in to add a comment

Physical Web Sharing Feature

Project Member Reported by iankc@google.com, Jan 26 2017

Issue description

Chrome Version       : 57

What is the expected result?
Convert the phone to a Bluetooth Low Energy beacon to share urls from websites and applications.
 
Cc: hannahs@chromium.org k...@chromium.org
Labels: -Type-Bug Needs-Feedback OS-Android Type-Feature
Owner: k...@chromium.org
Status: Assigned (was: Unconfirmed)
CC'ing relevant people to this bug and assigning to Kingston to figure out what we want to do here.

For context, iankc@ is trying to add a physical web sharing item to Chrome's main menu.  IIUC there is generally a lot of pushback for doing something like this because and we're basically trying to shrink the menu as it exists now.

Potential alternative: Add to the sharing menu item like print?

Comment 2 by cco3@chromium.org, Jan 30 2017

The alternative of putting something in the share sheet is actually our main plan.  However, we can't develop behind a feature flag if we do that through the manifest, so it seemed best to temporarily have a hidden feature that touched the main menu.

However, since dtrainor mentioned "print", this is certainly something we could look into.  I didn't realize there were chrome specific items in the chrome share sheet.

Comment 3 by k...@chromium.org, Jan 30 2017

Cc: tedc...@chromium.org
+tedchoc

Hi Ian - the "print" option sounds like the most reasonable option here as I believe it will allow users to be able to select it when the Chrome share sheet is open but not present in other share sheets.

The relevant CL: https://chromium.googlesource.com/chromium/src.git/+/710a8ec6580cdabd681a20d19f61851cf1976e15

That said - is this proposal to make the phone an on-going BLE beacon or just a temporary state?

Comment 4 by iankc@google.com, Jan 31 2017

Hello,

Cool, the plan is to make it an on-going BLE beacon that the user can turn off through a notification option.

Comment 5 by k...@chromium.org, Feb 1 2017

Ah I see. Do you have any docs/proposals about this? I'm guessing the end-user would also have to turn on physical web to get the link?

Comment 7 by k...@chromium.org, Feb 3 2017

Thanks for the design doc. That makes sense. How do you go about addressing discoverability of the feature? (I'm assuming the average user will not know what sharing to "Physical Web" means)

Also - it sounded like there were multiple options for how to incorporate it including GMSCore. Do you know if that was something they were open to?

Comment 8 by iankc@google.com, Feb 3 2017

The discoverability issue is still being thought about. We're pretty sure that some sort of an interstitial is necessary. We want to test it in the form of an activity or a dialog. By putting it behind a feature, we're leaving ourselves open to refining how we want to educate the user.

GMSCore was not enthusiastic about the feature for two reasons. First, the discovery issue is still open ended. Second, at the time we spoke with them, they still had physical web beacons at an alert level where it would have caused a notification. Understandably, that would be annoying. Since then, they've decremented the alert level to low.

We think that we're putting ourselves in a good position by putting this into chrome behind a feature with the default as disabled. Power users and knowledgeable users can use it without spamming others, and we can experiment on how to educate people in the future.

Comment 9 by k...@chromium.org, Feb 7 2017

Do you mean put it behind a feature flag?

I think we could feasibility make this work on the frontend side, but it sounds like we'd need to do some UX work first (which I assume would happen on your end?) and get UI Review approval.

Comment 10 by iankc@google.com, Feb 13 2017

Yes, I do mean behind a feature flag. Ok, I'll communicate with Rebecca Rolfe and get UI Review approval.

Comment 11 by k...@chromium.org, Feb 14 2017

Yeah - we don't tend to launch features behind flags without an idea of where they would be going so it may be good to have a full plan including user education in place.
Project Member

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

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

commit 5cbba721b07114d34c83086486bf9f4e5f69b5f2
Author: iankc <iankc@google.com>
Date: Tue Feb 14 21:04:00 2017

Create OptionalShareTargetsManager

This change creates a class to manage the optional share activities to
be displayed in the share intent chooser. It works by taking in classes
to be displayed and enables them as componenents. It also tracks the
state of the application to disable the components.

BUG= 685856 

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

[modify] https://crrev.com/5cbba721b07114d34c83086486bf9f4e5f69b5f2/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/5cbba721b07114d34c83086486bf9f4e5f69b5f2/chrome/android/java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java
[add] https://crrev.com/5cbba721b07114d34c83086486bf9f4e5f69b5f2/chrome/android/java/src/org/chromium/chrome/browser/share/OptionalShareTargetsManager.java
[modify] https://crrev.com/5cbba721b07114d34c83086486bf9f4e5f69b5f2/chrome/android/java_sources.gni

Project Member

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

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

commit bb3232b44160a665e67c55d9c43b74794c963279
Author: iankc <iankc@google.com>
Date: Sat Feb 18 02:21:28 2017

Add PhysicalWebShareActivity

This adds the PhysicalWebShareActivity, a empty-activity that will call
the PhysicalWebBroadcastService. It is invoked in the share intent
picker with the Physical Web logo, similiarly to the PrintShareActivity.

BUG= 685856 

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

[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/android/java/AndroidManifest.xml
[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
[add] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebShareActivity.java
[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/android/java/strings/android_chrome_strings.grd
[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/android/java_sources.gni
[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/browser/android/chrome_feature_list.cc
[modify] https://crrev.com/bb3232b44160a665e67c55d9c43b74794c963279/chrome/browser/android/chrome_feature_list.h

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 2 2017

Project Member

Comment 15 by bugdroid1@chromium.org, Mar 7 2017

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

commit f2ef57e81267138c5f8fabc2ea7044b59600238a
Author: iankc <iankc@google.com>
Date: Tue Mar 07 20:53:52 2017

Add PhysicalWebBroadcastService

This change creates the skeleton for the PhysicalWebBroadcastService, which will be the service that handles the Physical Web Sharing Feature.

Here is a background to what the Service will do:
This background service will start when the user activates the Physical Web Sharing item in the sharing chooser intent. If the URL received from the triggering Tab is validated by the Physical Web Service then it will encode the URL into an Eddystone URL and broadcast the URL through BLE.

To notify and provide the user with the ability to terminate broadcasting a persistent notification with a cancel button will be created. This cancel button will stop the service and will be the only way for the user to stop the service.

If the user terminates Chrome or the OS shuts down this service
mid-broadcasting, when the service get's restarted it will restart broadcasting as well by gathering the URL from shared preferences. This will create a seemless experience to the user by behaving as though broadcasting is not connected to the Chrome application.

BUG= 685856 

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

[modify] https://crrev.com/f2ef57e81267138c5f8fabc2ea7044b59600238a/chrome/android/java/AndroidManifest.xml
[add] https://crrev.com/f2ef57e81267138c5f8fabc2ea7044b59600238a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBroadcastService.java
[modify] https://crrev.com/f2ef57e81267138c5f8fabc2ea7044b59600238a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebShareActivity.java
[modify] https://crrev.com/f2ef57e81267138c5f8fabc2ea7044b59600238a/chrome/android/java_sources.gni

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 10 2017

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

commit f0cc0ad34d0e5491eefe7bafc5e9ed397427a6cb
Author: iankc <iankc@google.com>
Date: Fri Mar 10 23:31:41 2017

Add Bluetooth Checks to Service

This change adds two bluetooth checks. 1 is to determine if the hardware has bluetooth capabilities. 2 is to determine if bluetooth is on for the device. Both conditions must be met for the PhysicalWebSharing feature to be enabled.

BUG= 685856 

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

[modify] https://crrev.com/f0cc0ad34d0e5491eefe7bafc5e9ed397427a6cb/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
[modify] https://crrev.com/f0cc0ad34d0e5491eefe7bafc5e9ed397427a6cb/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebShareActivity.java

Project Member

Comment 17 by bugdroid1@chromium.org, Mar 14 2017

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

commit d7bfcc3fa626adb9876f2d0ef925131decd70aa8
Author: iankc <iankc@google.com>
Date: Tue Mar 14 21:39:34 2017

Create Broadcast Notification

This change adds notifications to the PhysicalWebBroadcastService. It is
the only way to disable broadcasting from a users perspective. It
implements a broadcastReceiver to catch when the user hits the stop
button on the notification.

The change from commit() to apply() in the fetchDisplayUrl actually
fixes a StrictMode violation.

BUG= 685856 

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

[modify] https://crrev.com/d7bfcc3fa626adb9876f2d0ef925131decd70aa8/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBroadcastService.java
[modify] https://crrev.com/d7bfcc3fa626adb9876f2d0ef925131decd70aa8/chrome/android/java/strings/android_chrome_strings.grd

Project Member

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

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

commit e59c7d48269c8900a94b9158680ca67a02c5e418
Author: iankc <iankc@google.com>
Date: Fri Mar 17 20:24:30 2017

Add Intent Filter to listen for BLE state change

This small change adds an intent listener to correctly handle when
bluetooth is turned off mid-broadcasting.

BUG= 685856 

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

[modify] https://crrev.com/e59c7d48269c8900a94b9158680ca67a02c5e418/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBroadcastService.java

Project Member

Comment 20 by bugdroid1@chromium.org, Mar 20 2017

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

commit 7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a
Author: iankc <iankc@google.com>
Date: Mon Mar 20 22:52:00 2017

Build a Bridge to Eddystone Encoder in Components

This change links the Eddystone Encoder in components to the android
Physical Web Share feature through the Java Native Interface.

Add Platform Independent Eddystone Encoder

This change creates an eddystone encoder in cpp, which can be used
across platforms for future physical web projects. Right now,
specifically, it will be used for Physical Web Sharing. Here are the
eddystone specs:
https://github.com/google/eddystone/blob/master/protocol-specification.md

BUG= 685856 

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

[modify] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBroadcastService.java
[modify] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/browser/BUILD.gn
[modify] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/browser/android/chrome_jni_registrar.cc
[add] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/browser/android/physical_web/eddystone_encoder_bridge.cc
[add] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/browser/android/physical_web/eddystone_encoder_bridge.h
[add] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/browser/android/physical_web/eddystone_encoder_bridge_unittest.cc
[modify] https://crrev.com/7c7a2ac892ad5377c3e25b26cba0c74c9be4c59a/chrome/test/BUILD.gn

Project Member

Comment 21 by bugdroid1@chromium.org, Mar 21 2017

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

commit d7323d358bb4c28778915daef88f72407e078bd0
Author: iankc <iankc@google.com>
Date: Tue Mar 21 19:54:48 2017

Add Interstitial for user consent

This change adds an interstitial to notify to the user that this URL
will be sent to Googles servers anonymously. The
PhysicalWebShareActivity start a dialogue because of the application
state listener that controls its componenet. For this reason, we send
the chromeactivity an ID which will launch an activity to show the
interstitial. This is done in the same way that the printshareactivity
does it.

BUG= 685856 

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

[modify] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java/AndroidManifest.xml
[modify] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
[modify] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBroadcastService.java
[modify] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebShareActivity.java
[add] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebShareEntryActivity.java
[modify] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java/strings/android_chrome_strings.grd
[modify] https://crrev.com/d7323d358bb4c28778915daef88f72407e078bd0/chrome/android/java_sources.gni

Comment 22 by k...@chromium.org, Mar 22 2017

Owner: iankc@google.com
Cc: candr...@chromium.org
+ Christine for test planning.

Thank you!

Comment 24 by k...@chromium.org, Apr 17 2017

Ian, are you still owning this feature?

Comment 25 by iankc@google.com, Apr 17 2017

No. The project is not longer happening and the code that has already been submitted into Chrome is being taken out.
Labels: Hotlist-UX-Backlog-Hannahs

Comment 27 by kbr@chromium.org, Dec 2 2017

Blockedon: 791218
Project Member

Comment 28 by sheriffbot@chromium.org, Dec 11 2017

Labels: Hotlist-Recharge-BouncingOwner
Owner: ----
Status: Untriaged (was: Assigned)
The assigned owner "iankc@google.com" is not able to receive e-mails, please re-triage.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Components: Internals>PhysicalWeb
Owner: cco3@chromium.org
Status: WontFix (was: Untriaged)

Sign in to add a comment