mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
8933d9d799
This patch makes Firefox to spoof keyboardEvent.code, keyboardEvent.keycode and modifier states, for 'Shift', 'Alt', 'Control' and 'AltGraph', when 'privacy.resistFingerprinting' is true. Firefox will spoof keyboard events as a certain keyboard layout according to the content language of the document, for example, we use US English keyboard for English content. Right now, it only supports English contents, we will add more support for more languages later. The spoofing only affects content, chrome can still see real keyboard events. MozReview-Commit-ID: 40JPvwLmMMB --HG-- extra : rebase_source : 870224ba4f87b3e336c5b061ac6859dd1c48c4f2
72 lines
2.4 KiB
Plaintext
72 lines
2.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/.
|
|
*/
|
|
|
|
[Constructor(DOMString typeArg, optional KeyboardEventInit keyboardEventInitDict)]
|
|
interface KeyboardEvent : UIEvent
|
|
{
|
|
readonly attribute unsigned long charCode;
|
|
[NeedsCallerType]
|
|
readonly attribute unsigned long keyCode;
|
|
|
|
[NeedsCallerType]
|
|
readonly attribute boolean altKey;
|
|
[NeedsCallerType]
|
|
readonly attribute boolean ctrlKey;
|
|
[NeedsCallerType]
|
|
readonly attribute boolean shiftKey;
|
|
readonly attribute boolean metaKey;
|
|
|
|
[NeedsCallerType]
|
|
boolean getModifierState(DOMString key);
|
|
|
|
const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
|
|
const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
|
|
const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
|
|
const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
|
|
|
|
readonly attribute unsigned long location;
|
|
readonly attribute boolean repeat;
|
|
readonly attribute boolean isComposing;
|
|
|
|
readonly attribute DOMString key;
|
|
[NeedsCallerType]
|
|
readonly attribute DOMString code;
|
|
|
|
[Throws]
|
|
void initKeyboardEvent(DOMString typeArg,
|
|
optional boolean bubblesArg = false,
|
|
optional boolean cancelableArg = false,
|
|
optional Window? viewArg = null,
|
|
optional DOMString keyArg = "",
|
|
optional unsigned long locationArg = 0,
|
|
optional boolean ctrlKey = false,
|
|
optional boolean altKey = false,
|
|
optional boolean shiftKey = false,
|
|
optional boolean metaKey = false);
|
|
|
|
// This returns the initialized dictionary for generating a
|
|
// same-type keyboard event
|
|
[Cached, ChromeOnly, Constant]
|
|
readonly attribute KeyboardEventInit initDict;
|
|
};
|
|
|
|
dictionary KeyboardEventInit : EventModifierInit
|
|
{
|
|
DOMString key = "";
|
|
DOMString code = "";
|
|
unsigned long location = 0;
|
|
boolean repeat = false;
|
|
boolean isComposing = false;
|
|
|
|
// legacy attributes
|
|
unsigned long charCode = 0;
|
|
unsigned long keyCode = 0;
|
|
unsigned long which = 0;
|
|
};
|
|
|
|
// Mozilla extensions
|
|
KeyboardEvent implements KeyEvent;
|