/** * @license * Copyright The Closure Library Authors. * SPDX-License-Identifier: Apache-2.0 */ /** * @fileoverview Defines for goog.labs.userAgent. */ goog.module('goog.labs.userAgent'); /** * @define {string} Optional runtime override for the USE_CLIENT_HINTS flag. * If this is set (for example, to 'foo.bar') then any value of USE_CLIENT_HINTS * will be overridden by `globalThis.foo.bar` if it is non-null. * This flag will be removed in December 2021. */ const USE_CLIENT_HINTS_OVERRIDE = goog.define('goog.labs.userAgent.USE_CLIENT_HINTS_OVERRIDE', ''); /** * @define {boolean} If true, use navigator.userAgentData * TODO(user) Flip flag in 2021/12. */ const USE_CLIENT_HINTS = goog.define('goog.labs.userAgent.USE_CLIENT_HINTS', false); // TODO(user): Replace the IIFE with a simple null-coalescing operator. // NOTE: This can't be done with a helper function, or else we risk an inlining // back-off causing a huge code size regression if a non-inlined helper function // prevents the optimizer from detecting the (possibly large) dead code paths. /** @const {boolean} */ exports.USE_CLIENT_HINTS = (() => { const override = USE_CLIENT_HINTS_OVERRIDE ? goog.getObjectByName(USE_CLIENT_HINTS_OVERRIDE) : null; return override != null ? override : USE_CLIENT_HINTS; })();