Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

FeatureFlags.js 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { getLogger } from '@jitsi/logger';
  2. import browser from '../browser';
  3. const logger = getLogger('FeatureFlags');
  4. /**
  5. * A global module for accessing information about different feature flags state.
  6. */
  7. class FeatureFlags {
  8. /**
  9. * Configures the module.
  10. *
  11. * @param {boolean} flags.sourceNameSignaling - Enables source names in the signaling.
  12. */
  13. init(flags) {
  14. this._sourceNameSignaling = Boolean(flags.sourceNameSignaling);
  15. this._sendMultipleVideoStreams = Boolean(flags.sendMultipleVideoStreams);
  16. // For Chromium, check if Unified plan is enabled.
  17. this._usesUnifiedPlan = browser.supportsUnifiedPlan()
  18. && (!browser.isChromiumBased() || (flags.enableUnifiedOnChrome ?? true));
  19. logger.info(`Source name signaling: ${this._sourceNameSignaling},`
  20. + ` Send multiple video streams: ${this._sendMultipleVideoStreams},`
  21. + ` uses Unified plan: ${this._usesUnifiedPlan}`);
  22. }
  23. /**
  24. * Checks if multiple local video streams support is enabled.
  25. *
  26. * @returns {boolean}
  27. */
  28. isMultiStreamSupportEnabled() {
  29. return this._sourceNameSignaling && this._sendMultipleVideoStreams && this._usesUnifiedPlan;
  30. }
  31. /**
  32. * Checks if the source name signaling is enabled.
  33. *
  34. * @returns {boolean}
  35. */
  36. isSourceNameSignalingEnabled() {
  37. return this._sourceNameSignaling;
  38. }
  39. }
  40. export default new FeatureFlags();