dist/ZeroClipboard.js
function(doNotReassessFlashSupport) {
    var effectiveScriptOrigin, frame, frameError, previousState = _flashState.sandboxed, isSandboxed = null;
    doNotReassessFlashSupport = doNotReassessFlashSupport === true;
    if (_pageIsFramed === false) {
      isSandboxed = false;
    } else {
      try {
        frame = window.frameElement || null;
      } catch (e) {
        frameError = {
          name: e.name,
          message: e.message
        };
      }
      if (frame && frame.nodeType === 1 && frame.nodeName === "IFRAME") {
        try {
          isSandboxed = frame.hasAttribute("sandbox");
        } catch (e) {
          isSandboxed = null;
        }
      } else {
        try {
          effectiveScriptOrigin = document.domain || null;
        } catch (e) {
          effectiveScriptOrigin = null;
        }
        if (effectiveScriptOrigin === null || frameError && frameError.name === "SecurityError" && /(^|[\s\(\[@])sandbox(es|ed|ing|[\s\.,!\)\]@]|$)/.test(frameError.message.toLowerCase())) {
          isSandboxed = true;
        }
      }
    }
    _flashState.sandboxed = isSandboxed;
    if (previousState !== isSandboxed && !doNotReassessFlashSupport) {
      _detectFlashSupport(_ActiveXObject);
    }
    return isSandboxed;
  }
function(doNotReassessFlashSupport) {
    var effectiveScriptOrigin, frame, frameError, previousState = _flashState.sandboxed, isSandboxed = null;
    doNotReassessFlashSupport = doNotReassessFlashSupport === true;
    if (_pageIsFramed === false) {
      isSandboxed = false;
    } else {
      try {
        frame = window.frameElement || null;
      } catch (e) {
        frameError = {
          name: e.name,
          message: e.message
        };
      }
      if (frame && frame.nodeType === 1 && frame.nodeName === "IFRAME") {
        try {
          isSandboxed = frame.hasAttribute("sandbox");
        } catch (e) {
          isSandboxed = null;
        }
      } else {
        try {
          effectiveScriptOrigin = document.domain || null;
        } catch (e) {
          effectiveScriptOrigin = null;
        }
        if (effectiveScriptOrigin === null || frameError && frameError.name === "SecurityError" && /(^|[\s\(\[@])sandbox(es|ed|ing|[\s\.,!\)\]@]|$)/.test(frameError.message.toLowerCase())) {
          isSandboxed = true;
        }
      }
    }
    _flashState.sandboxed = isSandboxed;
    if (previousState !== isSandboxed && !doNotReassessFlashSupport) {
      _detectFlashSupport(_ActiveXObject);
    }
    return isSandboxed;
  }
function ( doNotReassessFlashSupport ) { var effectiveScriptOrigin , frame , frameError , previousState = _flashState . sandboxed , isSandboxed = null ; doNotReassessFlashSupport = doNotReassessFlashSupport === true ; if ( _pageIsFramed === false ) { isSandboxed = false ; } else { try { frame = window . frameElement || null ; } catch ( e ) { frameError = { name : e . name , message : e . message } ; } if ( frame && frame . nodeType === 1 && frame . nodeName === "IFRAME" ) { try { isSandboxed = frame . hasAttribute ( "sandbox" ) ; } catch ( e ) { isSandboxed = null ; } } else { try { effectiveScriptOrigin = document . domain || null ; } catch ( e ) { effectiveScriptOrigin = null ; } if ( effectiveScriptOrigin === null || frameError && frameError . name === "SecurityError" && / (^|[\s\(\[@])sandbox(es|ed|ing|[\s\.,!\)\]@]|$) / . test ( frameError . message . toLowerCase ( ) ) ) { isSandboxed = true ; } } } _flashState . sandboxed = isSandboxed ; if ( previousState !== isSandboxed && ! doNotReassessFlashSupport ) { _detectFlashSupport ( _ActiveXObject ) ; } return isSandboxed ; }
Attempt to detect if ZeroClipboard is executing inside of a sandboxed iframe.
If it is, Flash Player cannot be used, so ZeroClipboard is dead in the water.

@see {@link http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Dec/0002.html}
@see {@link https://github.com/zeroclipboard/zeroclipboard/issues/511}
@see {@link http://zeroclipboard.github.io/test-iframes.html}

@returns `true` (is sandboxed), `false` (is not sandboxed), or `null` (uncertain)
@private
Attempt to detect if ZeroClipboard is executing inside of a sandboxed iframe . If it is Flash Player cannot be used so ZeroClipboard is dead in the water .