- From: Peter Beverloo <beverloo@google.com>
- Date: Thu, 10 Oct 2013 09:26:15 +0200
- To: Frederick.Hirsch@nokia.com
- Cc: mvanouwerkerk@chromium.org, public-device-apis@w3.org
- Message-ID: <CALt3x6kiAnvFELZBPqEiUGvUbmxO-G+1hLf+0karLtkG6YVDUw@mail.gmail.com>
On Tue, Oct 8, 2013 at 9:20 PM, <Frederick.Hirsch@nokia.com> wrote:
> I believe one reason for not doing this is to reduce the possibility of
> fingerprinting through feature detection.
>
The device being used by the user is already included in the user agent.
It's not hard to set up a mapping to see which devices have a vibrator.
The fingerprinting risk then comes down to (1) user-agent specific limits
for the duration, and (2) whether vibration is allowed in the current
context. Both sound reasonable to expose..
Is there a strong reason to need to know whether or not vibration is
> enabled, when asking for vibration with the expectation for best effort may
> be good enough?
>
> What is the use case for the change? If vibration is not possible what
> would be reasonable fallbacks (flash the screen a la emacs)?
>
Being able to provide alternative behavior when vibration is used as a form
of haptic feedback.
Peter
regards, Frederick
>
> Frederick Hirsch
> Nokia
>
>
>
> On Oct 8, 2013, at 12:34 PM, ext Michael van Ouwerkerk wrote:
>
> Hi, I'm currently working on implementing the Vibration API in Blink and
> Chromium, and I'd like to propose making feature detection possible.
>
> In its current form, the Vibration API exposes the navigator.vibrate
> method. When you call it with valid arguments, it returns true. However,
> this only indicates that the arguments were valid. It does not mean any
> vibrations have been scheduled. Nothing might happen, perhaps because there
> is no hardware for it. Do all phones have such hardware? How about tablets,
> or laptops? Or, perhaps there is no permission for vibrating right now.
>
> To give web developers an opportunity to provide a fallback for their
> users, I think it should be possible to detect when they will not be able
> to vibrate the device.
>
> The simplest approach might appear to just not expose navigator.vibrate
> when vibration is not available. However, this would require that the
> browser detect availability of vibration in the startup path. It might be
> an asynchronous process as well. This is a problem for implementation in
> the browser.
>
> My proposal is that we make use of Promises, so that the setup is
> asynchronous, and it is clear how to handle failure.
>
> In JavaScript, it would look something like this:
> window.navigator.getVibrator().then(function(vibrator) {
> vibrator.vibrate([100, 0, 50]);
> }, function() {
> // No vibrator is available. Provide fallback or exit.
> });
>
> What do you think?
>
> Regards,
>
> Michael van Ouwerkerk
>
>
>
Received on Thursday, 10 October 2013 07:26:43 UTC