Skip to content

Commit fe03c57

Browse files
committed
[js] Allow disabling the promise manager through a property setter.
Using the property setter will always take precedence over the environment variable. #2969
1 parent 363fcda commit fe03c57

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

javascript/node/selenium-webdriver/lib/promise.js

+18-1
Original file line numberDiff line numberDiff line change
@@ -1991,7 +1991,11 @@ class Scheduler {
19911991
}
19921992

19931993

1994+
let USE_PROMISE_MANAGER;
19941995
function usePromiseManager() {
1996+
if (typeof USE_PROMISE_MANAGER !== 'undefined') {
1997+
return !!USE_PROMISE_MANAGER;
1998+
}
19951999
return process.env['SELENIUM_PROMISE_MANAGER'] === undefined
19962000
|| !/^0|false$/i.test(process.env['SELENIUM_PROMISE_MANAGER']);
19972001
}
@@ -3243,8 +3247,21 @@ module.exports = {
32433247
setDefaultFlow: setDefaultFlow,
32443248
when: when,
32453249

3246-
/** @return {boolean} Whether the promise manager is enabled. */
3250+
/**
3251+
* Indicates whether the promise manager is currently enabled. When disabled,
3252+
* attempting to use the {@link ControlFlow} or {@link ManagedPromise Promise}
3253+
* classes will generate an error.
3254+
*
3255+
* The promise manager is currently enabled by default, but may be disabled
3256+
* by setting the environment variable `SELENIUM_PROMISE_MANAGER=0` or by
3257+
* setting this property to false. Setting this property will always take
3258+
* precedence ove the use of the environment variable.
3259+
*
3260+
* @return {boolean} Whether the promise manager is enabled.
3261+
* @see <https://github.com/SeleniumHQ/selenium/issues/2969>
3262+
*/
32473263
get USE_PROMISE_MANAGER() { return usePromiseManager(); },
3264+
set USE_PROMISE_MANAGER(/** boolean */value) { USE_PROMISE_MANAGER = value; },
32483265

32493266
get LONG_STACK_TRACES() { return LONG_STACK_TRACES; },
32503267
set LONG_STACK_TRACES(v) { LONG_STACK_TRACES = v; },

0 commit comments

Comments
 (0)