diff --git a/src/vector/getconfig.js b/src/vector/getconfig.js index f3e7bea168..239ba8067a 100644 --- a/src/vector/getconfig.js +++ b/src/vector/getconfig.js @@ -33,35 +33,33 @@ export async function getVectorConfig(relativeLocation) { } function getConfig(configJsonFilename) { - let deferred = Promise.defer(); - - request( - { method: "GET", url: configJsonFilename }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - // Lack of a config isn't an error, we should - // just use the defaults. - // Also treat a blank config as no config, assuming - // the status code is 0, because we don't get 404s - // from file: URIs so this is the only way we can - // not fail if the file doesn't exist when loading - // from a file:// URI. - if (response) { - if (response.status == 404 || (response.status == 0 && body == '')) { - deferred.resolve({}); + return new Promise(function(resolve, reject) { + request( + { method: "GET", url: configJsonFilename }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + // Lack of a config isn't an error, we should + // just use the defaults. + // Also treat a blank config as no config, assuming + // the status code is 0, because we don't get 404s + // from file: URIs so this is the only way we can + // not fail if the file doesn't exist when loading + // from a file:// URI. + if (response) { + if (response.status == 404 || (response.status == 0 && body == '')) { + resolve({}); + } } + reject({err: err, response: response}); + return; } - deferred.reject({err: err, response: response}); - return; - } - // We parse the JSON ourselves rather than use the JSON - // parameter, since this throws a parse error on empty - // which breaks if there's no config.json and we're - // loading from the filesystem (see above). - deferred.resolve(JSON.parse(body)); - } - ); - - return deferred.promise; + // We parse the JSON ourselves rather than use the JSON + // parameter, since this throws a parse error on empty + // which breaks if there's no config.json and we're + // loading from the filesystem (see above). + resolve(JSON.parse(body)); + }, + ); + }); } diff --git a/src/vector/index.js b/src/vector/index.js index fffdac1b05..ec3cb4dc81 100644 --- a/src/vector/index.js +++ b/src/vector/index.js @@ -60,12 +60,12 @@ import CallHandler from 'matrix-react-sdk/lib/CallHandler'; import {getVectorConfig} from './getconfig'; +let lastLocationHashSet = null; + // Disable warnings for now: we use deprecated bluebird functions // and need to migrate, but they spam the console with warnings. Promise.config({warnings: false}); -let lastLocationHashSet = null; - function initRageshake() { rageshake.init().then(() => { console.log("Initialised rageshake: See https://bugs.chromium.org/p/chromium/issues/detail?id=583193 to fix line numbers on Chrome."); @@ -179,37 +179,35 @@ function makeRegistrationUrl(params) { } function getConfig(configJsonFilename) { - let deferred = Promise.defer(); - - request( - { method: "GET", url: configJsonFilename }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - // Lack of a config isn't an error, we should - // just use the defaults. - // Also treat a blank config as no config, assuming - // the status code is 0, because we don't get 404s - // from file: URIs so this is the only way we can - // not fail if the file doesn't exist when loading - // from a file:// URI. - if (response) { - if (response.status == 404 || (response.status == 0 && body == '')) { - deferred.resolve({}); + return new Promise(function(resolve, reject) { + request( + { method: "GET", url: configJsonFilename }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + // Lack of a config isn't an error, we should + // just use the defaults. + // Also treat a blank config as no config, assuming + // the status code is 0, because we don't get 404s + // from file: URIs so this is the only way we can + // not fail if the file doesn't exist when loading + // from a file:// URI. + if (response) { + if (response.status == 404 || (response.status == 0 && body == '')) { + resolve({}); + } } + reject({err: err, response: response}); + return; } - deferred.reject({err: err, response: response}); - return; - } - // We parse the JSON ourselves rather than use the JSON - // parameter, since this throws a parse error on empty - // which breaks if there's no config.json and we're - // loading from the filesystem (see above). - deferred.resolve(JSON.parse(body)); - } - ); - - return deferred.promise; + // We parse the JSON ourselves rather than use the JSON + // parameter, since this throws a parse error on empty + // which breaks if there's no config.json and we're + // loading from the filesystem (see above). + resolve(JSON.parse(body)); + }, + ); + }); } function onTokenLoginCompleted() { diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js index a3ea12e866..cfe5134662 100644 --- a/src/vector/platform/WebPlatform.js +++ b/src/vector/platform/WebPlatform.js @@ -68,11 +68,11 @@ export default class WebPlatform extends VectorBasePlatform { // annoyingly, the latest spec says this returns a // promise, but this is only supported in Chrome 46 // and Firefox 47, so adapt the callback API. - const defer = Promise.defer(); - global.Notification.requestPermission((result) => { - defer.resolve(result); + return new Promise(function(resolve, reject) { + global.Notification.requestPermission((result) => { + resolve(result); + }); }); - return defer.promise; } displayNotification(title: string, msg: string, avatarUrl: string, room: Object) { @@ -103,31 +103,31 @@ export default class WebPlatform extends VectorBasePlatform { } _getVersion(): Promise { - const deferred = Promise.defer(); - // We add a cachebuster to the request to make sure that we know about // the most recent version on the origin server. That might not // actually be the version we'd get on a reload (particularly in the // presence of intermediate caching proxies), but still: we're trying // to tell the user that there is a new version. - request( - { - method: "GET", - url: "version", - qs: { cachebuster: Date.now() }, - }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - if (err === null) err = { status: response.status }; - deferred.reject(err); - return; - } - const ver = body.trim(); - deferred.resolve(ver); - }, - ); - return deferred.promise; + return new Promise(function(resolve, reject) { + request( + { + method: "GET", + url: "version", + qs: { cachebuster: Date.now() }, + }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + if (err === null) err = { status: response.status }; + reject(err); + return; + } + + const ver = body.trim(); + resolve(ver); + }, + ); + }); } getAppVersion(): Promise {