reply = function reply(e) {
          if (!sanitize(e, childOrigin)) return false;

          if (e.data.postmate === 'handshake-reply') {
            clearInterval(responseInterval);

            {
              log('Parent: Received handshake reply from Child');
            }

            _this4.parent.removeEventListener('message', reply, false);

            _this4.childOrigin = e.origin;

            {
              log('Parent: Saving Child origin', _this4.childOrigin);
            }

            return resolve(new ParentAPI(_this4));
          } // Might need to remove since parent might be receiving different messages
          // from different hosts


          {
            log('Parent: Invalid handshake reply');
          }

          return reject('Failed handshake');
        }
Begins the handshake strategy
@param  {String} url The URL to send a handshake request to
@return {Promise}     Promise that resolves when the handshake is complete