code: function _handshake(retry) {
              // Remove load handler if needed
              _removeTimer.call(this, true);
  
              if (!this.disposed && !this.ready) {
                  if (!_isNativeMessageChannelSupported.call(this)) {
                      this.targetOrigin = this.targetOrigin || PostMessageUtilities.resolveOrigin(this.target) || "*";
                  }
  
                  if (!this.hosted) {
                      if (_isNativeMessageChannelSupported.call(this)) {
                          try {
                              if (this.neutered) {
                                  this.channelFactory();
                              }
                              this.target.contentWindow.postMessage(this.token, this.targetOrigin, [ this.dispatcher ]);
                              this.neutered = true;
                          }
                          catch(ex) {
                              /* istanbul ignore next  */
                              return false;
                          }
                      }
                      else {
                          this.target.contentWindow.postMessage(this.token, this.targetOrigin);
                      }
                  }
              }
  
              if (!this.disposed && !this.ready && retry) {
                  if (0 < this.handshakeAttempts) {
                      this.handshakeAttempts--;
                      this.rmtimer = PostMessageUtilities.delay(_handshake.bind(this, retry), retry);
                  }
                  else {
                      this.onready(new Error("Loading: Operation Timeout!"));
                  }
              }
  
              return true;
          }
docs: Method to hookup the initial "handshake" between the two parties (window and iframe) So they can start their communication
  @param {Number} retry - retry in milliseconds
  @returns {Boolean} indication if handshake initiated
  @private