Compare commits

...

6 Commits

Author SHA1 Message Date
Danny Coates
7013f5cf80 v2.6.1 2018-11-14 16:58:45 -08:00
Danny Coates
6184a70ba4 fixes #1005
The upstream gcp aggressively closes the connection once it has
received Content-Length bytes. However the @google-cloud/storage
module doesn't handle this well and emits no event in this case.
We were setting Content-Length because it's slightly more
efficient and was important for our download progress
bar (not anymore). The download should function fine without
setting the Content-Length, and allows the storage stream to finish
before closing the upstream socket.
2018-11-14 16:38:46 -08:00
Rodrigo
e264d0da62 Pontoon: Update Portuguese (Portugal) (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2018-11-08 22:54:41 +00:00
Anesu Chiodza
23a6e338e8 Pontoon: Update Shona (sn) localization of Test Pilot: Firefox Send
Localization authors:
- Anesu Chiodza <anesuchiodza@gmail.com>
2018-11-08 18:13:26 +00:00
Anesu Chiodza
2c1dfdbe07 Pontoon: Update Shona (sn) localization of Test Pilot: Firefox Send
Localization authors:
- Anesu Chiodza <anesuchiodza@gmail.com>
2018-11-08 17:53:30 +00:00
pyup.io bot
994e77a38b Scheduled weekly dependency update for week 44 (#996)
* Update selenium from 3.14.1 to 3.141.0

* Update pytest from 3.9.3 to 3.10.0

* Update pytest-xdist from 1.23.2 to 1.24.0
2018-11-07 15:20:00 +01:00
9 changed files with 17 additions and 22 deletions

View File

@@ -162,8 +162,8 @@ function download(id, keychain, onprogress, canceller) {
}); });
xhr.addEventListener('progress', function(event) { xhr.addEventListener('progress', function(event) {
if (event.lengthComputable && event.target.status === 200) { if (event.target.status === 200) {
onprogress([event.loaded, event.total]); onprogress(event.loaded);
} }
}); });
const auth = await keychain.authHeader(); const auth = await keychain.authHeader();
@@ -171,7 +171,7 @@ function download(id, keychain, onprogress, canceller) {
xhr.setRequestHeader('Authorization', auth); xhr.setRequestHeader('Authorization', auth);
xhr.responseType = 'blob'; xhr.responseType = 'blob';
xhr.send(); xhr.send();
onprogress([0, 1]); onprogress(0);
}); });
} }

View File

@@ -47,7 +47,7 @@ export default class FileReceiver extends Nanobus {
this.fileInfo.name = meta.name; this.fileInfo.name = meta.name;
this.fileInfo.type = meta.type; this.fileInfo.type = meta.type;
this.fileInfo.iv = meta.iv; this.fileInfo.iv = meta.iv;
this.fileInfo.size = meta.size; this.fileInfo.size = +meta.size;
this.state = 'ready'; this.state = 'ready';
} }
@@ -57,7 +57,7 @@ export default class FileReceiver extends Nanobus {
this.fileInfo.id, this.fileInfo.id,
this.keychain, this.keychain,
p => { p => {
this.progress = p; this.progress = [p, this.fileInfo.size];
this.emit('progress'); this.emit('progress');
} }
); );

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "firefox-send", "name": "firefox-send",
"version": "2.6.0", "version": "2.6.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@@ -1,7 +1,7 @@
{ {
"name": "firefox-send", "name": "firefox-send",
"description": "File Sharing Experiment", "description": "File Sharing Experiment",
"version": "2.6.0", "version": "2.6.1",
"author": "Mozilla (https://mozilla.org)", "author": "Mozilla (https://mozilla.org)",
"repository": "mozilla/send", "repository": "mozilla/send",
"homepage": "https://github.com/mozilla/send/", "homepage": "https://github.com/mozilla/send/",

View File

@@ -91,7 +91,7 @@ deletePopupYes = Sim
deletePopupCancel = Cancelar deletePopupCancel = Cancelar
deleteButtonHover = Apagar deleteButtonHover = Apagar
copyUrlHover = Copiar URL copyUrlHover = Copiar URL
footerLinkLegal = Legal footerLinkLegal = Informações legais
# Test Pilot is a proper name and should not be localized. # Test Pilot is a proper name and should not be localized.
footerLinkAbout = Acerca do Test Pilot footerLinkAbout = Acerca do Test Pilot
footerLinkPrivacy = Privacidade footerLinkPrivacy = Privacidade

View File

@@ -0,0 +1,4 @@
# Firefox Send is a brand name and should not be localized.
title = Firefox Send
siteFeedback = Zvirikutaurwa
uploadPageLearnMore = Dzidza zvimwe

View File

@@ -6,13 +6,6 @@ module.exports = async function(req, res) {
const id = req.params.id; const id = req.params.id;
try { try {
const meta = req.meta; const meta = req.meta;
const contentLength = await storage.length(id);
res.writeHead(200, {
'Content-Disposition': 'attachment',
'Content-Type': 'application/octet-stream',
'Content-Length': contentLength,
'WWW-Authenticate': `send-v1 ${req.nonce}`
});
const file_stream = storage.get(id); const file_stream = storage.get(id);
let cancelled = false; let cancelled = false;
@@ -21,7 +14,7 @@ module.exports = async function(req, res) {
file_stream.destroy(); file_stream.destroy();
}); });
file_stream.on('end', async () => { file_stream.pipe(res).on('finish', async () => {
if (cancelled) { if (cancelled) {
return; return;
} }
@@ -38,8 +31,6 @@ module.exports = async function(req, res) {
log.info('StorageError:', id); log.info('StorageError:', id);
} }
}); });
file_stream.pipe(res);
} catch (e) { } catch (e) {
res.sendStatus(404); res.sendStatus(404);
} }

View File

@@ -13,7 +13,7 @@ class GCSStorage {
} }
getStream(id) { getStream(id) {
return this.bucket.file(id).createReadStream(); return this.bucket.file(id).createReadStream({ validation: false });
} }
set(id, file) { set(id, file) {

View File

@@ -1,8 +1,8 @@
selenium==3.14.1 selenium==3.141.0
flake8==3.6.0 flake8==3.6.0
flake8-isort==2.5 flake8-isort==2.5
PyPOM==2.2.0 PyPOM==2.2.0
pytest==3.9.3 pytest==3.10.0
pytest-html==1.19.0 pytest-html==1.19.0
pytest-selenium==1.14.0 pytest-selenium==1.14.0
pytest-xdist==1.23.2 pytest-xdist==1.24.0