mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
No Issue - Add navigator.webdriver attribute.
This patch adds an enumerable, configurable, readonly attribute "webdriver" to the Navigator object. The attribute is always false because we do not support WebDriver or scripted automation. The navigator.webdriver attribute is meant as an indication to web authors that a document is visited by WebDriver. It is important to stress that it is not meant as a way to detect that a website is being visited by a browser automation tool or bot, but as a tool for web documents to take alternate code paths. On the off-chance exposing navigator.webdriver turns out to be catastrophic, we put it behind a new preference dom.webdriver.enabled that controls its exposure.
This commit is contained in:
parent
1db268ef50
commit
6a200d5284
4 changed files with 22 additions and 0 deletions
|
|
@ -1532,6 +1532,14 @@ Navigator::Clipboard()
|
|||
return mClipboard;
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool
|
||||
Navigator::Webdriver()
|
||||
{
|
||||
// We don't support Selenium or marionette, so this is always false.
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
static nsCString
|
||||
ToCString(const nsString& aString)
|
||||
|
|
|
|||
|
|
@ -219,6 +219,8 @@ public:
|
|||
|
||||
dom::Clipboard* Clipboard();
|
||||
|
||||
static bool Webdriver();
|
||||
|
||||
void GetLanguages(nsTArray<nsString>& aLanguages);
|
||||
|
||||
bool MozE10sEnabled();
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
* https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension
|
||||
* http://www.w3.org/TR/beacon/#sec-beacon-method
|
||||
* https://html.spec.whatwg.org/#navigatorconcurrenthardware
|
||||
* https://w3c.github.io/webdriver/webdriver-spec.html#interface
|
||||
*
|
||||
* © Copyright 2004-2020 Apple Computer, Inc., Mozilla Foundation,
|
||||
* Opera Software ASA and Moonchild Productions. You are granted a license to use,
|
||||
|
|
@ -31,6 +32,7 @@ Navigator implements NavigatorStorageUtils;
|
|||
Navigator implements NavigatorConcurrentHardware;
|
||||
Navigator implements NavigatorStorage;
|
||||
Navigator implements NavigatorGlobalPrivacyControl;
|
||||
Navigator implements NavigatorAutomationInformation;
|
||||
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface NavigatorID {
|
||||
|
|
@ -334,3 +336,10 @@ partial interface Navigator {
|
|||
[Pref="dom.events.asyncClipboard", SecureContext, SameObject]
|
||||
readonly attribute Clipboard clipboard;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webdriver/webdriver-spec.html#interface
|
||||
[NoInterfaceObject, Exposed=Window]
|
||||
interface NavigatorAutomationInformation {
|
||||
[Pref="dom.webdriver.enabled"]
|
||||
readonly attribute boolean webdriver;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5259,6 +5259,9 @@ pref("media.seekToNextFrame.enabled", true);
|
|||
// return the maximum number of cores that navigator.hardwareConcurrency returns
|
||||
pref("dom.maxHardwareConcurrency", 16);
|
||||
|
||||
// Exposes the navigator.webdriver attribute.
|
||||
pref("dom.webdriver.enabled", true);
|
||||
|
||||
// Shutdown the async osfile worker if it's no longer needed.
|
||||
pref("osfile.reset_worker_delay", 30000);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue