mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-26 09:07:30 +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;
|
return mClipboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
bool
|
||||||
|
Navigator::Webdriver()
|
||||||
|
{
|
||||||
|
// We don't support Selenium or marionette, so this is always false.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef MOZ_EME
|
#ifdef MOZ_EME
|
||||||
static nsCString
|
static nsCString
|
||||||
ToCString(const nsString& aString)
|
ToCString(const nsString& aString)
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,8 @@ public:
|
||||||
|
|
||||||
dom::Clipboard* Clipboard();
|
dom::Clipboard* Clipboard();
|
||||||
|
|
||||||
|
static bool Webdriver();
|
||||||
|
|
||||||
void GetLanguages(nsTArray<nsString>& aLanguages);
|
void GetLanguages(nsTArray<nsString>& aLanguages);
|
||||||
|
|
||||||
bool MozE10sEnabled();
|
bool MozE10sEnabled();
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
* https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension
|
* https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension
|
||||||
* http://www.w3.org/TR/beacon/#sec-beacon-method
|
* http://www.w3.org/TR/beacon/#sec-beacon-method
|
||||||
* https://html.spec.whatwg.org/#navigatorconcurrenthardware
|
* https://html.spec.whatwg.org/#navigatorconcurrenthardware
|
||||||
|
* https://w3c.github.io/webdriver/webdriver-spec.html#interface
|
||||||
*
|
*
|
||||||
* © Copyright 2004-2020 Apple Computer, Inc., Mozilla Foundation,
|
* © Copyright 2004-2020 Apple Computer, Inc., Mozilla Foundation,
|
||||||
* Opera Software ASA and Moonchild Productions. You are granted a license to use,
|
* 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 NavigatorConcurrentHardware;
|
||||||
Navigator implements NavigatorStorage;
|
Navigator implements NavigatorStorage;
|
||||||
Navigator implements NavigatorGlobalPrivacyControl;
|
Navigator implements NavigatorGlobalPrivacyControl;
|
||||||
|
Navigator implements NavigatorAutomationInformation;
|
||||||
|
|
||||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||||
interface NavigatorID {
|
interface NavigatorID {
|
||||||
|
|
@ -334,3 +336,10 @@ partial interface Navigator {
|
||||||
[Pref="dom.events.asyncClipboard", SecureContext, SameObject]
|
[Pref="dom.events.asyncClipboard", SecureContext, SameObject]
|
||||||
readonly attribute Clipboard clipboard;
|
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
|
// return the maximum number of cores that navigator.hardwareConcurrency returns
|
||||||
pref("dom.maxHardwareConcurrency", 16);
|
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.
|
// Shutdown the async osfile worker if it's no longer needed.
|
||||||
pref("osfile.reset_worker_delay", 30000);
|
pref("osfile.reset_worker_delay", 30000);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue