Commit 55b26ee7 authored by Michael Ratcliffe's avatar Michael Ratcliffe
Browse files

Bug 1366535 - convert uses of defer to new Promise in client/storage r=nchevobbe

MozReview-Commit-ID: LXFr5hAlHZe

--HG--
extra : rebase_source : c8245b1a3361ae276dec86e1553872ed31220f52
parent 82b8c9fe
Loading
Loading
Loading
Loading
+75 −77
Original line number Diff line number Diff line
@@ -201,9 +201,10 @@ var openStoragePanel = Task.async(function* (cb) {
 */
function waitForToolboxFrameFocus(toolbox) {
  info("Making sure that the toolbox's frame is focused");
  let def = promise.defer();
  waitForFocus(def.resolve, toolbox.win);
  return def.promise;

  return new Promise(resolve => {
    waitForFocus(resolve, toolbox.win);
  });
}

/**
@@ -274,18 +275,16 @@ function* finishTests() {

// Sends a click event on the passed DOM node in an async manner
function* click(node) {
  let def = promise.defer();

  node.scrollIntoView();

  return new Promise(resolve => {
    // We need setTimeout here to allow any scrolling to complete before clicking
    // the node.
    setTimeout(() => {
      node.click();
    def.resolve();
      resolve();
    }, 200);

  return def;
  });
}

/**
@@ -306,8 +305,8 @@ function* click(node) {
function variablesViewExpandTo(options) {
  let root = options.rootVariable;
  let expandTo = options.expandTo.split(".");
  let lastDeferred = promise.defer();

  return new Promise((resolve, reject) => {
    function getNext(prop) {
      let name = expandTo.shift();
      let newProp = prop.get(name);
@@ -318,12 +317,12 @@ function variablesViewExpandTo(options) {
          newProp.expand();
          getNext(newProp);
        } else {
        lastDeferred.reject(prop);
          reject(prop);
        }
      } else if (newProp) {
      lastDeferred.resolve(newProp);
        resolve(newProp);
      } else {
      lastDeferred.reject(prop);
        reject(prop);
      }
    }

@@ -331,10 +330,9 @@ function variablesViewExpandTo(options) {
      root.expand();
      getNext(root);
    } else {
    lastDeferred.resolve(root);
      resolve(root);
    }

  return lastDeferred.promise;
  });
}

/**
@@ -412,12 +410,12 @@ function findVariableViewProperties(ruleArray, parsed) {
  }

  function processExpandRules(rules) {
    return new Promise(resolve => {
      let rule = rules.shift();
      if (!rule) {
      return promise.resolve(null);
        resolve(null);
      }

    let deferred = promise.defer();
      let expandOptions = {
        rootVariable: gUI.view.getScopeAtIndex(parsed ? 1 : 0),
        expandTo: rule.name
@@ -433,12 +431,11 @@ function findVariableViewProperties(ruleArray, parsed) {
          rule.name = name;
        });
      }, function onFailure() {
      return promise.resolve(null);
        resolve(null);
      }).then(processExpandRules.bind(null, rules)).then(function () {
      deferred.resolve(null);
        resolve(null);
      });
    });

    return deferred.promise;
  }

  function onAllRulesMatched(rules) {
@@ -545,8 +542,10 @@ function* selectTableItem(id) {
    showAvailableIds();
  }

  let updated = gUI.once("sidebar-updated");

  yield click(target);
  yield gUI.once("sidebar-updated");
  yield updated;
}

/**
@@ -554,14 +553,13 @@ function* selectTableItem(id) {
 * @param {Object} target An observable object that either supports on/off or
 * addEventListener/removeEventListener
 * @param {String} eventName
 * @param {Boolean} [useCapture] for addEventListener/removeEventListener
 * @param {Boolean} useCapture Optional, for addEventListener/removeEventListener
 * @return A promise that resolves when the event has been handled
 */
function once(target, eventName, useCapture = false) {
  info("Waiting for event: '" + eventName + "' on " + target + ".");

  let deferred = promise.defer();

  return new Promise(resolve => {
    for (let [add, remove] of [
      ["addEventListener", "removeEventListener"],
      ["addListener", "removeListener"],
@@ -569,14 +567,14 @@ function once(target, eventName, useCapture = false) {
    ]) {
      if ((add in target) && (remove in target)) {
        target[add](eventName, function onEvent(...aArgs) {
          info("Got event: '" + eventName + "' on " + target + ".");
          target[remove](eventName, onEvent, useCapture);
        deferred.resolve.apply(deferred, aArgs);
          resolve(...aArgs);
        }, useCapture);
        break;
      }
    }

  return deferred.promise;
  });
}

/**