gecko-dev/dom/webidl/PointerEvent.webidl
Tim Huang 0a30f56cd5 Bug 1363508 - Part 1: Spoofing pen/touch pointer events into mouse pointer events when fingerprinting resistance is on r=arthuredelstein,masayuki,smaug
The pointerType field in the pointer event will reveal the details of
users' hardware; this is a fingerprinting vector. So, we would spoof all
types of pointer events into mouse type pointer events for protecting
users from browser fingerprinting when fingerprinting resistance is on.

In this patch, we would spoof the pointerType as well as other fields
that mouse pointer events don't support, like pressure, tiltX/Y and so
on when fingerprinting resistance is on.

Differential Revision: https://phabricator.services.mozilla.com/D6003

--HG--
extra : moz-landing-system : lando
2018-10-09 11:55:43 +00:00

53 lines
1.4 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* For more information see nsIPointerEvent.idl.
*
* Portions Copyright 2013 Microsoft Open Technologies, Inc. */
interface WindowProxy;
[Pref="dom.w3c_pointer_events.enabled",
Constructor(DOMString type, optional PointerEventInit eventInitDict)]
interface PointerEvent : MouseEvent
{
readonly attribute long pointerId;
[NeedsCallerType]
readonly attribute long width;
[NeedsCallerType]
readonly attribute long height;
[NeedsCallerType]
readonly attribute float pressure;
[NeedsCallerType]
readonly attribute float tangentialPressure;
[NeedsCallerType]
readonly attribute long tiltX;
[NeedsCallerType]
readonly attribute long tiltY;
[NeedsCallerType]
readonly attribute long twist;
[NeedsCallerType]
readonly attribute DOMString pointerType;
readonly attribute boolean isPrimary;
sequence<PointerEvent> getCoalescedEvents();
};
dictionary PointerEventInit : MouseEventInit
{
long pointerId = 0;
long width = 1;
long height = 1;
float pressure = 0;
float tangentialPressure = 0;
long tiltX = 0;
long tiltY = 0;
long twist = 0;
DOMString pointerType = "";
boolean isPrimary = false;
sequence<PointerEvent> coalescedEvents = [];
};