Compare commits

..

1044 Commits

Author SHA1 Message Date
Danny Coates 490a1e88eb don't disable copy while setting password. fixes #638 2017-11-14 19:07:24 -08:00
Danny Coates 2f8a3c9904 Merge pull request #641 from mozilla/banners
Added experiment for firefox download promo
2017-11-14 18:59:21 -08:00
Danny Coates e7fdf76120 Added experiment for firefox download promo 2017-11-14 12:24:54 -08:00
Sahithi d0d41b743a Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- Sahithi <sahithi.thinker@gmail.com>
2017-11-13 10:30:34 +00:00
Enol a2995411d6 Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-11-11 16:30:55 +00:00
Merike Sell 3246c4a621 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Merike Sell <merikes@gmail.com>
2017-11-11 14:10:36 +00:00
Juraj Cigáň 48faf929a4 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-11-10 22:50:36 +00:00
Danny Coates b7f922a999 Merge pull request #640 from mozilla/i586
use fluent-langneg for subtag support
2017-11-10 13:01:20 -08:00
Danny Coates bfcdf9340d use fluent-langneg for subtag support 2017-11-10 12:40:18 -08:00
Danny Coates 4ed515f5a3 updated deps 2017-11-09 15:07:03 -08:00
Danny Coates 84b2737ffb Merge pull request #639 from mozilla/i586
wrap number localization in try/catch
2017-11-09 14:17:11 -08:00
Danny Coates deabca5a94 wrap number localization in try/catch 2017-11-09 13:58:20 -08:00
صفا الفليج e9a49e23e8 Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- صفا الفليج <safa1996alfulaij@gmail.com>
2017-11-09 16:31:40 +00:00
Danny Coates cfdef23365 v2.0.0 2017-11-07 21:31:12 -08:00
Juan Esteban Ajsivinac Sián 7c4b6a9de4 Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-11-07 23:11:16 +00:00
Elisa X bb8866f73f Pontoon: Update Spanish (Mexico) (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Elisa X. <ee.sf2000@gmail.com>
2017-11-07 17:51:47 +00:00
Fjoerfoks 33c42648ef Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-11-07 13:51:57 +00:00
Selim Şumlu 7feddd2eee Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-11-07 11:10:57 +00:00
Georgianizator 1344b84cf5 Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2017-11-07 11:10:54 +00:00
Sara Todaro ef03b750c5 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Sara Todaro <sara.todaro@mozillaitalia.org>
2017-11-07 10:10:32 +00:00
Rhoslyn Prys 0c07d78a37 Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-11-07 09:10:43 +00:00
Balázs Meskó b5885e446c Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-11-07 09:10:40 +00:00
Marko Andrejić 0fa3d4481a Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Marko Andrejić <marko.andrejic93@gmail.com>
2017-11-07 08:31:30 +00:00
Kohei Yoshino 49e7c2e05b Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-11-07 07:11:28 +00:00
Nihad 2dc7d046ef Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-11-07 07:11:26 +00:00
Frederick Villaluna 3e0bd41efd Pontoon: Update Tagalog (tl) localization of Test Pilot: Firefox Send
Localization authors:
- Frederick Villaluna <fv_comscie@yahoo.com>
2017-11-07 02:51:16 +00:00
ravmn 929eaca2d8 Pontoon: Update Spanish (Chile) (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-11-07 01:51:10 +00:00
manxmensch 60517c5ab6 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-11-07 01:51:08 +00:00
Bjørn I 97a8a2b305 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-11-06 22:31:54 +00:00
Maykon Chagas 8fc54bdbe2 Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-11-06 22:10:59 +00:00
Danny Coates 6ff251b24a fixes #319 - unsupported redirect 2017-11-06 14:09:23 -08:00
Michael Wolf 7237800a91 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-11-06 21:51:15 +00:00
Michael Wolf b4cc8e92c7 Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-11-06 21:51:12 +00:00
Danny Coates 2e233da16d unsupport MS Edge (for now, sorry) and some http header nits 2017-11-06 13:36:56 -08:00
Michael Wolf b703f78db9 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-11-06 21:32:06 +00:00
Marcelo Poli 13e792cf4d Pontoon: Update Spanish (Argentina) (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-11-06 21:11:09 +00:00
Ton 552c2d74f3 Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Ton <tonnes.mb@gmail.com>
2017-11-06 21:11:06 +00:00
Håvar Henriksen 593f23b021 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-11-06 20:10:55 +00:00
Andreas Pettersson 1baf83bac3 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
2017-11-06 19:31:27 +00:00
Lan Glad d43ca3190e Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Lan Glad <upwinxp@gmail.com>
2017-11-06 19:11:14 +00:00
Victor Bychek c4c7860876 Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Victor Bychek <a@bychek.ru>
2017-11-06 19:11:06 +00:00
Michael Köhler 0decdeb37c Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-11-06 18:51:08 +00:00
Pin-guang Chen 47505dcc31 Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-11-06 18:51:03 +00:00
avelper e71d6e792b Pontoon: Update Spanish (Spain) (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-11-06 18:32:04 +00:00
Rodrigo 29796cfec8 Pontoon: Update Portuguese (Portugal) (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-11-06 18:31:56 +00:00
Filip Hruška 4bdf255c3a Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Filip Hruška <fhr@fhrnet.eu>
2017-11-06 18:31:49 +00:00
Théo Chevalier 11efe8b8d1 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-11-06 18:10:45 +00:00
YFdyh000 3dd2d09584 Pontoon: Update Chinese (China) (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-11-06 18:10:41 +00:00
Danny Coates ed4e8e8f25 Merge pull request #633 from ehuggett/563-regres
Keyboard navigation/visual feedback regression
2017-11-06 10:01:43 -08:00
Danny Coates 181a74df88 Merge pull request #632 from mozilla/pwd
display the 'add password' button only when the input field isn't empty
2017-11-06 09:41:06 -08:00
ehuggett 166b2f3a52 fix keyboard navigation/visual feedback for upload 2017-11-05 13:00:58 +00:00
Muḥend Belqasem bd5cdc52f9 Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Muḥend Belqasem <belkacem77@gmail.com>
2017-11-04 20:31:17 +00:00
Sander Lepik 5d0318c102 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Sander Lepik <sander.lepik@eesti.ee>
2017-11-04 19:11:01 +00:00
Danny Coates 17adc644fb display the 'add password' button only when the input field isn't empty 2017-11-02 14:27:54 -07:00
صفا الفليج f48159dc0b Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- Abdalrahman Hwoij <howij1995@gmail.com>
- صفا الفليج <safa1996alfulaij@gmail.com>
2017-11-02 18:31:51 +00:00
Danny Coates 360697c034 Merge pull request #626 from ehuggett/623-password-field
Partial fix for #623
2017-11-02 11:02:58 -07:00
ravmn 45dd833b27 Pontoon: Update Spanish (Chile) (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-11-02 01:30:49 +00:00
ehuggett 98491eed01 set autocomplete off for addPassword checkbox 2017-11-02 00:08:36 +00:00
ehuggett fdafc1c59e minor fix for togglePasswordInput 2017-11-01 23:36:45 +00:00
Марко Костић (Marko Kostić) a32638ed4c Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2017-11-01 17:30:55 +00:00
avelper 39080a6046 Pontoon: Update Spanish (Spain) (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-11-01 11:51:43 +00:00
Frederick Villaluna a124d36714 Pontoon: Update Tagalog (tl) localization of Test Pilot: Firefox Send
Localization authors:
- Frederick Villaluna <fv_comscie@yahoo.com>
2017-11-01 09:30:46 +00:00
Frederick Villaluna 7f9e619643 Pontoon: Update Tagalog (tl) localization of Test Pilot: Firefox Send
Localization authors:
- Frederick Villaluna <fv_comscie@yahoo.com>
2017-11-01 09:10:58 +00:00
Marcelo Poli db12f2f5c8 Pontoon: Update Spanish (Argentina) (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-10-31 21:51:16 +00:00
Georgianizator 415e0b70f3 Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2017-10-31 21:11:40 +00:00
Jakub Rychlý 0e4b1e5ec7 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Jakub Rychlý <jrychly@jakubrychly.cz>
2017-10-31 20:11:34 +00:00
Danny Coates 054a97371c Merge pull request #624 from ehuggett/nit
set a default MIME type in file metadata
2017-10-31 11:09:01 -07:00
Roberto Alvarado 2b25b6a6ea Pontoon: Update Spanish (Mexico) (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-10-31 16:52:02 +00:00
Francesco Lodolo 780ed3120e Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-10-31 16:31:20 +00:00
Bjørn I bdd3cbd4c7 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-10-31 15:11:35 +00:00
Rhoslyn Prys 0c8013038f Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-10-31 13:54:03 +00:00
Selim Şumlu c020d59c56 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-10-31 13:53:56 +00:00
Juraj Cigáň a5c336494b Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-10-31 13:53:51 +00:00
Luiz Carlos de Morais aaa4655f45 Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Luiz Carlos de Morais <lcom_flip@hotmail.com>
2017-10-31 13:53:48 +00:00
reza.habibi2008 ed18ec0bc5 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- reza.habibi2008 <reza.habibi2008@gmail.com>
2017-10-31 13:53:42 +00:00
Håvar Henriksen 1de43f31b6 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-10-31 13:53:38 +00:00
manxmensch 1a04c86edd Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-10-31 13:53:34 +00:00
YFdyh000 2bbdcae82e Pontoon: Update Chinese (China) (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-10-31 13:53:30 +00:00
Nihad 9b0aa5d601 Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-31 13:53:27 +00:00
Pin-guang Chen cdc261e30a Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-10-31 04:51:09 +00:00
Enol 09133a66b0 Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-10-31 00:31:16 +00:00
Matjaž Horvat 64f1a31533 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-10-30 23:11:54 +00:00
manxmensch 9a92a50a5f Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-10-30 23:11:40 +00:00
Juan Esteban Ajsivinac Sián 2afd93e82f Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-10-30 23:11:36 +00:00
Kohei Yoshino cb62cc1e9d Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-10-30 23:11:25 +00:00
Luna Jernberg 2cd3fc5af9 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Luna Jernberg <bittin@cafe8bitar.se>
2017-10-30 22:51:11 +00:00
Michael Köhler bac710a17f Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-10-30 21:30:48 +00:00
Ton fb8b0f78ca Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Ton <tonnes.mb@gmail.com>
2017-10-30 21:11:34 +00:00
Michael Wolf e18ce15753 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-10-30 20:51:39 +00:00
Michael Wolf ed8ce9e3ca Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-10-30 20:51:36 +00:00
Victor Bychek af5ef04115 Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Victor Bychek <a@bychek.ru>
2017-10-30 20:51:33 +00:00
Théo Chevalier 9530a3df52 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-10-30 20:51:29 +00:00
albertdcastro 2794ac653f Pontoon: Update Portuguese (Portugal) (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- albertdcastro <albertdcastro@gmail.com>
2017-10-30 20:30:56 +00:00
Balázs Meskó 43eb758d73 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-10-30 20:30:53 +00:00
Fjoerfoks d0364cd101 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-10-30 20:30:50 +00:00
Danny Coates 6a008bf312 Merge pull request #612 from mozilla/password-nits
Password UI nits
2017-10-30 12:59:29 -07:00
Danny Coates dfb271410c use relative path for the url() in css so webpack can substitute the hashed asset name 2017-10-30 12:54:59 -07:00
Danny Coates 789d67209c Merge pull request #617 from mozilla/drop-nav
allow drag and drop if navigating from shared page
2017-10-30 10:20:56 -07:00
Erica a31f6b75d9 Merge pull request #608 from mozilla/link-copy
disable copying link when password not completed
2017-10-30 10:42:09 -04:00
Erica Wright f814427a7d clear password input on toggle off 2017-10-30 10:29:49 -04:00
Jae Hyeon Park b0307e92d4 Pontoon: Update Korean (ko) localization of Test Pilot: Firefox Send
Localization authors:
- Hyeonseok Shin <hyeonseok@gmail.com>
- Jae Hyeon Park <wogus150@naver.com>
2017-10-30 02:30:30 +00:00
Cristian Silaghi 7fa3d69aa1 Pontoon: Update Romanian (ro) localization of Test Pilot: Firefox Send
Localization authors:
- Cristian Silaghi <cristian.silaghi@mozilla.ro>
2017-10-29 16:51:08 +00:00
ehuggett 58555a6b85 set a default MIME type 2017-10-27 22:41:20 +01:00
Abdalrahman Hwoij 52113395db Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- Abdalrahman Hwoij <howij1995@gmail.com>
- صفا الفليج <safa1996alfulaij@gmail.com>
2017-10-26 18:51:13 +00:00
صفا الفليج 8dd1309c21 Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- Abdalrahman Hwoij <howij1995@gmail.com>
- صفا الفليج <safa1996alfulaij@gmail.com>
2017-10-26 18:31:41 +00:00
Erica Wright 202e428412 display spaces as they were originally in the password 2017-10-25 15:48:01 -04:00
Erica Wright 6e7ed3cea3 password maxlength and wrapping 2017-10-25 10:50:37 -04:00
Erica Wright 41cb49141b allow drag and drop if navigating from shared page 2017-10-24 16:45:05 -04:00
Erica Wright 82a8283b6e remove unsightly auto-applied margin from safari buttons 2017-10-24 15:08:57 -04:00
Erica Wright a5d28adc44 focus password field when clicking password checkbox 2017-10-24 12:47:03 -04:00
Erica Wright 82e206bccf password input at smaller screens 2017-10-24 12:36:09 -04:00
Erica Wright 1e4d6646c6 style password checkbox 2017-10-23 15:36:05 -04:00
Erica acbf9fc32f Merge pull request #605 from mozilla/password-alignment
align the "Password" and "Copy to clipboard" fields.
2017-10-23 13:31:20 -04:00
Erica Wright 046f227003 disable copying link when password not completed 2017-10-23 09:53:12 -04:00
eljuno 50ac9e32be Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- eljuno <eljunotrie_anggoro@yahoo.co.id>
2017-10-21 17:10:38 +00:00
Erica Wright 3459dcaa15 align the "Password" and "Copy to clipboard" fields. 2017-10-20 16:21:04 -04:00
Enol 9410defab6 Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-10-19 21:31:42 +00:00
Nihad b5a26e11f8 Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 09:11:14 +00:00
Nihad c51481628d Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 08:51:17 +00:00
Nihad 24fa51a12c Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 07:51:22 +00:00
Nihad 7328520d05 Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 07:31:28 +00:00
Nihad 409d206f1e Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 07:11:04 +00:00
Nihad b0b393f3d9 Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 06:51:09 +00:00
Nihad c4499088c8 Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 06:31:38 +00:00
Nihad 4cccd6ac5c Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Nihad <nihad.suljic92@gmail.com>
2017-10-19 06:10:50 +00:00
Michal Stanke 188b28fce3 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Michal Stanke <mstanke@mozilla.cz>
2017-10-17 12:31:48 +00:00
Sander Lepik 24adda6c7d Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Sander Lepik <sander.lepik@eesti.ee>
2017-10-16 20:10:49 +00:00
Sander Lepik 4b49302fbe Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Sander Lepik <sander.lepik@eesti.ee>
2017-10-16 19:51:40 +00:00
Emin Mastizada 402ab350de Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2017-10-16 02:51:20 +00:00
Juraj Cigáň 47b68770af Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-10-15 21:31:54 +00:00
Marcelo Poli 60aa16a327 Pontoon: Update Spanish (Argentina) (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-10-15 18:10:48 +00:00
Μιχάλης 5702a4806b Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Jim Spentzos <jamesspentzos@hotmail.com>
- Μιχάλης <mikem132@protonmail.com>
2017-10-14 22:10:56 +00:00
mirzet.omerovic.1992 74c4bdb660 Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- mirzet.omerovic.1992 <mirzet.omerovic.1992@gmail.com>
2017-10-14 12:10:55 +00:00
mirzet.omerovic.1992 203a2cf7fb Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- mirzet.omerovic.1992 <mirzet.omerovic.1992@gmail.com>
2017-10-14 11:51:07 +00:00
eljuno 1faa2733b3 Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- eljuno <eljunotrie_anggoro@yahoo.co.id>
2017-10-13 18:10:42 +00:00
Georgianizator ffa432a876 Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2017-10-13 02:51:30 +00:00
Georgianizator 009fd29265 Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2017-10-13 02:31:25 +00:00
Georgianizator 8f05c2324e Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2017-10-13 02:10:59 +00:00
Michael Wolf e1ab515883 Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-10-12 20:11:08 +00:00
Mark Heijl a68a7a60a7 Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Mark Heijl <markh@babelzilla.org>
- Ton <tonnes.mb@gmail.com>
2017-10-12 02:51:16 +00:00
Roberto Alvarado b4dc274646 Pontoon: Update Spanish (Mexico) (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-10-11 16:51:41 +00:00
Arash Mousavi b31892bdc6 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Arash Mousavi <mousavi.arash@gmail.com>
2017-10-11 16:12:18 +00:00
Maykon Chagas f388a1348d Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-10-11 15:32:02 +00:00
Francesco Lodolo 52dacbddf9 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-10-11 13:51:50 +00:00
savemore99.sm cc52f60aa1 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
- savemore99.sm <savemore99.sm@gmail.com>
2017-10-11 13:33:29 +00:00
Victor Bychek 1af818b691 Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Victor Bychek <a@bychek.ru>
2017-10-11 12:51:50 +00:00
Balázs Meskó d76f7758e7 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-10-11 12:31:59 +00:00
Selim Şumlu 48ab2f2400 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-10-11 12:11:35 +00:00
Balázs Meskó 0aa844eebc Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-10-11 12:11:32 +00:00
Bjørn I 481b02ccf2 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-10-11 11:11:27 +00:00
Rok Žerdin 67e6ef6fda Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-10-11 08:31:40 +00:00
Fjoerfoks 7d19f86d7a Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-10-11 08:31:33 +00:00
Rhoslyn Prys 2d27d8a47c Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-10-11 07:51:11 +00:00
Håvar Henriksen 10fac130ef Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-10-11 07:31:25 +00:00
Rok Žerdin c6b632543d Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-10-11 05:31:31 +00:00
Kohei Yoshino 32eb8157eb Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-10-11 03:51:18 +00:00
Pin-guang Chen 3628f22114 Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-10-11 03:51:15 +00:00
Théo Chevalier 177fa37041 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-10-11 01:31:39 +00:00
Andreas Pettersson 717f6576ea Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
2017-10-11 00:31:17 +00:00
Marko Andrejić f1b2ffa0fa Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Marko Andrejić <marko.andrejic93@gmail.com>
2017-10-10 23:51:34 +00:00
Juan Esteban Ajsivinac Sián ac73c23c73 Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-10-10 23:31:25 +00:00
manxmensch ac40308b1c Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-10-10 22:51:19 +00:00
ravmn 6fb81aa78c Pontoon: Update Spanish (Chile) (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-10-10 22:31:22 +00:00
manxmensch 92430c78c2 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-10-10 22:31:18 +00:00
jlG cb7ddaa295 Pontoon: Update Spanish (Spain) (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- jlG <jlg.l10n.es@gmail.com>
2017-10-10 22:11:16 +00:00
Michael Wolf 786d079632 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-10-10 21:31:34 +00:00
Rodrigo 4af25a505a Pontoon: Update Portuguese (Portugal) (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-10-10 21:31:31 +00:00
YFdyh000 3218803aae Pontoon: Update Chinese (China) (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-10-10 21:11:17 +00:00
Michael Köhler 2311d5bcef Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-10-10 20:11:27 +00:00
Danny Coates e56d92334f Merge pull request #582 from mozilla/split
Add optional password to the download url
2017-10-10 12:42:53 -07:00
Danny Coates bc24a069da Add optional password to the download url 2017-10-10 10:45:10 -07:00
Danny Coates 837747f8f7 bump version 2017-10-10 10:34:45 -07:00
Danny Coates a8c32ae49c Merge pull request #583 from mozilla/beef
Promote the beefy UI to default
2017-10-10 10:27:10 -07:00
Danny Coates 32c5b414de use beefy ui 2017-10-10 10:20:49 -07:00
Danny Coates 12c81a22e8 updated deps 2017-10-10 10:08:11 -07:00
Danny Coates 0c5d0d4bb2 Merge pull request #581 from tiagomoraismorgado88/patch-4
introducing ToC to README.md
2017-10-09 14:10:12 -07:00
tiagomoraismorgado 234f9c624d introducing ToC to README.md
**this PR does basically aim at:**
- *introducing ToC to README.md file*
2017-10-06 20:03:14 +01:00
Danny Coates da669b44ff Merge pull request #579 from mozilla/cancel
Hide cancel button when upload reaches 100%
2017-10-06 11:41:09 -07:00
Danny Coates 3c39f5f085 Merge pull request #580 from mozilla/favicon
Change Favicon in to look better in a variety of cases
2017-10-06 11:40:06 -07:00
Erica Wright 6de91b5872 Change Favicon in to look better in a variety of cases 2017-10-06 11:24:17 -04:00
Rhoslyn Prys ff9a0979f6 Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-10-05 16:13:35 +00:00
Erica Wright e1e8af2489 Hide cancel button when upload reached 100% 2017-10-04 16:34:41 -04:00
Erica 1eb000f615 Merge pull request #571 from ehuggett/svg-logo
Centre logo
2017-10-04 13:25:35 -04:00
ehuggett e20fd97e59 Centre logo by using transform (not optimal) 2017-10-04 00:05:45 +01:00
Erica d10ceacd67 Merge pull request #574 from ehuggett/tab-upload
Make upload button focusable (accessibility/tab navigation)
2017-10-02 20:15:37 -04:00
ehuggett 208c28ee01 Make upload button focusable (accessibility/tab navigation) 2017-10-02 23:04:55 +01:00
Danny Coates cdd1bb3c29 updated deps 2017-10-02 13:03:56 -07:00
Danny Coates 3d9c4fa320 added .nsprc 2017-10-02 12:04:03 -07:00
Danny Coates 9c4d18ef3b updated deps 2017-10-02 11:44:35 -07:00
Juraj Cigáň ce9ff3959f Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-09-30 17:51:09 +00:00
eljuno 51aef4e1e5 Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- eljuno <eljunotrie_anggoro@yahoo.co.id>
2017-09-28 18:50:47 +00:00
hello 90247059d0 Pontoon: Update Hebrew (he) localization of Test Pilot: Firefox Send
Localization authors:
- Yaron Shahrabani <sh.yaron@gmail.com>
- hello <hello@ira.abramov.org>
2017-09-27 18:11:56 +00:00
Danny Coates c97abb46ed bump version 2017-09-26 10:29:26 -07:00
Danny Coates b8f5e371c7 updated deps 2017-09-26 10:23:30 -07:00
Danny Coates 401311a05f updated deps. removed choo-log 2017-09-20 13:09:33 -07:00
Sahithi 652b8e4e15 Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- Sahithi <sahithi.thinker@gmail.com>
2017-09-19 11:31:21 +00:00
Merike Sell 99b7e7c0f1 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Merike Sell <merikes@gmail.com>
2017-09-16 12:52:29 +00:00
Danny Coates 81442bb6f2 set default server states for fira and fileInfo 2017-09-14 12:15:08 -07:00
Danny Coates 137f474b69 fixed A/B test control group selection 2017-09-14 10:02:47 -07:00
Danny Coates 8e14d3f8f7 QA bug fixes 2017-09-13 12:01:55 -07:00
Danny Coates 07b7bc003a v1.2.0 2017-09-12 15:42:56 -07:00
Danny Coates df691c1516 Merge pull request #559 from mozilla/beefy
added first A/B experiment
2017-09-12 10:39:36 -07:00
Danny Coates 17e61bb09d added first A/B experiment 2017-09-11 17:30:05 -07:00
Tema 14e21988b2 Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Tema <Tema@Smirnov.one>
- Victor Bychek <a@bychek.ru>
2017-09-11 18:11:20 +00:00
Tema 205de5a633 Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Tema <Tema@Smirnov.one>
2017-09-11 17:51:57 +00:00
Jae Hyeon Park eabdc903b9 Pontoon: Update Korean (ko) localization of Test Pilot: Firefox Send
Localization authors:
- Jae Hyeon Park <wogus150@naver.com>
2017-09-11 06:11:02 +00:00
Sander Lepik 0628e71ec9 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Sander Lepik <sander.lepik@eesti.ee>
2017-09-09 09:11:09 +00:00
avelper ebbcb38c7a Pontoon: Update Spanish (Spain) (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-09-08 19:39:49 +00:00
Sander Lepik 5c1f535291 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Sander Lepik <sander.lepik@eesti.ee>
2017-09-08 19:39:46 +00:00
Sander Lepik 2c8e488611 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Sander Lepik <sander.lepik@eesti.ee>
2017-09-08 15:12:17 +00:00
manxmensch 6f3eac659c Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-09-08 12:31:23 +00:00
Cristian Silaghi 86bca790bc Pontoon: Update Romanian (ro) localization of Test Pilot: Firefox Send
Localization authors:
- Cristian Silaghi <cristian.silaghi@mozilla.ro>
- danraduristea <danraduristea@gmail.com>
2017-09-07 19:51:39 +00:00
Cristian Silaghi 895d196876 Pontoon: Update Romanian (ro) localization of Test Pilot: Firefox Send
Localization authors:
- Cristian Silaghi <cristian.silaghi@mozilla.ro>
- danraduristea <danraduristea@gmail.com>
2017-09-07 19:31:58 +00:00
Danny Coates 3d8b38ffe4 fixed delete dialog broken in last commit 🙄 2017-09-06 14:27:09 -07:00
Danny Coates fddc415c86 fixes #539 2017-09-06 14:09:17 -07:00
Danny Coates 7a8e9b5de1 fixes #543 added FILE_DIR environment variable 2017-09-06 13:25:27 -07:00
Juan Esteban Ajsivinac Sián bbaeb44b26 Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-02 00:12:56 +00:00
Juan Esteban Ajsivinac Sián a95f659474 Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-01 23:51:10 +00:00
Juan Esteban Ajsivinac Sián 4d311b134f Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-01 23:31:35 +00:00
Juan Esteban Ajsivinac Sián 5f90de577f Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-01 23:11:09 +00:00
Juan Esteban Ajsivinac Sián 3c32ce946a Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-01 22:51:02 +00:00
Juan Esteban Ajsivinac Sián 5ca89d0e0d Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-01 22:31:32 +00:00
Juan Esteban Ajsivinac Sián 781d1f5b0a Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2017-09-01 22:10:41 +00:00
Michal Stanke ef9bfae319 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Michal Stanke <mstanke@mozilla.cz>
2017-08-30 19:30:44 +00:00
Danny Coates 7abbc60e17 fixes #546 drag effect 2017-08-29 11:36:40 -07:00
Danny Coates 15244e1a64 fixes #545 copy effect 2017-08-29 11:25:41 -07:00
Danny Coates 4b39d61ff4 don't upload empty files 2017-08-29 11:20:34 -07:00
Danny Coates 74718d6361 disable CSP when env = development 2017-08-29 11:19:21 -07:00
Peter deHaan ced640c24a Merge pull request #542 from ehuggett/patch-2
fix docker link typo
2017-08-28 09:08:04 -07:00
Fjoerfoks cdaa92c86d Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-08-28 11:50:50 +00:00
Danny Coates 57012f0660 added source maps to dev 2017-08-27 15:19:58 -07:00
ehuggett 6fde6e0a79 fix docker link typo 2017-08-27 21:45:38 +01:00
Danny Coates 182bde30fa Merge pull request #541 from mozilla/refactor-ftl
removed .title and .alt attributes from ftl
2017-08-27 00:06:03 -07:00
Danny Coates 59e2267513 removed .title and .alt attributes from ftl 2017-08-26 20:34:26 -07:00
Danny Coates 01a064ef7f added local dev url to readme 2017-08-25 15:41:53 -07:00
Danny Coates 9759338e6a shrink vendor bundle a bit 2017-08-25 15:38:26 -07:00
Danny Coates 5ac4560157 cram more into vendor bundle 2017-08-25 15:12:16 -07:00
Danny Coates 8e60ca1ac9 fixed readme typo 2017-08-25 14:01:08 -07:00
Danny Coates 131a8b5564 updated readme. made redis optional in dev 2017-08-25 13:58:51 -07:00
Danny Coates 663023a204 updated docker.md 2017-08-25 13:43:11 -07:00
Danny Coates 2b5c9dfb35 removed unused data-l10n attributes 2017-08-25 13:14:17 -07:00
Danny Coates a9a34fdd0a fixed GA var in jsconfig 2017-08-25 13:13:45 -07:00
Danny Coates 1655094ce3 fixed locale path on dev 2017-08-25 11:43:59 -07:00
Danny Coates 9ae7e3df11 fixed prod listen port 2017-08-25 10:21:38 -07:00
Danny Coates 0a31e2d521 fixed __heartbeat__ route 2017-08-25 10:03:49 -07:00
Danny Coates b6849661a6 Merge pull request #537 from mozilla/choo
a few changes to make A/B testing easier
2017-08-25 09:51:18 -07:00
Danny Coates 53e822964e a few changes to make A/B testing easier 2017-08-25 09:44:52 -07:00
Danny Coates b2f76d2df9 Merge pull request #533 from youwenliang/master
minor UI fixes
2017-08-24 15:56:39 -07:00
Danny Coates 574a3ce894 Merge pull request #531 from pdehaan/yo-changelog
Add CHANGELOG script
2017-08-24 15:55:49 -07:00
Danny Coates c68f796891 Merge pull request #535 from LuFlo/master
Fixed minimum NodeJS version in README
2017-08-24 15:51:55 -07:00
Danny Coates c592f84d7d Merge pull request #528 from tiagmoraismorgado/patch-2
adding separators to README
2017-08-24 15:48:35 -07:00
LuFlo 31faaf147e Fixed minimum NodeJS version
NodeJS version was increased due to http header splitting vulnerability
2017-08-24 21:00:28 +02:00
Mark Liang 09c20f5933 Update UI 2017-08-23 17:10:10 +08:00
Mark Liang fa4ab7bd5c Update master 2017-08-23 16:27:56 +08:00
Peter deHaan de4a24a7f8 Add CHANGELOG script 2017-08-21 15:26:19 -07:00
reza.habibi2008 8f1c404724 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- reza.habibi2008 <reza.habibi2008@gmail.com>
2017-08-20 12:10:48 +00:00
Tiago Morais Morgado 1b975e7ba7 adding separators to README
**in this PR I did basically:**

- *add separators to README file*

---

**I did this because:**

- *i feel it improves the overall flow of the file*
2017-08-20 13:05:48 +01:00
reza.habibi2008 1d7473c489 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- reza.habibi2008 <reza.habibi2008@gmail.com>
2017-08-20 11:50:57 +00:00
Arash Mousavi a7d3992ba1 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Arash Mousavi <mousavi.arash@gmail.com>
2017-08-19 18:31:32 +00:00
Amin Mahmudian d81e9a76db Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Amin Mahmudian <amin.mahmudian@gmail.com>
2017-08-19 08:10:30 +00:00
xcffl 0624e59776 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- xcffl <xcffl@outlook.com>
2017-08-19 03:31:32 +00:00
xcffl 546064a7ee Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- xcffl <xcffl@outlook.com>
2017-08-19 03:10:24 +00:00
Arash Mousavi 9d49cc876c Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Arash Mousavi <mousavi.arash@gmail.com>
2017-08-18 16:50:52 +00:00
Danny Coates 0bf8481fd0 v1.1.2 2017-08-17 10:52:33 -07:00
Danny Coates ae0758ac14 fixed download test 2017-08-17 10:27:18 -07:00
Danny Coates e9405f49ee xhr download as octet-stream 2017-08-17 10:19:18 -07:00
Danny Coates a1d0eef8a5 debugging #524 2017-08-17 09:46:51 -07:00
Danny Coates 254b806fb4 fixes #523 copy & share text 2017-08-17 09:27:06 -07:00
Danny Coates a7aee1450f fixes #522 copy button check mark 2017-08-17 09:16:03 -07:00
Sahithi fa5573a5ff Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- Sahithi <sahithi.thinker@gmail.com>
2017-08-17 11:31:19 +00:00
Danny Coates 9714bb0a0a v1.1.1 2017-08-16 18:29:35 -07:00
Danny Coates ad82d30dd9 Merge pull request #516 from mozilla/cache-assets
cache assets
2017-08-16 17:44:09 -07:00
Danny Coates 757ac14d1a webpacked the heck out of the build 2017-08-16 14:21:01 -07:00
Danny Coates 3e066258c4 Merge pull request #520 from mozilla/i519
fix drag & drop
2017-08-16 11:11:46 -07:00
Danny Coates 127f73b4fe fixes #519 drag & drop 2017-08-16 11:03:17 -07:00
Emin Mastizada ae5009e1e3 Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2017-08-16 07:31:19 +00:00
Danny Coates 0ab8ddc894 groundwork for asset caching 2017-08-15 11:55:52 -07:00
Danny Coates b429841534 use new upload button string 2017-08-15 10:30:19 -07:00
jesferman1993 279f6df6f4 Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- jesferman1993 <jesferman1993@hotmail.com>
2017-08-15 09:11:11 +00:00
Slimane Amiri 634e6b2834 Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Slimane Amiri <slimane.amiri@gmail.com>
2017-08-15 07:31:06 +00:00
Danny Coates 856b2cdc60 Merge pull request #515 from mozilla/refactor-upload
removed jquery from upload.js
2017-08-14 21:23:04 -07:00
Danny Coates 41351f877c removed jquery from upload.js 2017-08-14 20:00:14 -07:00
Andreas Pettersson afbb89fbe8 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
2017-08-14 22:31:48 +00:00
Pierre Neter b40b45273d Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- Pierre Neter <pierreneter@gmail.com>
2017-08-14 19:31:32 +00:00
Danny Coates f1fb877c7f Merge pull request #514 from mozilla/refactor-download
use async and removed jquery from download.js
2017-08-14 12:12:11 -07:00
Jon Vadillo 9d7ad06b1a Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- Jon Vadillo <vadillo.jon@gmail.com>
2017-08-14 18:30:39 +00:00
Danny Coates c6a4b089d9 use async and removed jquery from download.js 2017-08-14 11:14:47 -07:00
Danny Coates 24917f8aa5 Merge pull request #513 from mozilla/svg-progress
use svg for progress
2017-08-14 10:05:03 -07:00
Danny Coates eada94b262 use svg for progress 2017-08-13 18:46:05 -07:00
Danny Coates 43fa551a64 improved exist check 2017-08-13 18:44:59 -07:00
Roberto Alvarado e1137db946 Pontoon: Update Spanish (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-08-14 00:50:56 +00:00
Enol c1878649b3 Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-08-13 17:50:44 +00:00
Michael Wolf 30b86b14ed Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-08-13 15:31:13 +00:00
Michael Wolf e91b341f8a Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-08-13 15:31:11 +00:00
Jakub Rychlý 70148232c6 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Jakub Rychlý <jrychly@jakubrychly.cz>
- sajdl.vojtech <sajdl.vojtech@gmail.com>
2017-08-13 12:31:06 +00:00
Alexander Slovesnik 56e3d5766c Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Alexander Slovesnik <unghost@mozilla-russia.org>
2017-08-12 22:11:20 +00:00
Rhoslyn Prys 350e31ae4a Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-08-12 19:31:25 +00:00
Marcelo Poli 0794bcc458 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-08-12 18:31:01 +00:00
Belayet Hossain a6aee8ad62 Pontoon: Update Bengali (bn-BD) localization of Test Pilot: Firefox Send
Localization authors:
- Belayet Hossain <bellayet@gmail.com>
- S M Sarwar Nobin <smsarwar1996@gmail.com>
2017-08-12 18:30:59 +00:00
josotrix 8305d13dab Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- josotrix <josotrix@ravmn.cl>
2017-08-12 17:11:33 +00:00
Selim Şumlu 441a520765 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-08-12 15:50:46 +00:00
josotrix ba84e59f39 Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- josotrix <josotrix@ravmn.cl>
- ravmn <ravmn@ravmn.cl>
2017-08-12 15:50:43 +00:00
Pin-guang Chen 22a316ab58 Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-08-12 15:31:26 +00:00
Juraj Cigáň 6b9502d252 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-08-12 12:11:21 +00:00
Danny Coates cdc3a5340d defer main js scripts 2017-08-11 19:13:57 -07:00
Danny Coates f03f7a0286 Merge pull request #510 from mozilla/hooks
added precommit hook for format
2017-08-11 18:34:48 -07:00
Danny Coates d8a5789701 added precommit hook for format 2017-08-11 18:06:16 -07:00
Danny Coates 8d26e0e742 Merge pull request #502 from mozilla/refactor-filelist
extracted filelist into its own file
2017-08-11 14:18:35 -07:00
Danny Coates e142d76cb4 Merge pull request #428 from mozilla/add-twitter-og-cards
add twitter and open graph cards
2017-08-11 14:12:44 -07:00
Danny Coates c488c1d724 added BASE_URL environment variable 2017-08-11 14:02:44 -07:00
Danny Coates bed57af6c5 extracted filelist into its own file 2017-08-11 13:50:58 -07:00
Jim Spentzos 7500bd8326 Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Jim Spentzos <jamesspentzos@hotmail.com>
- Μιχάλης <mikem132@protonmail.com>
2017-08-11 20:31:46 +00:00
Danny Coates 0250924961 Merge pull request #506 from varghesethomase/404-page
404 page
2017-08-11 12:20:02 -07:00
Varghese Thomas 70813556ad Reverting unwanted notfound page response 2017-08-12 00:29:25 +05:30
Марко Костић (Marko Kostić) 2bb9af1943 Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2017-08-11 18:51:01 +00:00
Danny Coates 55bd44a8f5 Merge pull request #508 from mozilla/fixes478
fixes 478
2017-08-11 10:58:24 -07:00
Abhinav Adduri d83900f272 fixes 478 2017-08-11 10:50:37 -07:00
Jordi Serratosa fa4f9299b2 Pontoon: Update Catalan (ca) localization of Test Pilot: Firefox Send
Localization authors:
- Jordi Serratosa <jordis@softcatala.cat>
2017-08-11 16:31:45 +00:00
Danny Coates 0f7b19c385 Merge pull request #504 from mozilla/fix-japanese-browse-btn
fix japanese browse button
2017-08-11 08:37:34 -07:00
Varghese Thomas a9c1dd0180 Replacing all send status 404 with notfound page 2017-08-11 20:52:18 +05:30
Varghese Thomas c468e2f34e Sending not found page for invalid url id 2017-08-11 20:46:59 +05:30
Michael Köhler 718f42897f Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-08-11 13:31:09 +00:00
John Gruen fb468bd1bc fix japanese browse button 2017-08-11 13:41:14 +02:00
John Gruen dafe00cabb add twitter and open graph cards 2017-08-11 13:39:04 +02:00
Matjaž Horvat 98aebb7f70 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-08-11 11:31:10 +00:00
Tymur Faradzhev a990d78bc0 Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-11 08:31:11 +00:00
Balázs Meskó 9b4069be3e Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-08-11 08:31:08 +00:00
Håvar Henriksen ff3bc0dd62 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-08-11 06:50:58 +00:00
Luna Jernberg b39b131928 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Luna Jernberg <bittin@cafe8bitar.se>
2017-08-11 03:31:14 +00:00
Danny Coates 2646fb9b3c Merge pull request #503 from skystar-p/editorconfig
Added editorconfig
2017-08-10 19:50:46 -07:00
skystar-p c2b84650e2 added editorconfig 2017-08-11 11:39:56 +09:00
YFdyh000 fecf938ae7 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-08-11 02:31:45 +00:00
Cláudio Esperança 8abf631430 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Cláudio Esperança <cesperanc@gmail.com>
2017-08-11 02:10:43 +00:00
manxmensch d69c535dda Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-08-11 00:50:39 +00:00
Kohei Yoshino 082ca6c57b Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-08-10 22:10:52 +00:00
Bjørn I b263231068 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-08-10 20:31:46 +00:00
Francesco Lodolo 947a6d9992 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-08-10 20:10:54 +00:00
Danny Coates 1ad7edf5a9 fixed bad merge 2017-08-10 12:59:07 -07:00
Schieck :) 0c26204ea1 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Schieck :) <ricardoschieck@gmail.com>
2017-08-10 18:51:14 +00:00
Ton 1e3bbee7f1 Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Ton <tonnes.mb@gmail.com>
2017-08-10 18:11:25 +00:00
Danny Coates ec80e8e622 Merge pull request #499 from mozilla/pier1
use import/export in the frontend code
2017-08-10 11:07:38 -07:00
Théo Chevalier 61e2c0d85b Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-08-10 17:50:53 +00:00
Danny Coates 80db74fc3a Merge pull request #500 from mozilla/i495
fixed build:css on windows
2017-08-10 10:43:07 -07:00
Danny Coates 30936eb2fa fixed build:css on windows 2017-08-10 10:38:36 -07:00
Danny Coates 31e29d58b9 Merge pull request #481 from pdehaan/fix-l10n-id
Cater for mobile and desktop
2017-08-10 10:19:21 -07:00
Danny Coates 702134b3b1 use import/export in the frontend code 2017-08-10 10:03:22 -07:00
Danny Coates 11ae7f857c Merge pull request #493 from mozilla/webpack-dev
added webpack-dev-middleware
2017-08-10 09:29:43 -07:00
Peter deHaan 8827556974 Add new l10n string, but don't use it yet 2017-08-10 09:26:25 -07:00
Danny Coates 21b7f16b1e added webpack-dev-middleware for recompiling on source changes 2017-08-10 09:23:33 -07:00
Danny Coates 314ab237ec Merge pull request #491 from mozilla/i387
added missing exit event cases
2017-08-10 09:06:57 -07:00
Danny Coates 0fa0416c3f Merge pull request #492 from mozilla/no-cookies
make the site mostly work when cookies (localStorage) are disabled
2017-08-10 09:06:15 -07:00
Danny Coates 09faedf059 make the site mostly work when cookies (localStorage) are disabled 2017-08-09 23:12:15 -07:00
Danny Coates 16aa7983ed added missing exit event cases 2017-08-09 16:44:09 -07:00
Marcelo Poli 493bf8dc89 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-08-09 22:10:59 +00:00
Danny Coates 46432b9649 Merge pull request #490 from mozilla/i489
set the mime type in the download blob
2017-08-09 14:31:55 -07:00
Danny Coates 193664a8e8 set the mime type in the download blob 2017-08-09 14:25:37 -07:00
Danny Coates 626e578acb Merge pull request #485 from mozilla/i479
added progress to tab title when not in focus
2017-08-09 11:42:35 -07:00
Tymur Faradzhev 51bffe11a8 Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-09 08:10:36 +00:00
Danny Coates 08e2c6c112 Merge pull request #474 from varghesethomase/master
Fixing bug #438 by adding role attribute to anchor tags and alt attribute images
2017-08-08 22:41:31 -07:00
Danny Coates c38d91db98 added progress to tab title when not in focus 2017-08-08 20:23:38 -07:00
Danny Coates c13839a522 Merge pull request #480 from pdehaan/issue-443
Increase font weight to 500 on <button>s and <label>s
2017-08-08 19:43:46 -07:00
Peter deHaan 4894d5162f Update l10n id 2017-08-08 13:37:33 -07:00
Peter deHaan 77b6fb138f Increase font weight to 500 on <button>s and <label>s 2017-08-08 13:06:59 -07:00
Danny Coates 9dab74891d Merge pull request #419 from pdehaan/autoprefixer
Add autoprefixer and cssnano support
2017-08-08 12:43:56 -07:00
Enol 393d2a0052 Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-08-08 19:31:58 +00:00
Enol 44ac783f6a Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-08-08 18:50:58 +00:00
Enol 7ea8712538 Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2017-08-08 18:30:54 +00:00
Jordi Serratosa fb92a793e4 Pontoon: Update Catalan (ca) localization of Test Pilot: Firefox Send
Localization authors:
- Jordi Serratosa <jordis@softcatala.cat>
2017-08-08 12:50:40 +00:00
Luna Jernberg 87eaba6337 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Luna Jernberg <bittin@cafe8bitar.se>
2017-08-08 11:31:17 +00:00
Selim Şumlu 7e13f2ab32 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-08-08 11:11:10 +00:00
Slimane Amiri 3214d293ca Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Slimane Amiri <slimane.amiri@gmail.com>
2017-08-08 10:10:28 +00:00
Håvar Henriksen 1437116cf3 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-08-08 07:31:23 +00:00
Danny Coates 87a8cfba40 v1.1.0 2017-08-07 20:59:39 -07:00
Jae Hyeon Park f929bb2aec Pontoon: Update Korean (ko) localization of Test Pilot: Firefox Send
Localization authors:
- Hyeonseok Shin <hyeonseok@gmail.com>
- Jae Hyeon Park <wogus150@naver.com>
2017-08-08 02:50:53 +00:00
Varghese Thomas 740001ddde Fixing bug #438 by adding role attribute to anchor tags and alt attributes to images. Also solves #440 2017-08-08 08:05:02 +05:30
Pin-guang Chen aaec16cf52 Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-08-08 02:31:08 +00:00
Peter deHaan 24af3207e9 Update browserslist 2017-08-07 16:38:19 -07:00
Pierre Neter 5da43f0da7 Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- Pierre Neter <pierreneter@gmail.com>
2017-08-07 23:30:51 +00:00
Bjørn I dffb26349b Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-08-07 23:30:49 +00:00
Peter deHaan 38746078ed Add autoprefixer and cssnano support 2017-08-07 16:19:40 -07:00
manxmensch c4751842fe Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-08-07 22:50:48 +00:00
Danny Coates 08ec9d98b8 Merge pull request #473 from pdehaan/fix-contributors
Sort contributors alphabetically to prevent churn
2017-08-07 15:41:06 -07:00
Danny Coates 5200928d5c Merge pull request #472 from mozilla/remove-hash-tests
removed references to checksums in frontend tests
2017-08-07 15:36:29 -07:00
Peter deHaan 4c3e37f4b5 Sort contributors alphabetically to prevent churn 2017-08-07 15:24:27 -07:00
Abhinav Adduri 60eda64c8d linting 2017-08-07 15:12:11 -07:00
Abhinav Adduri 4db7fc6db3 removed references to checksums in frontend tests 2017-08-07 14:58:22 -07:00
Danny Coates 5844a9a03c Merge pull request #470 from mozilla/remove-hash
removed the file sha256 hash
2017-08-07 14:42:53 -07:00
YFdyh000 9829e46270 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-08-07 21:30:49 +00:00
Danny Coates 9a150ddb22 removed the file sha256 hash 2017-08-07 14:05:13 -07:00
Marcelo Poli e7b90ea1b9 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-08-07 19:51:18 +00:00
Balázs Meskó 07bcfa2d36 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-08-07 19:51:16 +00:00
Juraj Cigáň dce134744d Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-08-07 19:31:07 +00:00
Michael Wolf 288bc50484 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-08-07 19:11:05 +00:00
Michael Wolf 09d6c64a9b Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-08-07 19:11:00 +00:00
Francesco Lodolo d7a542f2c2 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-08-07 19:10:55 +00:00
Danny Coates aca82dd880 Merge pull request #469 from ehuggett/patch-1
Increase mimimum node version to 8.2.0
2017-08-07 12:03:59 -07:00
Danny Coates aa72a4c72c Merge pull request #468 from mozilla/i465
attach delete-file handler only after upload
2017-08-07 12:03:17 -07:00
Марко Костић (Marko Kostić) a70dcfc905 Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2017-08-07 18:50:39 +00:00
Kohei Yoshino 49731ab8ba Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-08-07 18:50:34 +00:00
ehuggett 3d9e01f8e5 Increase mimimun node version to 8.2.0
This version has a useful protection against http header splitting
2017-08-07 19:50:10 +01:00
Danny Coates 441fe86186 attach delete-file handler only after upload 2017-08-07 11:47:09 -07:00
Lan Glad f9283f5f6a Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Lan Glad <upwinxp@gmail.com>
2017-08-07 18:31:13 +00:00
Maykon Chagas c8e0b696a6 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-08-07 18:31:10 +00:00
Michael Köhler cf5c64a3f8 Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-08-07 18:31:06 +00:00
Danny Coates 097ff19c5f Merge pull request #466 from mozilla/webpack
added webpack
2017-08-07 11:06:54 -07:00
Danny Coates 8767b9b6b0 Merge pull request #427 from gautamkrishnar/master
Extended system font list fixes:#408
2017-08-07 11:04:03 -07:00
Danny Coates 4ac7ac2b24 Merge pull request #448 from nskins/th-width
Migrate width attribute to CSS (Fixes #436)
2017-08-07 10:59:52 -07:00
Théo Chevalier 4cdce6c841 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-08-07 17:50:36 +00:00
Ton 763414c848 Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Ton <tonnes.mb@gmail.com>
2017-08-07 17:50:33 +00:00
Danny Coates 9172af48fd added webpack 2017-08-07 10:33:41 -07:00
Tymur Faradzhev 14a4297db8 Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-07 17:30:49 +00:00
Rodrigo a78475aff4 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-08-07 17:30:46 +00:00
Danny Coates d2b57039bf Merge pull request #457 from mozilla/refactor-progress
factored out progress into progress.js
2017-08-07 09:51:29 -07:00
Pierre Neter dd5be246d4 Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- hi <hi@duonganhtuan.com>
- Pierre Neter <pierreneter@gmail.com>
2017-08-07 12:10:33 +00:00
hi 779005845e Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- hi <hi@duonganhtuan.com>
- Pierre Neter <pierreneter@gmail.com>
2017-08-07 11:50:56 +00:00
hi f3499326bd Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- hi <hi@duonganhtuan.com>
- Pierre Neter <pierreneter@gmail.com>
2017-08-07 11:30:52 +00:00
hi fe10b131fc Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- hi <hi@duonganhtuan.com>
- Pierre Neter <pierreneter@gmail.com>
2017-08-07 11:11:18 +00:00
avelper 9b6b7aa998 Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-08-07 10:10:59 +00:00
Slimane Amiri e9d5d8ec11 Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Slimane Amiri <slimane.amiri@gmail.com>
2017-08-07 10:10:57 +00:00
Kohei Yoshino 73e39ad453 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-08-07 09:10:34 +00:00
Danny Coates c91d24cd86 factored out progress into progress.js 2017-08-06 23:45:22 -07:00
Michal Stanke 1fc83aa902 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Michal Stanke <mstanke@mozilla.cz>
2017-08-07 06:31:07 +00:00
Luna Jernberg 5ac013ca40 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Luna Jernberg <bittin@cafe8bitar.se>
2017-08-06 18:31:42 +00:00
Danny Coates 6d17b86d28 Merge pull request #452 from mozilla/refactor-metrics
refactored metrics
2017-08-06 09:00:16 -07:00
Jamie fcea981127 Cater for mobile and desktop
Fixes #421
2017-08-06 16:03:54 +01:00
siparon bdd7044808 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- siparon <siparon@gmail.com>
2017-08-06 07:50:50 +00:00
Peter deHaan 96bea84a73 Merge pull request #455 from pdehaan/fix-es-cl-tr-locales
Add a few missing strings from es-CL and tr locales
2017-08-05 23:28:29 -07:00
Peter deHaan 9aef7df82c Add a few missing strings from es-CL and tr locales 2017-08-05 22:59:31 -07:00
Danny Coates b0d36529a1 refactored metrics 2017-08-05 16:38:08 -07:00
Danny Coates 2a7099a7a2 Merge pull request #444 from Johann-S/patch-2
Chain jQuery calls, do not use events alias and store selectors
2017-08-05 16:32:49 -07:00
Maykon Chagas 4c069949f2 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-08-05 22:10:39 +00:00
Maykon Chagas 699c97a9c0 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-08-05 21:51:01 +00:00
Johann-S 3c640061f0 Chain jQuery calls, do not use events alias and store often used selectors 2017-08-05 22:31:57 +02:00
Jim Spentzos bbd74efc2c Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Jim Spentzos <jamesspentzos@hotmail.com>
- Giorgos S. <giorgos.skafidas@gmx.com>
2017-08-05 20:30:55 +00:00
Danny Coates 2dfbee090a Merge pull request #416 from mozilla/shim-webcrypto
WIP: use webcrypto-liner to support Safari 10
2017-08-05 10:09:09 -07:00
Danny Coates a03b1b7a9a only _blank feedback link 2017-08-05 09:57:57 -07:00
Danny Coates 594b584500 formatting / links rel 2017-08-05 09:52:37 -07:00
Danny Coates d74d339e4b Merge remote-tracking branch 'origin/master' into shim-webcrypto 2017-08-05 09:48:24 -07:00
Danny Coates 859554ce21 only _blank links while downloading. fixed safari link after download 2017-08-05 09:40:57 -07:00
Peter deHaan 703325f223 Merge pull request #451 from boopeshmahendran/AddRelNoopenerNoreferrer
Add rel noopener noreferrer to target='_blank' anchor elements (Fixes #439)
2017-08-05 09:17:10 -07:00
Peter deHaan 9a416e3e78 Merge pull request #449 from kenrick95/master
Add X-UA-Compatible meta tag
2017-08-05 09:14:39 -07:00
Maykon Chagas 8821403a9b Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-08-05 14:50:44 +00:00
alex_mayorga 4a841bf563 Pontoon: Update Spanish (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- alex_mayorga <alex_mayorga@yahoo.com>
2017-08-05 14:31:06 +00:00
Μιχάλης 4d6995536a Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Μιχάλης <mikem132@protonmail.com>
2017-08-05 13:50:46 +00:00
Μιχάλης 6ef4e86029 Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Giorgos S. <giorgos.skafidas@gmx.com>
- Μιχάλης <mikem132@protonmail.com>
2017-08-05 13:30:40 +00:00
Juraj Cigáň 2408c766ce Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-08-05 11:10:31 +00:00
Amin Mahmudian 882e13bac6 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Amin Mahmudian <amin.mahmudian@gmail.com>
2017-08-05 08:50:45 +00:00
Boopesh Mahendran e48c2cf75b Add rel noopener noreferrer to target='_blank' anchor elements 2017-08-05 13:34:44 +05:30
gautamkrishnar c8f7e60259 fixed lint errors 2017-08-05 12:59:00 +05:30
Danny Coates 432a39d313 Merge remote-tracking branch 'origin/master' into shim-webcrypto 2017-08-04 21:08:32 -07:00
kenrick95 59ed64698d Add X-UA-Compatible meta tag 2017-08-05 11:59:44 +08:00
Nicholas Skinsacos 6edfe5146c Migrate width attribute to CSS (Fixes #436) 2017-08-04 22:33:29 -04:00
Danny Coates 44ea0756ea Merge pull request #433 from pdehaan/issue-429
Prevent download button from being clicked multiple times
2017-08-04 15:46:56 -07:00
Danny Coates 02fc4d74db Merge remote-tracking branch 'origin/master' into shim-webcrypto 2017-08-04 14:47:40 -07:00
Danny Coates 0f77b6d86b Merge pull request #432 from pdehaan/issue-397
Add contributors script
2017-08-04 12:45:23 -07:00
Pin-guang Chen ae2eb14fda Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-08-04 18:31:09 +00:00
eljuno 455c4f5472 Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- eljuno <eljunotrie_anggoro@yahoo.co.id>
2017-08-04 17:31:10 +00:00
Gautam krishna.R 7335232680 fixed missing font 2017-08-04 22:49:03 +05:30
Peter deHaan 2f9372e8e0 Prevent download button from being clicked multiple times 2017-08-04 10:17:15 -07:00
Michael Wolf 80db158ee3 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-08-04 16:11:48 +00:00
Michael Wolf 6c18f4fb2c Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-08-04 16:11:45 +00:00
Peter deHaan f28444f4c6 Add contributors script 2017-08-04 09:10:59 -07:00
Marcelo Poli 93ac742a5e Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-08-04 15:31:33 +00:00
Erica 6dcbc19315 Merge pull request #409 from Johann-S/patch-1
Handle copy clipboard disabled
2017-08-04 10:32:24 -04:00
Ton 65df0fa9cf Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Ton <tonnes.mb@gmail.com>
2017-08-04 12:31:11 +00:00
Kohei Yoshino 387e88907c Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-08-04 10:10:46 +00:00
Gautam krishna.R 9253695f8d Extended system font list fixes:#408 2017-08-04 15:23:51 +05:30
Alexander Slovesnik 67635b9151 Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Alexander Slovesnik <unghost@mozilla-russia.org>
2017-08-04 09:10:33 +00:00
Johann-S e0abfb5cf7 Handle copy clipboard disabled 2017-08-04 10:22:11 +02:00
Fjoerfoks f1de6a14da Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-08-04 07:30:43 +00:00
Sairam Raavi 38052c1b85 Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- Sairam Raavi <sairam@riseup.net>
2017-08-04 05:50:36 +00:00
Sahithi 5847faf4e2 Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- Sairam Raavi <sairam@riseup.net>
- Sahithi <sahithi.thinker@gmail.com>
- నితిన్ <sainithin95@gmail.com>
2017-08-04 05:31:26 +00:00
Francesco Lodolo 0c1c8178f5 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-08-04 05:31:24 +00:00
Sahithi 86fbd2a4b5 Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- Sairam Raavi <sairam@riseup.net>
- Sahithi <sahithi.thinker@gmail.com>
2017-08-04 05:10:53 +00:00
Danny Coates 8cfb45944c pruned server logs 2017-08-03 21:47:03 -07:00
Tymur Faradzhev 0289409c9c Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-04 04:10:53 +00:00
Danny Coates b93a33eba4 an ios friendly copy 2017-08-03 21:06:15 -07:00
Danny Coates fb41a40128 use webcrypto-liner to support Safari 10 2017-08-03 19:13:38 -07:00
ravmn e18fda91fe Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-08-04 00:31:52 +00:00
YFdyh000 b077635427 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-08-04 00:31:49 +00:00
Håvar Henriksen 4d4098b7c9 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-08-03 23:31:13 +00:00
Emin Mastizada 9e4838d121 Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2017-08-03 23:31:11 +00:00
Danny Coates dd439bcdfb v1.0.4 2017-08-03 16:05:56 -07:00
Danny Coates d5e936b8fc Merge pull request #418 from mozilla/footer-link-blank
_blank all footer links
2017-08-03 16:04:41 -07:00
Danny Coates 376e1efa4c don't preventDefault on links 2017-08-03 15:50:56 -07:00
Danny Coates 09cc047ade _blank all footer links 2017-08-03 15:32:56 -07:00
Danny Coates 9b6507bc1b added 'id' locale to prod 2017-08-03 15:28:08 -07:00
Danny Coates 27d2927b14 added 'ca' locale to prod 2017-08-03 15:22:44 -07:00
Danny Coates 21cb8f6608 Revert "updated prod locales"
This reverts commit 41cb49c99f.
2017-08-03 15:19:55 -07:00
Danny Coates 41cb49c99f updated prod locales 2017-08-03 15:18:53 -07:00
Selim Şumlu 504d475f5d Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-08-03 21:50:57 +00:00
manxmensch 926ce972f5 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-08-03 21:50:54 +00:00
Jordi Serratosa 2bc7f270f8 Pontoon: Update Catalan (ca) localization of Test Pilot: Firefox Send
Localization authors:
- Jordi Serratosa <jordis@softcatala.cat>
2017-08-03 21:31:19 +00:00
Jordi Serratosa b03022b924 Pontoon: Update Catalan (ca) localization of Test Pilot: Firefox Send
Localization authors:
- Jordi Serratosa <jordis@softcatala.cat>
2017-08-03 21:10:40 +00:00
Jordi Serratosa 66863ceb1a Pontoon: Update Catalan (ca) localization of Test Pilot: Firefox Send
Localization authors:
- Jordi Serratosa <jordis@softcatala.cat>
2017-08-03 20:51:09 +00:00
Rodrigo 69e91eb4ed Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-08-03 20:31:18 +00:00
Maykon Chagas 167bf8a607 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-08-03 20:31:16 +00:00
Théo Chevalier 5e10fd2db6 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-08-03 20:31:14 +00:00
Jordi Serratosa a451ae435e Pontoon: Update Catalan (ca) localization of Test Pilot: Firefox Send
Localization authors:
- Jordi Serratosa <jordis@softcatala.cat>
2017-08-03 20:31:11 +00:00
Erica 125c4232ae Merge pull request #386 from ariestiyansyah/master
fix percentage view on mobile layout
2017-08-03 16:12:57 -04:00
Michael Köhler 7f5e33613d Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-08-03 20:10:23 +00:00
Rizky Ariestiyansyah 5576bc0652 fix for firefox 51 and 52 issue 2017-08-04 02:37:42 +07:00
Rok Žerdin ebd3a45a2c Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-08-03 19:31:23 +00:00
Марко Костић (Marko Kostić) 193f54547f Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2017-08-03 19:31:19 +00:00
Bjørn I d344531bda Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-08-03 19:31:17 +00:00
Erica 4ac07800c4 Merge pull request #414 from pdehaan/issue-377
Add link to FAQ in unsupported view
2017-08-03 15:09:15 -04:00
Peter deHaan e9fa6ad401 Add en-US FAQ string to /unsupported/* route as fallback 2017-08-03 12:03:31 -07:00
Danny Coates 95e3ca7a1c Merge pull request #415 from pdehaan/de-fira
Only include Fira CSS on /unsupported/* route
2017-08-03 11:50:46 -07:00
Peter deHaan 705289d34b Only include Fira CSS on /unsupported/* route 2017-08-03 11:12:13 -07:00
Peter deHaan 4282c93b2b Add link to FAQ in unsupported view 2017-08-03 10:53:51 -07:00
Danny Coates 434f8b56cc Merge pull request #412 from mozilla/i151
throw key errors before download begins
2017-08-03 10:35:50 -07:00
Danny Coates 5c793dcde8 Merge pull request #404 from weihanglo/async-await
Use async function instead of promise (#325)
2017-08-03 10:24:57 -07:00
Danny Coates e36f685bd2 throw key errors before download begins 2017-08-03 10:04:09 -07:00
Peter deHaan 5a7d05744c Merge pull request #406 from pdehaan/issue-373
Add noscript tag
2017-08-03 09:39:23 -07:00
Marcelo Poli 81999f2fc4 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-08-03 16:31:36 +00:00
Peter deHaan c419d29c96 Updated FAQ wording 2017-08-03 09:26:04 -07:00
Marcelo Poli 8cdfb47f84 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-08-03 16:11:06 +00:00
Tymur Faradzhev 5e192d0f4a Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-03 15:31:37 +00:00
Tymur Faradzhev 1460537169 Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-03 15:11:27 +00:00
Tymur Faradzhev f888ea74b0 Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Tymur Faradzhev <faradzhev.timur@gmail.com>
2017-08-03 14:51:07 +00:00
Peter deHaan ea6c78f49a Add en-US default text to footer links 2017-08-02 23:43:00 -07:00
Peter deHaan 3f316fb8b0 Add noscript tag 2017-08-02 23:37:55 -07:00
Danny Coates ee444186e9 fixed .gitattributes locale dir 2017-08-02 23:02:50 -07:00
Weihang Lo 2b7f06dda2 Code formatting 2017-08-03 14:01:13 +08:00
Danny Coates c19b273d4f added .gitattributes 2017-08-02 22:59:47 -07:00
Weihang Lo 596ad871df Use async function instead of promise (#325) 2017-08-03 13:31:23 +08:00
eljuno 655f685883 Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- eljuno <eljunotrie_anggoro@yahoo.co.id>
- Kiki <kelimutu.rizki@gmail.com>
2017-08-03 03:50:50 +00:00
Weihang Lo bbe111a95e Use async function instead of promise (#325) 2017-08-03 11:11:04 +08:00
Rodrigo b063cf35b8 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-08-03 00:50:35 +00:00
Danny Coates 030d65d7af v1.0.3 2017-08-02 16:59:41 -07:00
Danny Coates aa113fd903 updated production locales 2017-08-02 16:58:26 -07:00
Danny Coates caeba94e04 format 2017-08-02 16:51:18 -07:00
Emin Mastizada a7de951115 Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2017-08-02 23:50:59 +00:00
Emin Mastizada e17d1f7235 Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2017-08-02 23:31:39 +00:00
Emin Mastizada 51ba253f95 Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2017-08-02 23:10:44 +00:00
Danny Coates fef26e083a removed extraneous captureException 2017-08-02 15:53:52 -07:00
Danny Coates de826afb9b Merge pull request #402 from mozilla/filter-sentry
filter the hash from error reports
2017-08-02 15:50:09 -07:00
Danny Coates 5944b85e67 filter the hash from error reports 2017-08-02 15:04:34 -07:00
Danny Coates d208a82089 Merge pull request #400 from mozilla/fix-dl-breaking-link
fix link that breaks download by opening in new tab
2017-08-02 14:05:55 -07:00
John Gruen a64eced8be fix link that breaks download by opening in new tab 2017-08-02 22:38:17 +02:00
Danny Coates ada45323e1 Merge pull request #369 from pdehaan/eslint-no-alert
Add ESLint no-alert shame rule
2017-08-02 12:34:27 -07:00
Danny Coates ced8c24f47 Merge pull request #396 from mozilla/i395
add babel-polyfill
2017-08-02 12:31:43 -07:00
Danny Coates 5b9e9d5146 Merge pull request #394 from mozilla/i393
catch JSON.parse errors of storage metadata
2017-08-02 12:28:55 -07:00
Danny Coates 280a4f65e7 begrudgingly added babel-polyfill 2017-08-02 12:25:13 -07:00
Danny Coates d2dd9f4b4d Merge pull request #367 from pdehaan/issue-364
Generate production locales using 'compare-locales'
2017-08-02 12:05:23 -07:00
Danny Coates 2897a39131 catch JSON.parse errors of storage metadata 2017-08-02 11:21:03 -07:00
Erica 626b9068a9 Merge pull request #392 from weihanglo/master
Adjust hover behavior on send-logo (#382)
Fixes: #382.
2017-08-02 13:59:22 -04:00
Weihang Lo c3bb876a2c Adjust hover behavior on send-logo (#382) 2017-08-03 01:40:57 +08:00
Weihang Lo 48912dd4d4 Adjust hover behavior on send-logo (#382) 2017-08-03 00:38:56 +08:00
Марко Костић (Marko Kostić) f1c894d14f Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2017-08-02 15:31:30 +00:00
Марко Костић (Marko Kostić) 60d61fa52c Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2017-08-02 15:11:02 +00:00
ariestiyansyah fe313f1001 fix percentage view on mobile layout 2017-08-02 21:11:59 +07:00
eljuno 68705f60db Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- Rahmat Subekti <rahmatsubekti@live.com>
- eljuno <eljunotrie_anggoro@yahoo.co.id>
- Kiki <kelimutu.rizki@gmail.com>
2017-08-02 12:31:54 +00:00
Fjoerfoks 92303988c0 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-08-02 11:32:21 +00:00
Peter deHaan 49d578217c Merge pull request #380 from pdehaan/readme-pontoon
Add Pontoon URL to README
2017-08-01 22:24:48 -07:00
Peter deHaan 1abb3b7ebe Update README text w/ guidance from flod 2017-08-01 21:51:19 -07:00
Peter deHaan 4f3c2498a6 Add get-prod-locales and lint-locales scripts 2017-08-01 20:24:54 -07:00
Peter deHaan 33babe6f67 Add Pontoon URL to README 2017-08-01 17:01:11 -07:00
Tomáš Zelina a51ee89939 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Tomáš Zelina <zelitomas@gmail.com>
2017-08-01 20:31:18 +00:00
Danny Coates bca79489c0 added 'v' to untagged version.json 2017-08-01 13:19:43 -07:00
avelper ddfbb06e1a Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
- Jordi Cuevas <jordicuevas@gmail.com>
2017-08-01 15:31:44 +00:00
Ton cd2c944d41 Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Ton <tonnes.mb@gmail.com>
2017-08-01 12:11:07 +00:00
Peter deHaan 5f66496519 Add ESLint no-alert rule 2017-07-31 23:59:18 -07:00
Peter deHaan 318964251d Fix some linting errors 2017-07-31 15:25:29 -07:00
Peter deHaan 5effeb16d1 Generate production locales using 'compare-locales' 2017-07-31 14:34:28 -07:00
Danny Coates c9c7c3182c v1.0.2 2017-07-31 11:58:03 -07:00
Danny Coates 18b95c497f Merge pull request #365 from mozilla/fix-chrome-footer
revert the IE fix to fix footer on chrome
2017-07-31 11:55:35 -07:00
Roberto Alvarado 80d0f73b06 Pontoon: Update Spanish (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-07-31 18:35:08 +00:00
Danny Coates 522290dbef revert the IE fix to fix footer on chrome 2017-07-31 11:34:48 -07:00
Danny Coates 967100bf50 v1.0.1 2017-07-31 10:28:04 -07:00
Erica Wright 3e52c6f69f fix ie css 2017-07-31 12:59:13 -04:00
Danny Coates 81be38fbc8 Merge pull request #353 from mozilla/no-ie
redirect ie to /unsupported
2017-07-31 09:56:11 -07:00
Abhinav Adduri 566de14016 adding in hardcoded strings for ie, ie doesn't work with l20n: Object doesn't support property or method 'from' 2017-07-31 09:35:47 -07:00
Danny Coates 9a285df790 Merge pull request #360 from pdehaan/fix-linting
Fix some linting nits
2017-07-31 09:21:33 -07:00
Danny Coates 02dda0f97e Merge pull request #362 from mozilla/350-unsupported-category
Adjusts category of unsupported event (fixes #350).
2017-07-31 09:19:33 -07:00
Michael Köhler 6edd4b7f5c Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-07-31 16:10:18 +00:00
Peter deHaan 40d6d1d4e6 Add trailing newline and run 'npm run format' 2017-07-31 08:32:55 -07:00
Chuck Harmston 1c7baed241 Adjusts category of unsupported event (fixes #350). 2017-07-31 09:55:46 -05:00
Michal Vašíček 257924431d Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Michal Vašíček <michalvasicek@icloud.com>
2017-07-31 12:50:44 +00:00
Juraj Cigáň 4a590753c9 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-07-31 11:10:44 +00:00
Rhoslyn Prys 460e5c6bbf Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-07-31 10:50:41 +00:00
Maykon Chagas 51cc366cfa Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-07-31 10:10:30 +00:00
Peter deHaan 78b7bea284 Fix some linting nits 2017-07-31 00:01:00 -07:00
Fjoerfoks 65d4f9219b Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-31 06:31:21 +00:00
Danny Coates 6d20f09d0a Merge pull request #355 from pdehaan/issue-155
Make order of uploaded files in list consistent
2017-07-30 23:18:07 -07:00
Danny Coates dc83ec1123 Merge pull request #356 from pdehaan/issue-283b
Get rid of console.log statements
2017-07-30 23:17:09 -07:00
Peter deHaan dff443287c Tweak the package.json require statement 2017-07-30 20:11:12 -07:00
ravmn 8e8b5cefe5 Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-07-30 22:31:17 +00:00
ravmn 616831ebfb Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-07-30 22:10:26 +00:00
Roberto Alvarado d8a8087c2c Pontoon: Update Spanish (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-07-30 20:50:48 +00:00
ravmn 85a9ef9539 Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-07-30 19:31:22 +00:00
ravmn aeacf7f0e7 Pontoon: Update Spanish (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- ravmn <ravmn@ravmn.cl>
2017-07-30 19:10:33 +00:00
Marcelo Poli 0cd6882e0d Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-07-30 17:10:18 +00:00
Selim Şumlu 41f68e2735 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-07-30 16:10:30 +00:00
Selim Şumlu d42fa37962 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-07-30 15:31:21 +00:00
Selim Şumlu c327507989 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-07-30 15:10:39 +00:00
Bjørn I 2f02fff999 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-07-30 12:10:52 +00:00
Moḥend Belqasem b3a97cec2e Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Moḥend Belqasem <belkacem77@gmail.com>
2017-07-30 10:31:29 +00:00
Francesco Lodolo a17744a075 Merge pull request #358 from pdehaan/missing-locale-titles
Fix some missing .title attributes in dev-only locales
2017-07-30 07:13:06 +02:00
Francesco Lodolo 8f023e36cf Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-30 05:10:53 +00:00
Roberto Alvarado da1b0689a5 Pontoon: Update Spanish (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-07-30 03:31:27 +00:00
Peter deHaan 3adea6d815 Fix some missing .title attributes in dev-only locales 2017-07-29 17:49:58 -07:00
Peter deHaan 8d1baca60e Remove catch() block 2017-07-29 15:25:50 -07:00
dgadelha 87be7aa64f Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
- dgadelha <dgadelha@live.com>
2017-07-29 20:31:17 +00:00
Roberto Alvarado 9e91e7349a Pontoon: Update Spanish (es-MX) localization of Test Pilot: Firefox Send
Localization authors:
- Roberto Alvarado <ralv888@gmail.com>
2017-07-29 18:10:56 +00:00
Balázs Meskó f4b538b8dc Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-07-29 17:10:53 +00:00
Danny Coates 63d0c2e679 Merge pull request #354 from pdehaan/en-us-cookies
Remove /en-US/ from cookies link in footer
2017-07-29 09:11:41 -07:00
Victor Bychek 52fd555ffc Pontoon: Update Russian (ru) localization of Test Pilot: Firefox Send
Localization authors:
- Alexander Slovesnik <unghost@mozilla-russia.org>
- Victor Bychek <a@bychek.ru>
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-29 14:10:54 +00:00
Andreas Pettersson 3517ad0826 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
2017-07-29 11:31:27 +00:00
Rok Žerdin 4796fbeaa9 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
- Lan Glad <upwinxp@gmail.com>
2017-07-29 11:31:25 +00:00
Peter deHaan 42ef0facc9 Get rid of console.log statements 2017-07-29 00:04:50 -07:00
Peter deHaan a5b5628d88 Make order of uploaded files in list consistent 2017-07-28 23:43:57 -07:00
Francesco Lodolo 1bf8dd93fd Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-29 06:31:13 +00:00
Peter deHaan ae83e47813 Remove /en-US/ from cookies link in footer 2017-07-28 23:12:25 -07:00
Pin-guang Chen 83f9853112 Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-07-29 04:50:52 +00:00
xcffl 16bba3ff86 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- xcffl <xcffl@outlook.com>
2017-07-29 03:50:46 +00:00
Danny Coates a42a54670b redirect ie to /unsupported 2017-07-28 19:28:38 -07:00
YFdyh000 0586c00aed Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-07-29 00:10:49 +00:00
Håvar Henriksen 197cd18838 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-28 23:31:33 +00:00
manxmensch f97de2cd31 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-28 23:31:28 +00:00
Kohei Yoshino 8164f3585e Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-07-28 21:32:23 +00:00
Rhoslyn Prys f829e90408 Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-07-28 20:51:05 +00:00
goofy 5e73841952 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- goofy <goofy@babelzilla.org>
2017-07-28 20:51:01 +00:00
Théo Chevalier e31f6faa9f Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
- goofy <goofy@babelzilla.org>
2017-07-28 20:31:27 +00:00
Juraj Cigáň 03e4d7e687 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-07-28 19:50:38 +00:00
Michael Wolf a9fdd5b1a5 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-28 19:31:56 +00:00
Michael Wolf d7be980147 Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-28 19:31:53 +00:00
Rodrigo abf2a0a9f8 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-07-28 19:31:50 +00:00
Michael Köhler c7b3ee6098 Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-07-28 19:31:46 +00:00
Rodrigo aded224632 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-07-28 19:10:38 +00:00
Théo Chevalier 2a43477cd4 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-28 19:10:36 +00:00
Danny Coates 6be94156db Merge pull request #339 from mozilla/v49
Show error page on firefox v49 and below
2017-07-28 11:42:21 -07:00
Erica Wright 8cb40effa5 edit some syntax 2017-07-28 14:11:58 -04:00
Marcelo Poli 4cd4b2a060 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-07-28 14:51:09 +00:00
YFdyh000 27fa13caed Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-07-28 14:31:15 +00:00
Bjørn I 3ee72ca065 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-07-28 13:11:06 +00:00
Bjørn I 114a99a358 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-07-28 12:50:46 +00:00
Selim Şumlu 0c59b2330c Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-07-28 11:51:02 +00:00
Selim Şumlu f9410d5698 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
- erdem cobanoglu <erdemarley@gmail.com>
2017-07-28 11:31:35 +00:00
manxmensch 4e9b6e25ca Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-28 02:31:42 +00:00
Danny Coates 82bc6cad74 Merge pull request #346 from pdehaan/issue-343
Add docs/CODEOWNERS file
2017-07-27 16:46:36 -07:00
Håvar Henriksen 139007bece Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-27 23:10:21 +00:00
Peter deHaan 0afd70db8c Add docs/CODEOWNERS file 2017-07-27 15:47:22 -07:00
erdem cobanoglu 934b98cafd Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
- erdem cobanoglu <erdemarley@gmail.com>
2017-07-27 22:31:30 +00:00
Juraj Cigáň 7bb85bc5aa Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-07-27 22:10:50 +00:00
Erica a1973d8b96 Merge pull request #345 from mozilla/ui
wrap long file names
2017-07-27 16:59:13 -04:00
Daniela Arcese 84b01ba58b don't allow text selection on percentage 2017-07-27 16:43:51 -04:00
Daniela Arcese 188429e03d wrap long file names 2017-07-27 16:32:05 -04:00
Erica d3003228e7 Merge pull request #344 from mozilla/ui
don't wrap file list headers
2017-07-27 16:04:07 -04:00
Daniela Arcese 50c7c3bef9 don't wrap file list headers 2017-07-27 16:01:33 -04:00
Daniela Arcese 07b9545b03 Merge pull request #327 from youwenliang/ui-refinement
Modify popup delete dialog
2017-07-27 15:55:05 -04:00
Erica 0f031e2d8b Merge pull request #341 from mozilla/ui
center percentage text on all browser versions
2017-07-27 15:46:16 -04:00
Daniela Arcese 083df44395 center percentage text on all browser versions 2017-07-27 15:40:06 -04:00
Håvar Henriksen a932af87b5 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-27 19:31:21 +00:00
Erica Wright 8d8c2efa23 create /unsupported/outdated version of the /unsupported page 2017-07-27 14:24:49 -04:00
Erica Wright 318e1a49bf remove hiding elements with jquery 2017-07-27 13:23:13 -04:00
Francesco Lodolo c9e914faba Merge pull request #340 from flodolo/fix_dupes
Remove duplicate entities in localized FTL files
2017-07-27 19:20:11 +02:00
Abhinav Adduri 7a53ed96ed moved back to common 2017-07-27 13:05:27 -04:00
Abhinav Adduri 8eae1f282b fixed metrics for sender and recipient 2017-07-27 13:05:27 -04:00
Abhinav Adduri fae6561393 adding metrics event 2017-07-27 13:05:27 -04:00
Erica Wright 6b291ae012 show error page on firefox v49 and below 2017-07-27 13:05:27 -04:00
Erica 303b34a70b Merge pull request #337 from mozilla/const-lint
support v 50 and 51 by not allowing const in loops
2017-07-27 13:00:15 -04:00
Francesco Lodolo [:flod] d7b856f8ca Remove duplicate entities in localized FTL files 2017-07-27 18:57:42 +02:00
Erica Wright 6111e71506 support v 50 and 51 by not allowing const in loops 2017-07-27 12:49:35 -04:00
Francesco Lodolo 5b0de9f9b5 Merge pull request #338 from flodolo/fix_l10n
Remove duplicated strings in en-US, fix nn-NO file
2017-07-27 17:12:13 +02:00
avelper 8cc50e2ecb Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-07-27 15:11:08 +00:00
Francesco Lodolo [:flod] f6f6b4a4e2 nn-NO: fix missing title in uploadingPageCancel 2017-07-27 17:08:25 +02:00
Francesco Lodolo [:flod] 2de6037a83 en-US: remove duplicate strings 2017-07-27 17:03:29 +02:00
You-Wen Liang (Mark) 9d3f6680cb Update main.css
fix responsive
2017-07-27 23:00:32 +08:00
Francesco Lodolo 462002d84b German(de): Fixed missing value for deleteFileButton (#336) 2017-07-27 16:54:48 +02:00
Erica bb6c747297 Merge pull request #334 from mozilla/ui
fix functionality on firefox 50 and 51
2017-07-27 10:47:58 -04:00
Daniela Arcese e09385be05 fix functionality on firefox 50 and 51 2017-07-27 10:46:28 -04:00
Lan Glad 11bbf34feb Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
- Lan Glad <upwinxp@gmail.com>
2017-07-27 14:34:25 +00:00
Théo Chevalier 8214409ac5 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-27 14:34:22 +00:00
Francesco Lodolo 098ece066f Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-27 14:18:07 +00:00
avelper e0e7853882 Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-07-27 13:31:42 +00:00
avelper 40d8c441db Pontoon: Update Spanish (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
2017-07-27 13:10:36 +00:00
Håvar Henriksen bacafb02be Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-27 12:11:11 +00:00
Bjørn I 68ed9a6953 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2017-07-27 08:50:56 +00:00
Mark Liang cd8b09f900 modify popup delete dialog 2017-07-27 15:38:10 +08:00
Sandro 305cbb8a41 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Sandro <gialloporpora@mozillaitalia.org>
2017-07-27 07:31:13 +00:00
Håvar Henriksen d5b2b4c4f1 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-27 02:31:33 +00:00
Maykon Chagas f2b4e3f661 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-07-27 01:31:24 +00:00
Maykon Chagas 0d45799202 Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-07-27 01:10:29 +00:00
Maykon Chagas ba66e0a72a Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
2017-07-27 00:50:51 +00:00
Marcelo Poli b5244c75ca Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-07-27 00:10:55 +00:00
Marcelo Poli 1f85096422 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-07-26 23:50:31 +00:00
Marcelo Poli 3ecf0e7d29 Pontoon: Update Spanish (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Marcelo Poli <enzomatrix@gmail.com>
2017-07-26 23:32:06 +00:00
Selim Şumlu 046d4ce142 Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2017-07-26 20:31:33 +00:00
Danny Coates 4c2ae4fd6b v1.0.0 2017-07-26 12:08:38 -07:00
Danny Coates dd62a137d2 Merge pull request #323 from mozilla/disableNotifications
disable upload/download notifications
2017-07-26 12:04:03 -07:00
Danny Coates ea63c4a0bf Merge pull request #322 from mozilla/ui
fix feedback button jump
2017-07-26 11:55:37 -07:00
Rok Žerdin 47ee702fcb Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-26 18:33:22 +00:00
Danny Coates d0c6a18363 disable upload/download notifications 2017-07-26 11:32:06 -07:00
Daniela Arcese 91dec114a6 fix feedback button jump 2017-07-26 14:18:14 -04:00
Rok Žerdin 702a0a7eae Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-26 17:50:55 +00:00
Danny Coates 19eec66ece added prod languages 2017-07-26 09:59:08 -07:00
Daniela Arcese f63496e46c Merge pull request #320 from mozilla/ui
fix German footer
2017-07-26 11:51:05 -04:00
Balázs Meskó e2671e6634 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-07-26 15:10:42 +00:00
Daniela Arcese d441bb3125 fix German footer 2017-07-26 11:02:47 -04:00
Rok Žerdin 13efe45f88 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-26 14:11:59 +00:00
Fjoerfoks 137acb54a9 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-26 12:10:30 +00:00
Moḥend Belqasem d72ba8af03 Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Moḥend Belqasem <belkacem77@gmail.com>
2017-07-26 11:50:56 +00:00
Fjoerfoks 5b178b93f1 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-26 11:50:52 +00:00
Moḥend Belqasem 2f5a1dda5b Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Moḥend Belqasem <belkacem77@gmail.com>
2017-07-26 11:31:43 +00:00
Fjoerfoks 62b1d86f7c Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-26 11:31:40 +00:00
Rhoslyn Prys 2e9de12f7a Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-07-26 11:10:38 +00:00
Moḥend Belqasem 5e7c99e0fb Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Moḥend Belqasem <belkacem77@gmail.com>
2017-07-26 11:10:36 +00:00
Fjoerfoks 68f40c773f Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-26 11:10:33 +00:00
Rhoslyn Prys 300b0fce18 Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-07-26 10:50:27 +00:00
Jim Spentzos 78c58bf4d3 Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Jim Spentzos <jamesspentzos@hotmail.com>
2017-07-26 10:50:25 +00:00
Rhoslyn Prys e57dbdf95c Pontoon: Update Welsh (cy) localization of Test Pilot: Firefox Send
Localization authors:
- Rhoslyn Prys <rprys@yahoo.com>
2017-07-26 10:31:19 +00:00
Μιχάλης 91831ce1dd Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Jim Spentzos <jamesspentzos@hotmail.com>
- Μιχάλης <mikem132@protonmail.com>
2017-07-26 10:31:15 +00:00
Fjoerfoks fef9473810 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-26 10:10:57 +00:00
Michael Wolf b19d71ebc0 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 09:51:00 +00:00
Michael Wolf a84ecf77a2 Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 09:50:58 +00:00
Balázs Meskó e9ad080e35 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-07-26 09:50:56 +00:00
Fjoerfoks c024f039c1 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2017-07-26 09:50:54 +00:00
Michael Wolf e6fd97744a Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 09:31:32 +00:00
Michael Wolf c880936ba4 Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 09:31:29 +00:00
Balázs Meskó 7eba49027c Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- Balázs Meskó <meskobalazs@gmail.com>
2017-07-26 09:31:23 +00:00
Michael Wolf 7e0a8f76d5 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 09:10:34 +00:00
Michael Wolf 322f8cc168 Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 09:10:30 +00:00
Michael Wolf c7ef83b6a1 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-26 08:51:04 +00:00
Rok Žerdin cc47067870 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-26 07:51:06 +00:00
Théo Chevalier 41662987a6 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-26 07:51:01 +00:00
Rok Žerdin 4557e2fb6f Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-26 07:31:16 +00:00
manxmensch 3690dbcb14 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 07:31:14 +00:00
manxmensch e36c698720 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 07:10:39 +00:00
Francesco Lodolo 245a9a2ddd Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-26 07:10:36 +00:00
manxmensch 2d938514d3 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 06:51:07 +00:00
Francesco Lodolo 640e3811b4 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-26 06:51:05 +00:00
manxmensch c0a1268df4 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 06:31:28 +00:00
Théo Chevalier 8d0aaadb7e Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-26 06:31:25 +00:00
Michal Stanke 339cddd67b Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Michal Stanke <mstanke@mozilla.cz>
2017-07-26 06:31:21 +00:00
manxmensch dddb9e66b9 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 06:10:48 +00:00
Théo Chevalier cd0477d747 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-26 06:10:46 +00:00
Théo Chevalier 020b037f69 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-26 05:50:32 +00:00
manxmensch ff5f0040e3 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 05:31:23 +00:00
Théo Chevalier 7d48c5e793 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2017-07-26 05:31:21 +00:00
manxmensch 993fa1a3a4 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 05:10:29 +00:00
manxmensch 9b88d3f5e4 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 04:50:30 +00:00
manxmensch cd4df5f6d8 Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2017-07-26 04:31:34 +00:00
Pin-guang Chen 7c461eab52 Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-07-26 04:10:49 +00:00
Kohei Yoshino 1b7e94c2d8 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-07-26 03:51:07 +00:00
Pin-guang Chen dcd3c0b3ff Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-07-26 03:51:03 +00:00
Pin-guang Chen bfe16a5300 Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-07-26 03:31:24 +00:00
Pin-guang Chen 8a1f905831 Pontoon: Update Chinese (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2017-07-26 03:10:48 +00:00
Håvar Henriksen e5b4165eff Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-26 00:12:35 +00:00
Marco Aurélio be596e91ef Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Marco Aurélio <fxhelp@yahoo.com>
- Cynthia Pereira <cynthiacpereira@gmail.com>
2017-07-25 23:10:46 +00:00
Danny Coates f20c995d1a Merge pull request #314 from mozilla/i312
added L10N_DEV environment variable for making all languages available
2017-07-25 15:59:31 -07:00
Cynthia Pereira 5f97c130bd Pontoon: Update Portuguese (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Cynthia Pereira <cynthiacpereira@gmail.com>
- Marco Aurélio <fxhelp@yahoo.com>
2017-07-25 22:51:06 +00:00
Håvar Henriksen 13bf765be0 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-25 22:31:40 +00:00
Matjaž Horvat 443de49db8 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:56 +00:00
Matjaž Horvat 3d82ce0909 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:53 +00:00
Matjaž Horvat b259cba882 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:48 +00:00
Matjaž Horvat a138586dd7 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:44 +00:00
Matjaž Horvat e427203a45 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:41 +00:00
Håvar Henriksen 8882024e8f Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:39 +00:00
Matjaž Horvat 581ae224e7 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:36 +00:00
Matjaž Horvat dccf3329ca Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:33 +00:00
Matjaž Horvat 1450322585 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- Matjaž Horvat <matjaz.horvat@gmail.com>
2017-07-25 22:11:30 +00:00
Juraj Cigáň 5d1639851b Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-07-25 21:31:39 +00:00
Kohei Yoshino 77939cc280 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-07-25 21:31:34 +00:00
Danny Coates 7fd8fb4914 added L10N_DEV environment variable for making all languages available 2017-07-25 14:28:49 -07:00
Juraj Cigáň 91ede1bdec Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-07-25 21:10:29 +00:00
Kohei Yoshino 29698a55c4 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-07-25 21:10:27 +00:00
Juraj Cigáň abfc07b1e3 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2017-07-25 20:51:41 +00:00
Rodrigo a0401b24e8 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-07-25 20:51:32 +00:00
Håvar Henriksen dbf39efd35 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-25 20:51:25 +00:00
Kohei Yoshino fe7d71d165 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2017-07-25 20:51:22 +00:00
Rodrigo 977fe65dce Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-07-25 20:31:35 +00:00
Håvar Henriksen 4e79925c7b Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2017-07-25 20:31:32 +00:00
Danny Coates 416e8d81f9 Merge pull request #313 from mozilla/driverTimeout
removing timeout limit for front end tests
2017-07-25 13:21:59 -07:00
Abhinav Adduri 215f0f74ad removing timeout limit for front end tests 2017-07-25 13:14:08 -07:00
Rodrigo 93930b91a2 Pontoon: Update Portuguese (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2017-07-25 20:11:11 +00:00
Danny Coates 65c24990cd Merge pull request #311 from mozilla/expiredDownloadPage
expired ids should reject instead of returning null
2017-07-25 13:10:46 -07:00
Danny Coates 424eb2c37a refactor all redis calls to reject on null 2017-07-25 13:00:02 -07:00
YFdyh000 d10cbcba3e Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-07-25 19:51:29 +00:00
Andreas Pettersson 553f0958ba Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
2017-07-25 19:32:35 +00:00
Michael Wolf ae2bae88cf Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-25 19:32:29 +00:00
Rok Žerdin 313b145297 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-25 19:32:22 +00:00
YFdyh000 faf5fd17d3 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-07-25 19:32:16 +00:00
Danny Coates dd0ab710de format 2017-07-25 12:21:07 -07:00
Andreas Pettersson c2bcac76e9 Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
2017-07-25 19:11:04 +00:00
Rok Žerdin bf7024c6d9 Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-25 19:11:00 +00:00
Francesco Lodolo 992cdcc70e Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-25 19:10:58 +00:00
YFdyh000 10e446bb41 Pontoon: Update Chinese (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
2017-07-25 19:10:56 +00:00
Danny Coates 15ac0e1d49 expired ids should reject instead of returning null 2017-07-25 12:00:52 -07:00
Michael Wolf 4946e9c382 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-25 18:55:15 +00:00
Rok Žerdin ece302342e Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
2017-07-25 18:55:11 +00:00
Francesco Lodolo 721aa48d53 Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-25 18:55:07 +00:00
Danny Coates 0761fcf902 Merge pull request #302 from youwenliang/ux-tweak
UX Refine WIP
2017-07-25 11:42:25 -07:00
Michael Wolf 33602f1432 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2017-07-25 18:39:42 +00:00
Francesco Lodolo 74b305442c Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-25 18:39:40 +00:00
Michael Köhler f30393cf33 Pontoon: Update German (de) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Köhler <michael.koehler1@gmx.de>
2017-07-25 18:39:38 +00:00
Danny Coates e7688a62c6 Merge branch 'master' into ux-tweak 2017-07-25 11:31:13 -07:00
Danny Coates 109617d817 Merge pull request #310 from mozilla/addresses159
if the download card is pressed, the expired card shows up properly
2017-07-25 11:29:27 -07:00
Abhinav Adduri 8f66db2295 changed from expired to errored 2017-07-25 11:28:33 -07:00
Abhinav Adduri 57e0d17cbc if the download card is pressed, the expired card shows up properly 2017-07-25 10:58:18 -07:00
Francesco Lodolo 93138773ca Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
2017-07-25 17:54:36 +00:00
Abhinav Adduri 1bfa6321b1 Merge pull request #269 from mozilla/ftlFixes
refactored ftl file
2017-07-25 09:59:29 -07:00
Abhinav Adduri 10d489f766 fixed issues, fluentfmt output matches 2017-07-25 09:55:40 -07:00
Abhinav Adduri 4065bbcfd7 removing bundle files 2017-07-25 09:25:49 -07:00
Abhinav Adduri 330da9b258 merging master 2017-07-25 09:23:42 -07:00
Danny Coates 3febcfe1ea Merge pull request #291 from mozilla/legal
added legal page
2017-07-25 09:03:11 -07:00
You-Wen Liang (Mark) 0cdae11456 Update main.css
fix media queries
2017-07-25 23:55:16 +08:00
Daniela Arcese 5996bceef7 Merge pull request #307 from mozilla/ui
don't show error page on upload cancel
2017-07-25 11:48:34 -04:00
Daniela Arcese ba277b9382 don't show error page on upload cancel 2017-07-25 11:08:41 -04:00
Mark Liang 5046b5022a Unify error image & expire image margin 2017-07-25 18:20:25 +08:00
Mark Liang 74334433cd Modify link to send homepage 2017-07-25 15:52:48 +08:00
Mark Liang 33bf82e963 add hover state for download button 2017-07-25 15:49:26 +08:00
Mark Liang c72896aeb7 Fix footer responsive 2017-07-25 15:45:58 +08:00
Mark Liang b306ffec8d Modify Feedback icon + Footer responsive 2017-07-25 15:34:01 +08:00
Mark Liang e1c21dd9b0 Fix CSS lint failed 2017-07-25 14:52:21 +08:00
Mark Liang 9f8cedc0db Remove unused files 2017-07-25 14:14:17 +08:00
Mark Liang 12c02ef6af Update UI & Responsive 2017-07-25 14:12:26 +08:00
Danny Coates 5a564e2c37 tighten csp 2017-07-24 22:08:43 -07:00
Danny Coates 4b8445191b Merge pull request #299 from mozilla/circleVersion
use CIRCLE_TAG as version.json version if present
2017-07-24 18:35:34 -07:00
Danny Coates 12033edda5 use CIRCLE_TAG as version.json version if present 2017-07-24 18:25:28 -07:00
Danny Coates 8e6d8eaddd bump version 2017-07-24 16:34:00 -07:00
Daniela Arcese faaa8afe17 Merge pull request #296 from mozilla/ui
restyle delete popup
2017-07-24 17:42:06 -04:00
Daniela Arcese 84e8abf2c5 fix horizontal scroll issue 2017-07-24 17:38:03 -04:00
Danny Coates 5db8a20b9d Merge pull request #295 from mozilla/envvar
renamed environment variables to remove P2P_ prefix
2017-07-24 14:30:09 -07:00
Danny Coates 117c6ea12d Merge branch 'master' into envvar 2017-07-24 14:06:55 -07:00
Danny Coates 83880d97e6 Merge pull request #294 from mozilla/invalidDragAndDrops
dealing with invalid drag and drops
2017-07-24 13:56:00 -07:00
Abhinav Adduri c3be5228cb removing dialog 2017-07-24 13:35:40 -07:00
Danny Coates ade214c69c Merge pull request #297 from mozilla/expire
added environment variable for expire time
2017-07-24 13:27:37 -07:00
Danny Coates 4cb040d70d added environment variable for expire time 2017-07-24 13:20:18 -07:00
Danny Coates 73ccce627c renamed environment variables to remove P2P_ prefix 2017-07-24 13:10:30 -07:00
Daniela Arcese 4043d35c8b restyle delete popup 2017-07-24 16:04:31 -04:00
Abhinav Adduri a576cc0198 dealing with invalid drag and drops 2017-07-24 12:42:16 -07:00
Abhinav Adduri fa1f0208a4 added tagLength to fileReceiver 2017-07-24 12:16:01 -07:00
Danny Coates 193d3b1aef Merge pull request #292 from mozilla/fixes289
Fixes289
2017-07-24 12:10:12 -07:00
Abhinav Adduri 3b28ce88bf removing bundle from gitignore 2017-07-24 12:03:38 -07:00
Abhinav Adduri c77983d902 removing bundle file, adding public/bundle.js to gitignore 2017-07-24 10:54:57 -07:00
Abhinav Adduri 6ef9f8fa43 fixes 289 2017-07-24 10:52:54 -07:00
Danny Coates 1eabc1a11e added legal page 2017-07-24 10:51:57 -07:00
Danny Coates 9136694d29 Merge pull request #288 from mozilla/uploads
fix: Don`t allow upload when not on the upload page.
2017-07-24 10:30:52 -07:00
Erica Wright ec7f058afc don`t allow upload when not on the upload page. 2017-07-24 13:04:46 -04:00
Danny Coates 62989ee2c9 Merge pull request #285 from mozilla/phases
added messages for processing phases
2017-07-24 09:53:45 -07:00
Danny Coates 85068e97ae Merge pull request #267 from mozilla/responsive-and-feedback
make site responsive and add feedback link
2017-07-24 09:52:39 -07:00
Abhinav Adduri eb73dbfe78 removed empty lines 2017-07-24 09:41:37 -07:00
John Gruen dde2c4d5a9 Merge branch 'master' of https://github.com/mozilla/send into responsive-and-feedback 2017-07-24 18:31:47 +02:00
Danny Coates 20cf8d0a15 added messages for processing phases 2017-07-24 09:23:56 -07:00
Peter deHaan b2bd623a49 Merge pull request #286 from pdehaan/issue-205
Update download progress bar color
2017-07-24 08:49:45 -07:00
Peter deHaan fc3001978c Update download progress bar color 2017-07-23 22:42:40 -07:00
Danny Coates d6823f492d Merge pull request #281 from pdehaan/deLint
Stop ESLint from linting the /public/ directory
2017-07-23 12:42:53 -07:00
Peter deHaan c3751c2efc Ignore console statements in test/ directory because yolo 2017-07-23 00:06:24 -07:00
Peter deHaan 70396e2f36 Stop ESLint from linting the /public/ directory 2017-07-22 23:26:42 -07:00
Danny Coates b557665d04 ignore the firefox installed for selenium in docker 2017-07-21 20:09:59 -07:00
Danny Coates 6393d70a33 rearrange dependencies. fixes #255 2017-07-21 20:00:38 -07:00
Danny Coates 834df8526f Merge pull request #280 from mozilla/unsupported
created /unsupported page and added gcmCompliant to /download page
2017-07-21 17:50:26 -07:00
Danny Coates f5bd332ff8 created /unsupported page and added gcmCompliant to /download page 2017-07-21 17:42:40 -07:00
Danny Coates 0d5fb1740d npm run format 2017-07-21 17:01:26 -07:00
Danny Coates 5ed4db9689 Merge pull request #279 from mozilla/split
create separate js bundles for upload/download pages
2017-07-21 16:55:50 -07:00
Danny Coates 31b810eb7d create separate js bundles for upload/download pages 2017-07-21 16:23:08 -07:00
Abhinav Adduri 168a711c05 Firefox Send and Test Pilot should not be localized 2017-07-21 14:04:59 -07:00
Abhinav Adduri 7243a10340 Merge pull request #268 from mozilla/testpilotGA
Testpilot ga
2017-07-21 13:49:45 -07:00
Abhinav Adduri b18bcd3b6e removing initialization on top in favor of default 2017-07-21 13:41:59 -07:00
Abhinav Adduri 09a6192bf5 merging master 2017-07-21 13:36:26 -07:00
Abhinav Adduri 9585850d6d final fixes 2017-07-21 13:25:08 -07:00
Abhinav Adduri 14f3d837f9 if checkexistence removes the last item in the list, call toggleHeader 2017-07-21 12:52:28 -07:00
Abhinav Adduri d660eda64c refactored localStorage into storage module for frontend 2017-07-21 12:44:55 -07:00
Danny Coates 2bbb0f14f3 bump minor version for new ui 2017-07-21 12:27:01 -07:00
Abhinav Adduri b123b736e9 added comment to expiry column header 2017-07-21 11:13:45 -07:00
Abhinav Adduri 28e496fe05 more fixes 2017-07-21 11:10:57 -07:00
Abhinav Adduri 8ebfaf9ad9 adding requested changes 2017-07-21 10:56:25 -07:00
Abhinav Adduri 47fd387799 added toml file 2017-07-21 10:39:41 -07:00
Danny Coates fbf906fe5b Merge pull request #266 from mozilla/sizelimit
abort uploads over maxfilesize
2017-07-21 09:48:06 -07:00
John Gruen 463393552b make site responsive and add feedback link 2017-07-21 11:59:42 +02:00
Danny Coates 18a811aa31 less wiggle 2017-07-20 17:34:53 -07:00
Abhinav Adduri cb0d69c5cd fixed one bug, added some helper functions 2017-07-20 16:06:06 -07:00
Abhinav Adduri 2c77d94af7 refactored ftl file 2017-07-20 15:47:59 -07:00
Abhinav Adduri b9eb653f1f linting 2017-07-20 15:20:52 -07:00
Abhinav Adduri 37bb6fd982 updated one metric, cd4 added to upload-deleted 2017-07-20 15:17:11 -07:00
Abhinav Adduri e5d1e8f028 Merge branch 'master' of github.com:mozilla/send into testpilotGA 2017-07-20 15:16:22 -07:00
Abhinav Adduri 99477774cf finished metrics 2017-07-20 15:16:00 -07:00
Abhinav Adduri 8d419072d7 removing references to cd7 2017-07-20 14:13:40 -07:00
Abhinav Adduri a2fcce9e40 Merge pull request #264 from mozilla/duplicate-cm
Remove duplicate custom metric.
2017-07-20 14:00:58 -07:00
Danny Coates 55d3d1a792 abort uploads over maxfilesize 2017-07-20 13:22:14 -07:00
Chuck Harmston 88dbda87dc Remove duplicate custom metric.
This fixes a mistake in the metrics documentation: a duplicate metric. This merges `cd6` and `cd4` as `cd4`, then moves `cd7` to `cd6`.
2017-07-20 13:22:15 -06:00
Abhinav Adduri 76a6f02eb7 Merge branch 'master' of github.com:mozilla/send into testpilotGA 2017-07-20 08:47:56 -07:00
Danny Coates 34f26fc017 added git package to docker image 2017-07-20 08:36:05 -07:00
Chuck Harmston 4f36f2befa Adds 'Available on Test Pilot' badge.
Also changes the style of the CircleCI badge to match.
2017-07-20 09:13:02 -06:00
Daniela Arcese f816c0bc12 Merge pull request #259 from mozilla/ui
add alert when uploading multiple files
2017-07-20 10:43:43 -04:00
Daniela Arcese 60bfd1b67c make alert show when uploading a folder 2017-07-20 10:31:39 -04:00
Erica fc7c7e2c71 Merge pull request #262 from mozilla/progress-bar
sync download progress bar with percentage
2017-07-20 10:18:30 -04:00
Daniela Arcese a9e0ab17e5 sync download progress bar with percentage 2017-07-20 09:25:04 -04:00
Daniela Arcese 80cf343516 remove check for uploads on browse 2017-07-20 09:21:26 -04:00
Abhinav Adduri 744dbb3a6f added analytics for copied, unsupported, and restarted metrics 2017-07-19 16:16:46 -07:00
Daniela Arcese e4301963a2 add alert when uploading multiple files 2017-07-19 17:27:08 -04:00
Daniela Arcese 48da85b12b Merge pull request #258 from mozilla/ui
better sync percent with progress bar
2017-07-19 17:18:49 -04:00
Daniela Arcese e02bc54172 better sync percent with progress bar 2017-07-19 17:11:46 -04:00
Danny Coates 3bb6a6fa44 Merge pull request #257 from mozilla/jsconfig
add a dynamic js script for page config
2017-07-19 14:10:03 -07:00
Daniela Arcese 64e7182f30 Merge pull request #256 from mozilla/ui
add file size limit message
2017-07-19 17:09:40 -04:00
Daniela Arcese 8c1ba8b45a tadd file size limit message 2017-07-19 17:02:27 -04:00
Danny Coates 85a7be01cb add a dynamic js script for page config 2017-07-19 14:01:34 -07:00
Abhinav Adduri 262322b9e8 Merge branch 'master' of github.com:mozilla/send 2017-07-19 12:30:17 -07:00
Abhinav Adduri 88904621b3 removing comment in server 2017-07-19 12:29:50 -07:00
Danny Coates da8f7c7172 Merge pull request #253 from pdehaan/yo-favicon
Add favicon.ico version of the Send logo
2017-07-19 12:27:16 -07:00
Danny Coates caf594877f Merge pull request #254 from pdehaan/yo-nsp
Add nsp check to circle ci
2017-07-19 12:26:57 -07:00
Abhinav Adduri ffc9386221 Merge pull request #245 from mozilla/localization
Localization
2017-07-19 12:21:43 -07:00
Abhinav Adduri 6670d9ad69 fixing conflicts 2017-07-19 12:17:24 -07:00
Peter deHaan 6d8db25d61 Add nsp check to circle ci 2017-07-19 12:03:59 -07:00
Peter deHaan a38a27dc60 Add favicon.ico version of the Send logo 2017-07-19 11:46:21 -07:00
Abhinav Adduri 69055a504b Merge branch 'master' of github.com:mozilla/send into localization 2017-07-19 11:37:52 -07:00
Abhinav Adduri 902010704a Merge branch 'master' of github.com:mozilla/send into localization 2017-07-19 11:35:11 -07:00
Erica 1992626da8 Merge pull request #252 from mozilla/ui
only allow drag and drop on upload page
2017-07-19 14:31:15 -04:00
Daniela Arcese 3c8cdbc7df only allow drag and drop on upload page 2017-07-19 14:22:21 -04:00
Erica 72b07b82c9 Merge pull request #250 from mozilla/ui
make footer not overlap
2017-07-19 13:50:38 -04:00
Daniela Arcese 846f5c7254 Merge pull request #251 from mozilla/min-images
minify all images
2017-07-19 13:43:59 -04:00
Erica Wright b0e18b29ff minify all images 2017-07-19 13:24:44 -04:00
Daniela Arcese bbc9cab661 make footer not overlap 2017-07-19 13:20:06 -04:00
Erica 6179e07dd8 Merge pull request #249 from mozilla/ui
change how the file upload box expands
2017-07-19 13:18:10 -04:00
Abhinav Adduri 1363f4d6a2 adding alt translations 2017-07-19 10:17:23 -07:00
Danny Coates 3e47556560 Merge pull request #246 from clouserw/224
remove P2P references.  Fixes #224
2017-07-19 09:55:35 -07:00
Daniela Arcese aa3a2f8c55 change how the file upload box expands 2017-07-19 12:55:05 -04:00
Erica 6e7283664c Merge pull request #242 from mozilla/ui
Make only icons clickable in file list
2017-07-19 12:53:27 -04:00
Wil Clouser fc89da153d remove P2P references. Fixes #224 2017-07-19 09:23:42 -07:00
Abhinav Adduri 8c4cb90b3a finished l10n 2017-07-19 09:04:27 -07:00
Daniela Arcese 3cdd207953 make only the icons clickable in file list 2017-07-19 10:50:23 -04:00
Daniela Arcese 5b1e2f38f4 change icons 2017-07-19 10:21:56 -04:00
Wil Clouser 5822900508 Merge pull request #236 from clouserw/faq
add FAQ. Fixes #186
2017-07-18 17:41:35 -07:00
Wil Clouser e898f35c46 add FAQ. Fixes #186 2017-07-18 15:57:26 -07:00
Abhinav Adduri 7ed30f497b finished localizations except for download.js 2017-07-18 15:46:44 -07:00
Danny Coates e66bc966d2 Merge pull request #235 from mozilla/ui
allow send another file link to open in new tab
2017-07-18 14:59:02 -07:00
Daniela Arcese acfcae5dec allow send another file link to open in new tab 2017-07-18 17:18:11 -04:00
Danny Coates 95a83922df Merge pull request #234 from mozilla/ui
fix download svg
2017-07-18 12:43:03 -07:00
Danny Coates f7329e3316 Merge pull request #232 from mozilla/escapeFilename
escape filename in the ui
2017-07-18 12:41:21 -07:00
Danny Coates cde63595e8 Merge pull request #226 from mozilla/cancel_uploads
added functionality to cancel uploads
2017-07-18 12:39:52 -07:00
Daniela Arcese ca6efdae55 fix download svg 2017-07-18 15:39:30 -04:00
Danny Coates b712a9d175 escape filename in the ui 2017-07-18 12:37:39 -07:00
Danny Coates 45eccc1cad Merge pull request #231 from mozilla/ui
move head and html tags to main template
2017-07-18 12:33:51 -07:00
Daniela Arcese 4068291f7c move head and html tags to main template 2017-07-18 14:57:29 -04:00
Erica e4a724422e Merge pull request #228 from mozilla/send-logo
add send logo
2017-07-18 14:33:51 -04:00
Erica 4fa22a6262 Merge pull request #229 from mozilla/ui
change learn more and github links
2017-07-18 14:32:11 -04:00
Daniela Arcese 1fae4cfd8d change learn more and github links 2017-07-18 14:16:28 -04:00
Daniela Arcese 9a6dbee694 add send logo 2017-07-18 14:12:42 -04:00
Danny Coates 716555f76f Merge pull request #201 from chuckharmston/5-metrics-docs
Adds metrics documentation (closes #5).
2017-07-18 10:54:52 -07:00
Abhinav Adduri cc35206ee4 added functionality to cancel uploads 2017-07-18 10:52:32 -07:00
Daniela Arcese 359e77f451 add send logo 2017-07-18 12:44:40 -04:00
Danny Coates b805c78a9a Merge pull request #223 from mozilla/send-new-file
change size of send another file links
2017-07-18 08:44:46 -07:00
Daniela Arcese a4ee6ad5e5 change size of send another file links 2017-07-18 11:37:51 -04:00
Erica 22b1c3a286 Merge pull request #222 from mozilla/ui
add footer
2017-07-18 11:27:29 -04:00
Daniela Arcese cd6648be56 add footer 2017-07-18 11:17:16 -04:00
Abhinav Adduri 8d00372824 adding flexibility for circle test times 2017-07-17 18:06:20 -07:00
Abhinav Adduri 729f716e97 Merge pull request #197 from mozilla/fixes195and192
fixes issues 195 and 192
2017-07-17 16:26:16 -07:00
Abhinav Adduri 93d2e91afa formatting 2017-07-17 16:22:43 -07:00
Abhinav Adduri 26b228a976 Merge branch 'master' of github.com:mozilla/send into fixes195and192 2017-07-17 16:18:14 -07:00
Danny Coates 9735aa62bd Merge pull request #204 from mozilla/hsts
added HSTS header
2017-07-17 16:15:32 -07:00
Abhinav Adduri 4122f4dc3e Merge pull request #193 from mozilla/frontend_tests
Frontend tests
2017-07-17 16:08:51 -07:00
Abhinav Adduri b88cf22d8a Merge branch 'master' of github.com:mozilla/send into frontend_tests 2017-07-17 16:04:10 -07:00
Danny Coates 6970e9228a changed CSP quotes 2017-07-17 15:49:09 -07:00
Danny Coates 5ce0846580 Merge pull request #191 from mozilla/ui
New ui!
2017-07-17 15:35:41 -07:00
Daniela Arcese 61c49fb329 fixing things 2017-07-17 16:29:51 -04:00
Danny Coates 2127857790 added HSTS header 2017-07-17 12:36:32 -07:00
Abhinav Adduri ba348b6839 Merge branch 'master' of github.com:mozilla/send into frontend_tests 2017-07-17 10:52:27 -07:00
Abhinav Adduri 188521f985 circle is working 2017-07-17 10:43:13 -07:00
Abhinav Adduri e0847e08c3 testing failure 2017-07-17 10:38:19 -07:00
Abhinav Adduri d287f67ac0 testing circle again 2017-07-17 10:27:43 -07:00
Abhinav Adduri 8f327fa439 testing circle 2017-07-17 10:19:53 -07:00
Abhinav Adduri ab60262cc9 testing circle 2017-07-17 09:49:24 -07:00
Abhinav Adduri e5f2b386bb testing circle install firefox 2017-07-17 09:39:51 -07:00
Chuck Harmston 61f131af58 Adds metrics documentation (closes #5). 2017-07-16 11:43:54 -05:00
Abhinav Adduri 2cf2fcebc9 added tagLength to make app work in edge 2017-07-14 10:51:57 -07:00
Abhinav Adduri c2e8139c6e moved decodeURIComponent to fileReceiver 2017-07-14 08:59:59 -07:00
Abhinav Adduri ef9b15c1d7 bracket typo 2017-07-13 14:56:28 -07:00
Abhinav Adduri e9c49073a8 simplified rejection for one promise 2017-07-13 14:47:53 -07:00
Abhinav Adduri cec3d6b548 added one more assert to checksum test 2017-07-13 13:47:43 -07:00
Abhinav Adduri 3f89c2bf0a changed to decodeURIComponent in server code 2017-07-13 12:55:34 -07:00
Abhinav Adduri b419a6025f fixes issues 195 and 192 2017-07-13 12:53:15 -07:00
Abhinav Adduri b07671719c added comments for fraudulent checksum test case 2017-07-13 12:14:27 -07:00
Abhinav Adduri 6379a360fe fixing conflicts 2017-07-13 10:21:16 -07:00
Abhinav Adduri 89bc51c821 added unsafe and safe events instead of console logging when a checksum is tampered with 2017-07-13 09:53:59 -07:00
Abhinav Adduri 5dd5743871 indenting in frontend.bundle.js 2017-07-13 08:59:35 -07:00
Abhinav Adduri 91cc82d570 removing bundle.js from tests and adding to gitignore 2017-07-13 08:57:29 -07:00
Daniela Arcese fcdb905430 lint 2017-07-13 11:44:46 -04:00
Daniela Arcese 9032e42912 new ui 2017-07-13 11:24:36 -04:00
Abhinav Adduri 00462947e3 finished frontend tests 2017-07-12 16:23:55 -07:00
Abhinav Adduri b411447ebb finished sender tests, figuring out array buffer to string conversions 2017-07-12 13:05:06 -07:00
Danny Coates 52173bf6e7 Merge pull request #189 from mozilla/csp
Add CSP directives
2017-07-12 11:21:55 -07:00
Danny Coates 9234bce75d added csp directives 2017-07-12 11:11:17 -07:00
Danny Coates b32e63c305 reformat 2017-07-12 10:53:29 -07:00
Danny Coates ee8ff3d220 Merge pull request #188 from mozilla/fixDeleteError
fixes delete button error
2017-07-12 09:10:27 -07:00
Abhinav Adduri 3138f111e1 fixes delete button error 2017-07-12 09:01:31 -07:00
Abhinav Adduri af0c497aab added front end tests 2017-07-12 09:00:02 -07:00
Danny Coates dad6132342 Merge pull request #185 from mozilla/events128
added loading, hashing, and encrypting events for uploader; decryptin…
2017-07-11 13:54:43 -07:00
Danny Coates 3ffdbd863b Merge pull request #183 from mozilla/rename
rename to 'Send'
2017-07-11 13:49:58 -07:00
Danny Coates 20b9766742 rename to 'send' 2017-07-11 13:45:31 -07:00
Abhinav Adduri 1e23548539 Merge branch 'events128' of github.com:mozilla/send into events128 2017-07-11 13:38:54 -07:00
Abhinav Adduri bfdab156e6 added loading, hashing, and encrypting events for uploader; decrypting and hashing events for the downloader 2017-07-11 13:38:23 -07:00
Abhinav Adduri 395c38b644 added loading, hashing, and encrypting events for uploader; decrypting and hashing events for the downloader 2017-07-11 13:30:25 -07:00
Danny Coates 57c7c475fc Merge pull request #184 from mozilla/server_tests
Server tests
2017-07-11 13:01:06 -07:00
Abhinav Adduri 191a0f93ff lint and circle.yml changes 2017-07-11 12:49:24 -07:00
Abhinav Adduri cdf45de8e2 added server tests 2017-07-11 12:47:40 -07:00
Abhinav Adduri 6181ea6463 Merge pull request #178 from mozilla/fixes158and152
fixed issues in branch title
2017-07-11 12:14:15 -07:00
Abhinav Adduri 8c907c9029 removed extraneous failure 2017-07-11 12:10:11 -07:00
Abhinav Adduri 6231385c74 fixed issues in branch title 2017-07-11 11:18:31 -07:00
Danny Coates 109fd671e0 Merge pull request #177 from mozilla/gcmCompliance
Gcm compliance
2017-07-10 21:45:31 -07:00
Abhinav Adduri 2682f95a2b fixed for id/edge and removed some html 2017-07-10 13:48:00 -07:00
Abhinav Adduri fce615842d no longer renders 'send another file' 2017-07-10 13:35:32 -07:00
Abhinav Adduri 64998de423 added check to see if browser is gcm compliant 2017-07-10 13:27:01 -07:00
Danny Coates 2031158336 Merge pull request #106 from mozilla/gcm
Gcm
2017-07-10 12:50:18 -07:00
Abhinav Adduri 6aa79472bf fixing small issues 2017-07-10 12:45:20 -07:00
Abhinav Adduri c4b7a2bd97 linting issues 2017-07-10 12:30:17 -07:00
Abhinav Adduri 6f7930e34d changed localstorage id's to match response from server, refactored meta.delete and newId out of storage module 2017-07-10 12:19:20 -07:00
Abhinav Adduri dc4682eaf5 added checksums 2017-07-10 11:25:03 -07:00
Danny Coates 125e6ecbdb Merge pull request #168 from mozilla/ui
Show error page if upload fails
2017-07-10 09:37:38 -07:00
Danny Coates 412a785819 Merge pull request #148 from pdehaan/yo-contribute-json
WIP: Add basic contribute.json
2017-07-10 09:36:37 -07:00
Danny Coates d63e22ab7e Merge pull request #162 from pdehaan/readme-dev-server
Fix dev server URL in README.md file
2017-07-10 09:35:47 -07:00
Danny Coates 97d513db5f Merge pull request #167 from relud/patch-1
build docker image with new name
2017-07-10 09:24:09 -07:00
Abhinav Adduri be470c6b6e added tagLength property to encrypt and decrypt for functionality in edge 2017-07-07 14:59:42 -07:00
Abhinav Adduri 1ce24f7e08 id is now independent on iv 2017-07-07 14:47:56 -07:00
Daniela Arcese 7ccf89b43b send errors to Raven 2017-07-07 10:37:10 -04:00
Daniela Arcese 63fe2c7099 show error page if upload fails 2017-07-06 17:17:59 -04:00
Peter deHaan 05da4937a1 Update server URLs to send.* 2017-07-06 12:25:49 -07:00
Peter deHaan d1ee285429 Change README.md server URLs to send.* 2017-07-06 12:12:01 -07:00
Daniel Thorn adf97a83f9 build docker image with new name 2017-07-06 10:10:32 -07:00
Erica cbd1daca1e Merge pull request #164 from mozilla/ui
Add word wraps to table
2017-07-05 13:22:53 -04:00
Daniela Arcese 30f2e25903 Add word wraps to table 2017-07-05 13:11:00 -04:00
Peter deHaan fb41acb438 Update to latest dev server URL 2017-07-05 09:59:02 -07:00
Peter deHaan f845dd7d59 Fix dev server URL in README.md file 2017-07-05 09:47:22 -07:00
Danny Coates caa276b33c Merge pull request #149 from pdehaan/yo-robots-txt
Add robots.txt
2017-07-05 07:29:34 -07:00
Danny Coates ccd8c2995e Merge pull request #161 from mozilla/ui
Hide table header on empty list
2017-07-05 07:14:47 -07:00
Daniela Arcese 88ba5352d4 hide table header on empty list 2017-07-05 09:56:38 -04:00
Daniela Arcese 2735fa577f Merge pull request #154 from mozilla/ui
Remove expired uploads
2017-06-30 11:08:24 -07:00
Daniela Arcese 1908ce084d fix polling function 2017-06-30 10:58:58 -07:00
Daniela Arcese 9026702e7b lint 2017-06-30 09:47:50 -07:00
Daniela Arcese 421dd30c9d remove expired uploads 2017-06-29 16:08:57 -07:00
Danny Coates a11b4b677c updated storage tests 2017-06-29 15:20:09 -07:00
Peter deHaan 10e64000f4 Merge pull request #146 from pdehaan/yo-readme
Update README with some more details
2017-06-29 14:50:46 -07:00
Danny Coates 67f586b65c format 2017-06-29 10:30:08 -07:00
Danny Coates 05fe534e14 use header for file metadata 2017-06-29 10:27:36 -07:00
Danny Coates 4cb34844aa use 128-bit GCM 2017-06-28 11:30:14 -07:00
Abhinav Adduri 34c367c49f added aad encryption 2017-06-27 14:39:23 -07:00
Abhinav Adduri 50995238bd gcm encryption 2017-06-27 10:50:14 -07:00
Peter deHaan e00ff0d781 Add robots.txt 2017-06-26 14:42:21 -07:00
Peter deHaan 5d21c7c705 Add basic contribute.json 2017-06-26 14:29:42 -07:00
Peter deHaan 250503b2d3 Update README with some more details 2017-06-26 12:43:08 -07:00
Danny Coates a7fcb1a44f bump version 2017-06-23 20:38:16 -07:00
Danny Coates 5b4a955969 Merge pull request #138 from mozilla/reconfig
remove notLocalHost
2017-06-23 20:24:58 -07:00
Danny Coates 5cd44be83c remove notLocalHost 2017-06-23 20:01:32 -07:00
Danny Coates 529c6d0fe7 bump version for circleci build 2017-06-23 18:56:49 -07:00
195 changed files with 19852 additions and 2911 deletions
+4 -3
View File
@@ -1,7 +1,8 @@
node_modules
.git
.DS_Store
static
test
scripts
firefox
assets
docs
public
test
+14
View File
@@ -0,0 +1,14 @@
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
[*.{js,html,yml,json,handlebars}]
indent_style = space
indent_size = 2
[*.toml]
indent_style = space
indent_size = 4
+3 -2
View File
@@ -1,2 +1,3 @@
public/bundle.js
public/webcrypto-shim.js
dist
assets
firefox
+3 -1
View File
@@ -19,11 +19,13 @@ rules:
security/detect-non-literal-fs-filename: off
security/detect-object-injection: off
eol-last: [error, always]
eqeqeq: error
no-alert: warn
no-console: warn
no-path-concat: error
no-unused-vars: [error, {argsIgnorePattern: "^_|err|event|next|reject"}]
no-var: error
one-var: [error, never]
prefer-const: error
quotes: [error, single]
quotes: [error, single, {avoidEscape: true}]
+2
View File
@@ -0,0 +1,2 @@
public/locales/* linguist-documentation
docs/* linguist-documentation
+1 -5
View File
@@ -1,6 +1,2 @@
.DS_Store
node_modules
public/bundle.js
public/version.json
static/*
!static/info.txt
dist
+3
View File
@@ -0,0 +1,3 @@
{
"exceptions": ["https://nodesecurity.io/advisories/534"]
}
+2
View File
@@ -0,0 +1,2 @@
dist
assets/*.js
+7 -1
View File
@@ -1,6 +1,12 @@
extends: stylelint-config-standard
plugins:
- stylelint-no-unsupported-browser-features
rules:
color-hex-case: upper
plugin/no-unsupported-browser-features: [true, {severity: warning}]
color-hex-case: lower
declaration-colon-newline-after: null
selector-list-comma-newline-after: null
value-list-comma-newline-after: null
+218
View File
@@ -0,0 +1,218 @@
## Change Log
### v1.1.1 (2017/08/17 01:29 +00:00)
- [#516](https://github.com/mozilla/send/pull/516) cache assets (@dannycoates)
- [#520](https://github.com/mozilla/send/pull/520) fix drag & drop (@dannycoates)
- [#515](https://github.com/mozilla/send/pull/515) removed jquery from upload.js (@dannycoates)
- [#514](https://github.com/mozilla/send/pull/514) use async and removed jquery from download.js (@dannycoates)
- [#513](https://github.com/mozilla/send/pull/513) use svg for progress (@dannycoates)
- [#510](https://github.com/mozilla/send/pull/510) added precommit hook for format (@dannycoates)
- [#502](https://github.com/mozilla/send/pull/502) extracted filelist into its own file (@dannycoates)
- [#428](https://github.com/mozilla/send/pull/428) add twitter and open graph cards (@dannycoates, @johngruen)
- [#506](https://github.com/mozilla/send/pull/506) 404 page (@varghesethomase)
- [#508](https://github.com/mozilla/send/pull/508) fixes 478 (@abhinadduri)
- [#504](https://github.com/mozilla/send/pull/504) fix japanese browse button (@johngruen)
- [#503](https://github.com/mozilla/send/pull/503) Added editorconfig (@skystar-p)
- [#499](https://github.com/mozilla/send/pull/499) use import/export in the frontend code (@dannycoates)
- [#500](https://github.com/mozilla/send/pull/500) fixed build:css on windows (@dannycoates)
- [#481](https://github.com/mozilla/send/pull/481) Cater for mobile and desktop (@pdehaan, @hubdotcom)
- [#493](https://github.com/mozilla/send/pull/493) added webpack-dev-middleware (@dannycoates)
- [#491](https://github.com/mozilla/send/pull/491) added missing exit event cases (@dannycoates)
- [#492](https://github.com/mozilla/send/pull/492) make the site mostly work when cookies (localStorage) are disabled (@dannycoates)
- [#490](https://github.com/mozilla/send/pull/490) set the mime type in the download blob (@dannycoates)
- [#485](https://github.com/mozilla/send/pull/485) added progress to tab title when not in focus (@dannycoates)
- [#474](https://github.com/mozilla/send/pull/474) Fixing bug #438 by adding role attribute to anchor tags and alt attribute images (@varghesethomase)
- [#480](https://github.com/mozilla/send/pull/480) Increase font weight to 500 on <button>s and <label>s (@pdehaan)
- [#419](https://github.com/mozilla/send/pull/419) Add autoprefixer and cssnano support (@pdehaan)
### v1.1.0 (2017/08/08 03:59 +00:00)
- [#473](https://github.com/mozilla/send/pull/473) Sort contributors alphabetically to prevent churn (@pdehaan)
- [#472](https://github.com/mozilla/send/pull/472) removed references to checksums in frontend tests (@abhinadduri)
- [#470](https://github.com/mozilla/send/pull/470) removed the file sha256 hash (@dannycoates)
- [#469](https://github.com/mozilla/send/pull/469) Increase mimimum node version to 8.2.0 (@ehuggett)
- [#468](https://github.com/mozilla/send/pull/468) attach delete-file handler only after upload (@dannycoates)
- [#466](https://github.com/mozilla/send/pull/466) added webpack (@dannycoates)
- [#427](https://github.com/mozilla/send/pull/427) Extended system font list fixes:#408 (@gautamkrishnar)
- [#448](https://github.com/mozilla/send/pull/448) Migrate width attribute to CSS (Fixes #436) (@nskins)
- [#457](https://github.com/mozilla/send/pull/457) factored out progress into progress.js (@dannycoates)
- [#452](https://github.com/mozilla/send/pull/452) refactored metrics (@dannycoates)
- [#455](https://github.com/mozilla/send/pull/455) Add a few missing strings from es-CL and tr locales (@pdehaan)
- [#444](https://github.com/mozilla/send/pull/444) Chain jQuery calls, do not use events alias and store selectors (@Johann-S)
- [#416](https://github.com/mozilla/send/pull/416) WIP: use webcrypto-liner to support Safari 10 (@dannycoates)
- [#451](https://github.com/mozilla/send/pull/451) Add rel noopener noreferrer to target='_blank' anchor elements (Fixes #439) (@boopeshmahendran)
- [#449](https://github.com/mozilla/send/pull/449) Add X-UA-Compatible meta tag (@kenrick95)
- [#433](https://github.com/mozilla/send/pull/433) Prevent download button from being clicked multiple times (@pdehaan)
- [#432](https://github.com/mozilla/send/pull/432) Add contributors script (@pdehaan)
- [#409](https://github.com/mozilla/send/pull/409) Handle copy clipboard disabled (@Johann-S)
### v1.0.4 (2017/08/03 23:05 +00:00)
- [#418](https://github.com/mozilla/send/pull/418) _blank all footer links (@dannycoates)
- [#386](https://github.com/mozilla/send/pull/386) fix percentage view on mobile layout (@ariestiyansyah)
- [#414](https://github.com/mozilla/send/pull/414) Add link to FAQ in unsupported view (@pdehaan)
- [#415](https://github.com/mozilla/send/pull/415) Only include Fira CSS on /unsupported/* route (@pdehaan)
- [#412](https://github.com/mozilla/send/pull/412) throw key errors before download begins (@dannycoates)
- [#404](https://github.com/mozilla/send/pull/404) Use async function instead of promise (#325) (@weihanglo)
- [#406](https://github.com/mozilla/send/pull/406) Add noscript tag (@pdehaan)
- [#325](https://github.com/mozilla/send/pull/325) Use async function instead of promise (#325) (@weihanglo)
- [#325](https://github.com/mozilla/send/pull/325) Use async function instead of promise (#325) (@weihanglo)
### v1.0.3 (2017/08/02 23:59 +00:00)
- [#402](https://github.com/mozilla/send/pull/402) filter the hash from error reports (@dannycoates)
- [#400](https://github.com/mozilla/send/pull/400) fix link that breaks download by opening in new tab (@johngruen)
- [#369](https://github.com/mozilla/send/pull/369) Add ESLint no-alert shame rule (@pdehaan)
- [#396](https://github.com/mozilla/send/pull/396) add babel-polyfill (@dannycoates)
- [#394](https://github.com/mozilla/send/pull/394) catch JSON.parse errors of storage metadata (@dannycoates)
- [#367](https://github.com/mozilla/send/pull/367) Generate production locales using 'compare-locales' (@pdehaan)
- [#392](https://github.com/mozilla/send/pull/392) Adjust hover behavior on send-logo (#382)
Fixes: #382. (@weihanglo)
- [#382](https://github.com/mozilla/send/pull/382) Adjust hover behavior on send-logo (#382) (@weihanglo)
- [#382](https://github.com/mozilla/send/pull/382) Adjust hover behavior on send-logo (#382) (@weihanglo)
- [#380](https://github.com/mozilla/send/pull/380) Add Pontoon URL to README (@pdehaan)
### v1.0.2 (2017/07/31 18:58 +00:00)
- [#365](https://github.com/mozilla/send/pull/365) revert the IE fix to fix footer on chrome (@dannycoates)
### v1.0.1 (2017/07/31 17:28 +00:00)
- [#353](https://github.com/mozilla/send/pull/353) redirect ie to /unsupported (@abhinadduri, @dannycoates)
- [#360](https://github.com/mozilla/send/pull/360) Fix some linting nits (@pdehaan)
- [#362](https://github.com/mozilla/send/pull/362) Adjusts category of unsupported event (fixes #350). (@chuckharmston)
- [#355](https://github.com/mozilla/send/pull/355) Make order of uploaded files in list consistent (@pdehaan)
- [#356](https://github.com/mozilla/send/pull/356) Get rid of console.log statements (@pdehaan)
- [#358](https://github.com/mozilla/send/pull/358) Fix some missing .title attributes in dev-only locales (@pdehaan)
- [#354](https://github.com/mozilla/send/pull/354) Remove /en-US/ from cookies link in footer (@pdehaan)
- [#339](https://github.com/mozilla/send/pull/339) Show error page on firefox v49 and below (@ericawright, @abhinadduri)
- [#346](https://github.com/mozilla/send/pull/346) Add docs/CODEOWNERS file (@pdehaan)
- [#345](https://github.com/mozilla/send/pull/345) wrap long file names (@dnarcese)
- [#344](https://github.com/mozilla/send/pull/344) don't wrap file list headers (@dnarcese)
- [#327](https://github.com/mozilla/send/pull/327) Modify popup delete dialog (@youwenliang)
- [#341](https://github.com/mozilla/send/pull/341) center percentage text on all browser versions (@dnarcese)
- [#340](https://github.com/mozilla/send/pull/340) Remove duplicate entities in localized FTL files (@flodolo)
- [#337](https://github.com/mozilla/send/pull/337) support v 50 and 51 by not allowing const in loops (@ericawright)
- [#338](https://github.com/mozilla/send/pull/338) Remove duplicated strings in en-US, fix nn-NO file (@flodolo)
- [#336](https://github.com/mozilla/send/pull/336) German(de): Fixed missing value for deleteFileButton (#336) (@flodolo)
- [#334](https://github.com/mozilla/send/pull/334) fix functionality on firefox 50 and 51 (@dnarcese)
### v1.0.0 (2017/07/26 19:08 +00:00)
- [#323](https://github.com/mozilla/send/pull/323) disable upload/download notifications (@dannycoates)
- [#322](https://github.com/mozilla/send/pull/322) fix feedback button jump (@dnarcese)
- [#320](https://github.com/mozilla/send/pull/320) fix German footer (@dnarcese)
### v0.2.2 (2017/07/26 04:50 +00:00)
- [#314](https://github.com/mozilla/send/pull/314) added L10N_DEV environment variable for making all languages available (@dannycoates)
- [#313](https://github.com/mozilla/send/pull/313) removing timeout limit for front end tests (@abhinadduri)
- [#311](https://github.com/mozilla/send/pull/311) expired ids should reject instead of returning null (@dannycoates)
- [#302](https://github.com/mozilla/send/pull/302) UX Refine WIP (@youwenliang)
- [#310](https://github.com/mozilla/send/pull/310) if the download card is pressed, the expired card shows up properly (@abhinadduri)
- [#269](https://github.com/mozilla/send/pull/269) refactored ftl file (@abhinadduri)
- [#291](https://github.com/mozilla/send/pull/291) added legal page (@dannycoates)
- [#307](https://github.com/mozilla/send/pull/307) don't show error page on upload cancel (@dnarcese)
- [#299](https://github.com/mozilla/send/pull/299) use CIRCLE_TAG as version.json version if present (@dannycoates)
### v0.2.1 (2017/07/24 23:34 +00:00)
- [#296](https://github.com/mozilla/send/pull/296) restyle delete popup (@dnarcese)
- [#295](https://github.com/mozilla/send/pull/295) renamed environment variables to remove P2P_ prefix (@dannycoates)
- [#294](https://github.com/mozilla/send/pull/294) dealing with invalid drag and drops (@abhinadduri)
- [#297](https://github.com/mozilla/send/pull/297) added environment variable for expire time (@dannycoates)
- [#292](https://github.com/mozilla/send/pull/292) Fixes289 (@abhinadduri)
- [#288](https://github.com/mozilla/send/pull/288) fix: Don`t allow upload when not on the upload page. (@ericawright)
- [#285](https://github.com/mozilla/send/pull/285) added messages for processing phases (@dannycoates)
- [#267](https://github.com/mozilla/send/pull/267) make site responsive and add feedback link (@johngruen)
- [#286](https://github.com/mozilla/send/pull/286) Update download progress bar color (@pdehaan)
- [#281](https://github.com/mozilla/send/pull/281) Stop ESLint from linting the /public/ directory (@pdehaan)
- [#280](https://github.com/mozilla/send/pull/280) created /unsupported page and added gcmCompliant to /download page (@dannycoates)
- [#279](https://github.com/mozilla/send/pull/279) create separate js bundles for upload/download pages (@dannycoates)
- [#268](https://github.com/mozilla/send/pull/268) Testpilot ga (@abhinadduri)
### v0.2.0 (2017/07/21 19:27 +00:00)
- [#266](https://github.com/mozilla/send/pull/266) abort uploads over maxfilesize (@dannycoates)
- [#264](https://github.com/mozilla/send/pull/264) Remove duplicate custom metric. (@chuckharmston)
- [#259](https://github.com/mozilla/send/pull/259) add alert when uploading multiple files (@dnarcese)
- [#262](https://github.com/mozilla/send/pull/262) sync download progress bar with percentage (@dnarcese)
- [#258](https://github.com/mozilla/send/pull/258) better sync percent with progress bar (@dnarcese)
- [#257](https://github.com/mozilla/send/pull/257) add a dynamic js script for page config (@dannycoates)
- [#256](https://github.com/mozilla/send/pull/256) add file size limit message (@dnarcese)
- [#253](https://github.com/mozilla/send/pull/253) Add favicon.ico version of the Send logo (@pdehaan)
- [#254](https://github.com/mozilla/send/pull/254) Add nsp check to circle ci (@pdehaan)
- [#245](https://github.com/mozilla/send/pull/245) Localization (@abhinadduri)
- [#252](https://github.com/mozilla/send/pull/252) only allow drag and drop on upload page (@dnarcese)
- [#250](https://github.com/mozilla/send/pull/250) make footer not overlap (@dnarcese)
- [#251](https://github.com/mozilla/send/pull/251) minify all images (@ericawright)
- [#249](https://github.com/mozilla/send/pull/249) change how the file upload box expands (@dnarcese)
- [#246](https://github.com/mozilla/send/pull/246) remove P2P references. Fixes #224 (@clouserw)
- [#242](https://github.com/mozilla/send/pull/242) Make only icons clickable in file list (@dnarcese)
- [#236](https://github.com/mozilla/send/pull/236) add FAQ. Fixes #186 (@clouserw)
- [#235](https://github.com/mozilla/send/pull/235) allow send another file link to open in new tab (@dnarcese)
- [#234](https://github.com/mozilla/send/pull/234) fix download svg (@dnarcese)
- [#232](https://github.com/mozilla/send/pull/232) escape filename in the ui (@dannycoates)
- [#226](https://github.com/mozilla/send/pull/226) added functionality to cancel uploads (@abhinadduri)
- [#231](https://github.com/mozilla/send/pull/231) move head and html tags to main template (@dnarcese)
- [#228](https://github.com/mozilla/send/pull/228) add send logo (@dnarcese)
- [#229](https://github.com/mozilla/send/pull/229) change learn more and github links (@dnarcese)
- [#201](https://github.com/mozilla/send/pull/201) Adds metrics documentation (closes #5). (@chuckharmston)
- [#223](https://github.com/mozilla/send/pull/223) change size of send another file links (@dnarcese)
- [#222](https://github.com/mozilla/send/pull/222) add footer (@dnarcese)
- [#197](https://github.com/mozilla/send/pull/197) fixes issues 195 and 192 (@abhinadduri)
- [#204](https://github.com/mozilla/send/pull/204) added HSTS header (@dannycoates)
- [#193](https://github.com/mozilla/send/pull/193) Frontend tests (@abhinadduri)
- [#191](https://github.com/mozilla/send/pull/191) New ui! (@dnarcese)
### v0.1.4 (2017/07/12 18:21 +00:00)
- [#189](https://github.com/mozilla/send/pull/189) Add CSP directives (@dannycoates)
- [#188](https://github.com/mozilla/send/pull/188) fixes delete button error (@abhinadduri)
- [#185](https://github.com/mozilla/send/pull/185) added loading, hashing, and encrypting events for uploader; decryptin… (@abhinadduri)
- [#183](https://github.com/mozilla/send/pull/183) rename to 'Send' (@dannycoates)
- [#184](https://github.com/mozilla/send/pull/184) Server tests (@abhinadduri)
- [#178](https://github.com/mozilla/send/pull/178) fixed issues in branch title (@abhinadduri)
- [#177](https://github.com/mozilla/send/pull/177) Gcm compliance (@abhinadduri)
- [#106](https://github.com/mozilla/send/pull/106) Gcm (@abhinadduri, @dannycoates)
- [#168](https://github.com/mozilla/send/pull/168) Show error page if upload fails (@dnarcese)
- [#148](https://github.com/mozilla/send/pull/148) WIP: Add basic contribute.json (@pdehaan)
- [#162](https://github.com/mozilla/send/pull/162) Fix dev server URL in README.md file (@pdehaan)
- [#167](https://github.com/mozilla/send/pull/167) build docker image with new name (@relud)
- [#164](https://github.com/mozilla/send/pull/164) Add word wraps to table (@dnarcese)
- [#149](https://github.com/mozilla/send/pull/149) Add robots.txt (@pdehaan)
- [#161](https://github.com/mozilla/send/pull/161) Hide table header on empty list (@dnarcese)
- [#154](https://github.com/mozilla/send/pull/154) Remove expired uploads (@dnarcese)
- [#146](https://github.com/mozilla/send/pull/146) Update README with some more details (@pdehaan)
### v0.1.2 (2017/06/24 03:38 +00:00)
- [#138](https://github.com/mozilla/send/pull/138) remove notLocalHost (@dannycoates)
### v0.1.0 (2017/06/24 01:24 +00:00)
- [#137](https://github.com/mozilla/send/pull/137) refactored docker build (@dannycoates)
- [#132](https://github.com/mozilla/send/pull/132) Add /__version__ route (@pdehaan)
- [#135](https://github.com/mozilla/send/pull/135) make dockerfile more dockerflowy (@dannycoates)
- [#134](https://github.com/mozilla/send/pull/134) Load previous uploads (@dannycoates, @dnarcese)
- [#131](https://github.com/mozilla/send/pull/131) added __heartbeat__ (@dannycoates)
- [#133](https://github.com/mozilla/send/pull/133) Add LICENSE file (@pdehaan)
- [#130](https://github.com/mozilla/send/pull/130) added sentry to server code (@abhinadduri)
- [#124](https://github.com/mozilla/send/pull/124) Remove unused [dev]dependencies (@pdehaan)
- [#119](https://github.com/mozilla/send/pull/119) Move cross-env to a dep (@pdehaan)
- [#123](https://github.com/mozilla/send/pull/123) removed bitly integration (@abhinadduri)
- [#122](https://github.com/mozilla/send/pull/122) fix docker build (@dannycoates)
- [#121](https://github.com/mozilla/send/pull/121) added docker service to circle.yml (@dannycoates)
- [#120](https://github.com/mozilla/send/pull/120) added sentry (@abhinadduri)
- [#118](https://github.com/mozilla/send/pull/118) change docker image name and add builds for tags (@relud)
- [#116](https://github.com/mozilla/send/pull/116) add /__lbheartbeat__ endpoint (@relud)
- [#79](https://github.com/mozilla/send/pull/79) Optimize/minimize bundle.js for production (@pdehaan)
- [#104](https://github.com/mozilla/send/pull/104) Fix a bunch of ESLint and HTMLLint errors (@pdehaan)
- [#105](https://github.com/mozilla/send/pull/105) Progress bars (@dnarcese)
- [#111](https://github.com/mozilla/send/pull/111) added in anonmyized ip google analytics (@abhinadduri)
- [#110](https://github.com/mozilla/send/pull/110) added notifications (@abhinadduri)
- [#103](https://github.com/mozilla/send/pull/103) added Dockerfile (@dannycoates)
- [#100](https://github.com/mozilla/send/pull/100) Added Helmet Middleware (@abhinadduri)
- [#99](https://github.com/mozilla/send/pull/99) Testing (@abhinadduri)
- [#77](https://github.com/mozilla/send/pull/77) Fix the linter errors (@pdehaan)
- [#54](https://github.com/mozilla/send/pull/54) Adding basic ESLint config (@pdehaan)
- [#71](https://github.com/mozilla/send/pull/71) Drag & drop (@dnarcese)
- [#72](https://github.com/mozilla/send/pull/72) Logging (@abhinadduri, @dannycoates)
- [#45](https://github.com/mozilla/send/pull/45) S3 integration (@abhinadduri, @dannycoates)
- [#46](https://github.com/mozilla/send/pull/46) Download page and share link UI (@dnarcese)
- [#41](https://github.com/mozilla/send/pull/41) Added upload page and file list UI (@dnarcese)
- [#40](https://github.com/mozilla/send/pull/40) Tweak the package.json file (@pdehaan)
- [#43](https://github.com/mozilla/send/pull/43) added return (@abhinadduri)
- [#42](https://github.com/mozilla/send/pull/42) changed to handle 404 during download, also removing progress listene… (@abhinadduri)
- [#39](https://github.com/mozilla/send/pull/39) Refactor riff (@abhinadduri, @dannycoates)
- [#36](https://github.com/mozilla/send/pull/36) added prettier for js formatting (@dannycoates)
- [#28](https://github.com/mozilla/send/pull/28) Added a UI for the uploader end, made stylistic changes, implemented deleting (@abhinadduri)
- [#25](https://github.com/mozilla/send/pull/25) Changed naming for some pages, no longer stores files by name on server (@abhinadduri)
+92
View File
@@ -0,0 +1,92 @@
Abhinav Adduri
Alexander Slovesnik
Amin Mahmudian
Andreas Pettersson
Arash Mousavi
Balázs Meskó
Belayet Hossain
Bjørn I
Boopesh Mahendran
Chuck Harmston
Cláudio Esperança
Cynthia Pereira
Daniel Thorn
Daniela Arcese
Danny Coates
Emin Mastizada
Enol
Erica
Erica Wright
Fjoerfoks
Francesco Lodolo
Francesco Lodolo [:flod]
Gautam krishna.R
Håvar Henriksen
Jae Hyeon Park
Jakub Rychlý
Jamie
Jim Spentzos
Johann-S
John Gruen
Jon Vadillo
Jordi Serratosa
Juraj Cigáň
Kohei Yoshino
Lan Glad
Luna Jernberg
Marcelo Poli
Marco Aurélio
Mark Liang
Matjaž Horvat
Maykon Chagas
Michael Köhler
Michael Wolf
Michal Stanke
Michal Vašíček
Moḥend Belqasem
Nicholas Skinsacos
Peter deHaan
Pierre Neter
Pin-guang Chen
Rhoslyn Prys
Rizky Ariestiyansyah
Roberto Alvarado
Rodrigo
Rok Žerdin
Sahithi
Sairam Raavi
Sandro
Schieck :)
Selim Şumlu
Slimane Amiri
Théo Chevalier
Tomáš Zelina
Ton
Tymur Faradzhev
Varghese Thomas
Victor Bychek
Weihang Lo
Wil Clouser
YFdyh000
You-Wen Liang (Mark)
alex_mayorga
ariestiyansyah
avelper
dgadelha
ehuggett
eljuno
erdem cobanoglu
gautamkrishnar
goofy
hi
jesferman1993
josotrix
kenrick95
manxmensch
ravmn
reza.habibi2008
siparon
skystar-p
xcffl
Μιχάλης
Марко Костић (Marko Kostić)
+2 -1
View File
@@ -1,5 +1,6 @@
FROM node:8-alpine
RUN apk add --no-cache git
RUN addgroup -S -g 10001 app && adduser -S -D -G app -u 10001 app
COPY . /app
RUN chown -R app /app
@@ -11,4 +12,4 @@ RUN npm install --production && npm cache clean --force
ENV PORT=1443
EXPOSE $PORT
CMD ["npm", "start"]
CMD ["npm", "run", "prod"]
+96 -3
View File
@@ -1,3 +1,96 @@
* Install the redis server if not installed.
* To run the project, make sure you have a redis server running locally: redis-server /usr/local/etc/redis.conf
* Follow instructions inside the console on the browser.
# Firefox Send
[![CircleCI](https://img.shields.io/circleci/project/github/mozilla/send.svg)](https://circleci.com/gh/mozilla/send)
[![Available on Test Pilot](https://img.shields.io/badge/available_on-Test_Pilot-0996F8.svg)](https://testpilot.firefox.com/experiments/send)
**Docs:** [Docker](docs/docker.md), [Metrics](docs/metrics.md)
---
## Table of Contents
* [What it does](#what-it-does)
* [Requirements](#requirements)
* [Development](#development)
* [Commands](#commands)
* [Configuration](#configuration)
* [Localization](#localization)
* [Contributing](#contributing)
* [Testing](#testing)
* [License](#license)
---
## What it does
A file sharing experiment which allows you to send encrypted files to other users.
---
## Requirements
- [Node.js 8.2+](https://nodejs.org/)
- [Redis server](https://redis.io/) (optional for development)
- [AWS S3](https://aws.amazon.com/s3/) or compatible service. (optional)
---
## Development
To start an ephemeral development server run:
```sh
npm install
npm start
```
Then browse to http://localhost:8080
---
## Commands
| Command | Description |
|------------------|-------------|
| `npm run format` | Formats the frontend and server code using **prettier**.
| `npm run lint` | Lints the CSS and JavaScript code.
| `npm test` | Runs the suite of mocha tests.
| `npm start` | Runs the server in development configuration.
| `npm run build` | Builds the production assets.
| `npm run prod` | Runs the server in production configuration.
---
## Configuration
The server is configured with environment variables. See [server/config.js](server/config.js) for all options and [docs/docker.md](docs/docker.md) for examples.
---
## Localization
Firefox Send localization is managed via [Pontoon](https://pontoon.mozilla.org/projects/test-pilot-firefox-send/), not direct pull requests to the repository. If you want to fix a typo, add a new language, or simply know more about localization, please get in touch with the [existing localization team](https://pontoon.mozilla.org/teams/) for your language, or Mozillas [l10n-drivers](https://wiki.mozilla.org/L10n:Mozilla_Team#Mozilla_Corporation) for guidance.
---
## Contributing
Pull requests are always welcome! Feel free to check out the list of ["good first bugs"](https://github.com/mozilla/send/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+bug%22).
---
## Testing
| ENVIRONMENT | URL
|-------------|-----
| Production | <https://send.firefox.com/>
| Stage | <https://send.stage.mozaws.net/>
| Development | <https://send.dev.mozaws.net/>
---
## License
[Mozilla Public License Version 2.0](LICENSE)
---
+9
View File
@@ -0,0 +1,9 @@
env:
browser: true
node: true
parserOptions:
sourceType: module
rules:
node/no-unsupported-features: off
+24
View File
@@ -0,0 +1,24 @@
export default function(state, emitter) {
emitter.on('DOMContentLoaded', () => {
document.body.addEventListener('dragover', event => {
if (state.route === '/') {
event.preventDefault();
}
});
document.body.addEventListener('drop', event => {
if (state.route === '/' && !state.transfer) {
event.preventDefault();
document.querySelector('.upload-window').classList.remove('ondrag');
const target = event.dataTransfer;
if (target.files.length === 0) {
return;
}
if (target.files.length > 1 || target.files[0].size === 0) {
return alert(state.translate('uploadPageMultipleFilesAlert'));
}
const file = target.files[0];
emitter.emit('upload', { file, type: 'drop' });
}
});
});
}
+69
View File
@@ -0,0 +1,69 @@
import hash from 'string-hash';
const experiments = {
'SyI-hI7gT9agiH-f3f0BYg': {
id: 'SyI-hI7gT9agiH-f3f0BYg',
run: function(variant, state, emitter) {
state.promo = variant === 1 ? 'body' : 'header';
emitter.emit('render');
},
eligible: function() {
return (
!/firefox/i.test(navigator.userAgent) &&
document.querySelector('html').lang === 'en-US'
);
},
variant: function(state) {
return this.luckyNumber(state) > 0.5 ? 1 : 0;
},
luckyNumber: function(state) {
return luckyNumber(
`${this.id}:${state.storage.get('testpilot_ga__cid')}`
);
}
}
};
//Returns a number between 0 and 1
// eslint-disable-next-line no-unused-vars
function luckyNumber(str) {
return hash(str) / 0xffffffff;
}
function checkExperiments(state, emitter) {
const all = Object.keys(experiments);
const id = all.find(id => experiments[id].eligible(state));
if (id) {
const variant = experiments[id].variant(state);
state.storage.enroll(id, variant);
experiments[id].run(variant, state, emitter);
}
}
export default function initialize(state, emitter) {
emitter.on('DOMContentLoaded', () => {
const xp = experiments[state.query.x];
if (xp) {
xp.run(+state.query.v, state, emitter);
}
});
if (!state.storage.get('testpilot_ga__cid')) {
// first ever visit. check again after cid is assigned.
emitter.on('DOMContentLoaded', () => {
checkExperiments(state, emitter);
});
} else {
const enrolled = state.storage.enrolled.filter(([id, variant]) => {
const xp = experiments[id];
if (xp) {
xp.run(variant, state, emitter);
}
return !!xp;
});
// single experiment per session for now
if (enrolled.length === 0) {
checkExperiments(state, emitter);
}
}
}
+249
View File
@@ -0,0 +1,249 @@
/* global EXPIRE_SECONDS */
import FileSender from './fileSender';
import FileReceiver from './fileReceiver';
import { copyToClipboard, delay, fadeOut, percent } from './utils';
import * as metrics from './metrics';
function saveFile(file) {
const dataView = new DataView(file.plaintext);
const blob = new Blob([dataView], { type: file.type });
const downloadUrl = URL.createObjectURL(blob);
if (window.navigator.msSaveBlob) {
return window.navigator.msSaveBlob(blob, file.name);
}
const a = document.createElement('a');
a.href = downloadUrl;
a.download = file.name;
document.body.appendChild(a);
a.click();
URL.revokeObjectURL(downloadUrl);
}
function openLinksInNewTab(links, should = true) {
links = links || Array.from(document.querySelectorAll('a:not([target])'));
if (should) {
links.forEach(l => {
l.setAttribute('target', '_blank');
l.setAttribute('rel', 'noopener noreferrer');
});
} else {
links.forEach(l => {
l.removeAttribute('target');
l.removeAttribute('rel');
});
}
return links;
}
function exists(id) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {
resolve(xhr.status === 200);
}
};
xhr.onerror = () => resolve(false);
xhr.ontimeout = () => resolve(false);
xhr.open('get', '/api/exists/' + id);
xhr.timeout = 2000;
xhr.send();
});
}
export default function(state, emitter) {
let lastRender = 0;
let updateTitle = false;
function render() {
emitter.emit('render');
}
async function checkFiles() {
const files = state.storage.files;
let rerender = false;
for (const file of files) {
const ok = await exists(file.id);
if (!ok) {
state.storage.remove(file.id);
rerender = true;
}
}
if (rerender) {
render();
}
}
function updateProgress() {
if (updateTitle) {
emitter.emit('DOMTitleChange', percent(state.transfer.progressRatio));
}
render();
}
emitter.on('DOMContentLoaded', () => {
document.addEventListener('blur', () => (updateTitle = true));
document.addEventListener('focus', () => {
updateTitle = false;
emitter.emit('DOMTitleChange', 'Firefox Send');
});
checkFiles();
});
emitter.on('navigate', checkFiles);
emitter.on('render', () => {
lastRender = Date.now();
});
emitter.on('delete', async ({ file, location }) => {
try {
metrics.deletedUpload({
size: file.size,
time: file.time,
speed: file.speed,
type: file.type,
ttl: file.expiresAt - Date.now(),
location
});
state.storage.remove(file.id);
await FileSender.delete(file.id, file.deleteToken);
} catch (e) {
state.raven.captureException(e);
}
state.fileInfo = null;
});
emitter.on('cancel', () => {
state.transfer.cancel();
});
emitter.on('upload', async ({ file, type }) => {
const size = file.size;
const sender = new FileSender(file);
sender.on('progress', updateProgress);
sender.on('encrypting', render);
state.transfer = sender;
render();
const links = openLinksInNewTab();
await delay(200);
try {
const start = Date.now();
metrics.startedUpload({ size, type });
const info = await sender.upload();
const time = Date.now() - start;
const speed = size / (time / 1000);
metrics.completedUpload({ size, time, speed, type });
document.getElementById('cancel-upload').hidden = 'hidden';
await delay(1000);
await fadeOut('upload-progress');
info.name = file.name;
info.size = size;
info.type = type;
info.time = time;
info.speed = speed;
info.createdAt = Date.now();
info.url = `${info.url}#${info.secretKey}`;
info.expiresAt = Date.now() + EXPIRE_SECONDS * 1000;
state.fileInfo = info;
state.storage.addFile(state.fileInfo);
openLinksInNewTab(links, false);
state.transfer = null;
state.storage.totalUploads += 1;
emitter.emit('pushState', `/share/${info.id}`);
} catch (err) {
console.error(err);
state.transfer = null;
if (err.message === '0') {
//cancelled. do nothing
metrics.cancelledUpload({ size, type });
return render();
}
state.raven.captureException(err);
metrics.stoppedUpload({ size, type, err });
emitter.emit('pushState', '/error');
}
});
emitter.on('password', async ({ password, file }) => {
try {
await FileSender.setPassword(password, file);
metrics.addedPassword({ size: file.size });
file.password = password;
state.storage.writeFiles();
} catch (e) {
console.error(e);
}
render();
});
emitter.on('preview', async () => {
const file = state.fileInfo;
const url = `/api/download/${file.id}`;
const receiver = new FileReceiver(url, file);
receiver.on('progress', updateProgress);
receiver.on('decrypting', render);
state.transfer = receiver;
try {
await receiver.getMetadata(file.nonce);
} catch (e) {
if (e.message === '401') {
file.password = null;
if (!file.pwd) {
return emitter.emit('pushState', '/404');
}
}
}
render();
});
emitter.on('download', async file => {
state.transfer.on('progress', render);
state.transfer.on('decrypting', render);
const links = openLinksInNewTab();
const size = file.size;
try {
const start = Date.now();
metrics.startedDownload({ size: file.size, ttl: file.ttl });
const f = await state.transfer.download(file.nonce);
const time = Date.now() - start;
const speed = size / (time / 1000);
await delay(1000);
await fadeOut('download-progress');
saveFile(f);
state.storage.totalDownloads += 1;
state.transfer = null;
metrics.completedDownload({ size, time, speed });
emitter.emit('pushState', '/completed');
} catch (err) {
console.error(err);
// TODO cancelled download
const location = err.message === 'notfound' ? '/404' : '/error';
if (location === '/error') {
state.raven.captureException(err);
metrics.stoppedDownload({ size, err });
}
emitter.emit('pushState', location);
} finally {
state.transfer = null;
openLinksInNewTab(links, false);
}
});
emitter.on('copy', ({ url, location }) => {
copyToClipboard(url);
metrics.copiedLink({ location });
});
setInterval(() => {
// poll for rerendering the file list countdown timers
if (
state.route === '/' &&
state.storage.files.length > 0 &&
Date.now() - lastRender > 30000
) {
render();
}
}, 60000);
}
+252
View File
@@ -0,0 +1,252 @@
import Nanobus from 'nanobus';
import { arrayToB64, b64ToArray, bytes } from './utils';
export default class FileReceiver extends Nanobus {
constructor(url, file) {
super('FileReceiver');
this.secretKeyPromise = window.crypto.subtle.importKey(
'raw',
b64ToArray(file.key),
'HKDF',
false,
['deriveKey']
);
this.encryptKeyPromise = this.secretKeyPromise.then(sk => {
const encoder = new TextEncoder();
return window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('encryption'),
hash: 'SHA-256'
},
sk,
{
name: 'AES-GCM',
length: 128
},
false,
['decrypt']
);
});
if (file.pwd) {
const encoder = new TextEncoder();
console.log(file.password + file.url);
this.authKeyPromise = window.crypto.subtle
.importKey(
'raw',
encoder.encode(file.password),
{ name: 'PBKDF2' },
false,
['deriveKey']
)
.then(pwdKey =>
window.crypto.subtle.deriveKey(
{
name: 'PBKDF2',
salt: encoder.encode(file.url),
iterations: 100,
hash: 'SHA-256'
},
pwdKey,
{
name: 'HMAC',
hash: 'SHA-256'
},
true,
['sign']
)
);
} else {
this.authKeyPromise = this.secretKeyPromise.then(sk => {
const encoder = new TextEncoder();
return window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('authentication'),
hash: 'SHA-256'
},
sk,
{
name: 'HMAC',
hash: { name: 'SHA-256' }
},
false,
['sign']
);
});
}
this.metaKeyPromise = this.secretKeyPromise.then(sk => {
const encoder = new TextEncoder();
return window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('metadata'),
hash: 'SHA-256'
},
sk,
{
name: 'AES-GCM',
length: 128
},
false,
['decrypt']
);
});
this.file = file;
this.url = url;
this.msg = 'fileSizeProgress';
this.state = 'initialized';
this.progress = [0, 1];
}
get progressRatio() {
return this.progress[0] / this.progress[1];
}
get sizes() {
return {
partialSize: bytes(this.progress[0]),
totalSize: bytes(this.progress[1])
};
}
cancel() {
// TODO
}
fetchMetadata(sig) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
const nonce = xhr.getResponseHeader('WWW-Authenticate').split(' ')[1];
this.file.nonce = nonce;
if (xhr.status === 200) {
return resolve(xhr.response);
}
reject(new Error(xhr.status));
}
};
xhr.onerror = () => reject(new Error(0));
xhr.ontimeout = () => reject(new Error(0));
xhr.open('get', `/api/metadata/${this.file.id}`);
xhr.setRequestHeader('Authorization', `send-v1 ${arrayToB64(sig)}`);
xhr.responseType = 'json';
xhr.timeout = 2000;
xhr.send();
});
}
async getMetadata(nonce) {
try {
const authKey = await this.authKeyPromise;
const sig = await window.crypto.subtle.sign(
{
name: 'HMAC'
},
authKey,
b64ToArray(nonce)
);
const data = await this.fetchMetadata(new Uint8Array(sig));
const metaKey = await this.metaKeyPromise;
const json = await window.crypto.subtle.decrypt(
{
name: 'AES-GCM',
iv: new Uint8Array(12),
tagLength: 128
},
metaKey,
b64ToArray(data.metadata)
);
const decoder = new TextDecoder();
const meta = JSON.parse(decoder.decode(json));
this.file.name = meta.name;
this.file.type = meta.type;
this.file.iv = meta.iv;
this.file.size = data.size;
this.file.ttl = data.ttl;
this.state = 'ready';
} catch (e) {
this.state = 'invalid';
throw e;
}
}
downloadFile(sig) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onprogress = event => {
if (event.lengthComputable && event.target.status !== 404) {
this.progress = [event.loaded, event.total];
this.emit('progress', this.progress);
}
};
xhr.onload = event => {
if (xhr.status === 404) {
reject(new Error('notfound'));
return;
}
if (xhr.status !== 200) {
return reject(new Error(xhr.status));
}
const blob = new Blob([xhr.response]);
const fileReader = new FileReader();
fileReader.onload = function() {
resolve(this.result);
};
fileReader.readAsArrayBuffer(blob);
};
xhr.open('get', this.url);
xhr.setRequestHeader('Authorization', `send-v1 ${arrayToB64(sig)}`);
xhr.responseType = 'blob';
xhr.send();
});
}
async download(nonce) {
this.state = 'downloading';
this.emit('progress', this.progress);
try {
const encryptKey = await this.encryptKeyPromise;
const authKey = await this.authKeyPromise;
const sig = await window.crypto.subtle.sign(
{
name: 'HMAC'
},
authKey,
b64ToArray(nonce)
);
const ciphertext = await this.downloadFile(new Uint8Array(sig));
this.msg = 'decryptingFile';
this.emit('decrypting');
const plaintext = await window.crypto.subtle.decrypt(
{
name: 'AES-GCM',
iv: b64ToArray(this.file.iv),
tagLength: 128
},
encryptKey,
ciphertext
);
this.msg = 'downloadFinish';
this.state = 'complete';
return {
plaintext,
name: decodeURIComponent(this.file.name),
type: this.file.type
};
} catch (e) {
this.state = 'invalid';
throw e;
}
}
}
+291
View File
@@ -0,0 +1,291 @@
import Nanobus from 'nanobus';
import { arrayToB64, b64ToArray, bytes } from './utils';
export default class FileSender extends Nanobus {
constructor(file) {
super('FileSender');
this.file = file;
this.msg = 'importingFile';
this.progress = [0, 1];
this.cancelled = false;
this.iv = window.crypto.getRandomValues(new Uint8Array(12));
this.uploadXHR = new XMLHttpRequest();
this.rawSecret = window.crypto.getRandomValues(new Uint8Array(16));
this.secretKey = window.crypto.subtle.importKey(
'raw',
this.rawSecret,
'HKDF',
false,
['deriveKey']
);
}
static delete(id, token) {
return new Promise((resolve, reject) => {
if (!id || !token) {
return reject();
}
const xhr = new XMLHttpRequest();
xhr.open('POST', `/api/delete/${id}`);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
resolve();
}
};
xhr.send(JSON.stringify({ delete_token: token }));
});
}
get progressRatio() {
return this.progress[0] / this.progress[1];
}
get sizes() {
return {
partialSize: bytes(this.progress[0]),
totalSize: bytes(this.progress[1])
};
}
cancel() {
this.cancelled = true;
if (this.msg === 'fileSizeProgress') {
this.uploadXHR.abort();
}
}
readFile() {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsArrayBuffer(this.file);
reader.onload = function(event) {
const plaintext = new Uint8Array(this.result);
resolve(plaintext);
};
reader.onerror = function(err) {
reject(err);
};
});
}
uploadFile(encrypted, metadata, rawAuth) {
return new Promise((resolve, reject) => {
const dataView = new DataView(encrypted);
const blob = new Blob([dataView], { type: 'application/octet-stream' });
const fd = new FormData();
fd.append('data', blob);
const xhr = this.uploadXHR;
xhr.upload.addEventListener('progress', e => {
if (e.lengthComputable) {
this.progress = [e.loaded, e.total];
this.emit('progress', this.progress);
}
});
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
const nonce = xhr
.getResponseHeader('WWW-Authenticate')
.split(' ')[1];
this.progress = [1, 1];
this.msg = 'notifyUploadDone';
const responseObj = JSON.parse(xhr.responseText);
return resolve({
url: responseObj.url,
id: responseObj.id,
secretKey: arrayToB64(this.rawSecret),
deleteToken: responseObj.delete,
nonce
});
}
this.msg = 'errorPageHeader';
reject(new Error(xhr.status));
}
};
xhr.open('post', '/api/upload', true);
xhr.setRequestHeader(
'X-File-Metadata',
arrayToB64(new Uint8Array(metadata))
);
xhr.setRequestHeader('Authorization', `send-v1 ${arrayToB64(rawAuth)}`);
xhr.send(fd);
this.msg = 'fileSizeProgress';
});
}
async upload() {
const encoder = new TextEncoder();
const secretKey = await this.secretKey;
const encryptKey = await window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('encryption'),
hash: 'SHA-256'
},
secretKey,
{
name: 'AES-GCM',
length: 128
},
false,
['encrypt']
);
const authKey = await window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('authentication'),
hash: 'SHA-256'
},
secretKey,
{
name: 'HMAC',
hash: 'SHA-256'
},
true,
['sign']
);
const metaKey = await window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('metadata'),
hash: 'SHA-256'
},
secretKey,
{
name: 'AES-GCM',
length: 128
},
false,
['encrypt']
);
const plaintext = await this.readFile();
if (this.cancelled) {
throw new Error(0);
}
this.msg = 'encryptingFile';
this.emit('encrypting');
const encrypted = await window.crypto.subtle.encrypt(
{
name: 'AES-GCM',
iv: this.iv,
tagLength: 128
},
encryptKey,
plaintext
);
const metadata = await window.crypto.subtle.encrypt(
{
name: 'AES-GCM',
iv: new Uint8Array(12),
tagLength: 128
},
metaKey,
encoder.encode(
JSON.stringify({
iv: arrayToB64(this.iv),
name: this.file.name,
type: this.file.type || 'application/octet-stream'
})
)
);
const rawAuth = await window.crypto.subtle.exportKey('raw', authKey);
if (this.cancelled) {
throw new Error(0);
}
return this.uploadFile(encrypted, metadata, new Uint8Array(rawAuth));
}
static async setPassword(password, file) {
const encoder = new TextEncoder();
const secretKey = await window.crypto.subtle.importKey(
'raw',
b64ToArray(file.secretKey),
'HKDF',
false,
['deriveKey']
);
const authKey = await window.crypto.subtle.deriveKey(
{
name: 'HKDF',
salt: new Uint8Array(),
info: encoder.encode('authentication'),
hash: 'SHA-256'
},
secretKey,
{
name: 'HMAC',
hash: 'SHA-256'
},
true,
['sign']
);
const sig = await window.crypto.subtle.sign(
{
name: 'HMAC'
},
authKey,
b64ToArray(file.nonce)
);
const pwdKey = await window.crypto.subtle.importKey(
'raw',
encoder.encode(password),
{ name: 'PBKDF2' },
false,
['deriveKey']
);
const newAuthKey = await window.crypto.subtle.deriveKey(
{
name: 'PBKDF2',
salt: encoder.encode(file.url),
iterations: 100,
hash: 'SHA-256'
},
pwdKey,
{
name: 'HMAC',
hash: 'SHA-256'
},
true,
['sign']
);
const rawAuth = await window.crypto.subtle.exportKey('raw', newAuthKey);
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
return resolve(xhr.response);
}
if (xhr.status === 401) {
const nonce = xhr
.getResponseHeader('WWW-Authenticate')
.split(' ')[1];
file.nonce = nonce;
}
reject(new Error(xhr.status));
}
};
xhr.onerror = () => reject(new Error(0));
xhr.ontimeout = () => reject(new Error(0));
xhr.open('post', `/api/password/${file.id}`);
xhr.setRequestHeader(
'Authorization',
`send-v1 ${arrayToB64(new Uint8Array(sig))}`
);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.responseType = 'json';
xhr.timeout = 2000;
xhr.send(JSON.stringify({ auth: arrayToB64(new Uint8Array(rawAuth)) }));
});
}
}
+50
View File
@@ -0,0 +1,50 @@
import app from './routes';
import locale from '../common/locales';
import fileManager from './fileManager';
import dragManager from './dragManager';
import { canHasSend } from './utils';
import assets from '../common/assets';
import storage from './storage';
import metrics from './metrics';
import experiments from './experiments';
import Raven from 'raven-js';
if (navigator.doNotTrack !== '1' && window.RAVEN_CONFIG) {
Raven.config(window.SENTRY_ID, window.RAVEN_CONFIG).install();
}
app.use((state, emitter) => {
// init state
state.transfer = null;
state.fileInfo = null;
state.translate = locale.getTranslator();
state.storage = storage;
state.raven = Raven;
emitter.on('DOMContentLoaded', async () => {
let reason = null;
if (
/firefox/i.test(navigator.userAgent) &&
parseInt(navigator.userAgent.match(/firefox\/*([^\n\r]*)\./i)[1], 10) <=
49
) {
reason = 'outdated';
}
if (/edge\/\d+/i.test(navigator.userAgent)) {
reason = 'edge';
}
const ok = await canHasSend(assets.get('cryptofill.js'));
if (!ok) {
reason = /firefox/i.test(navigator.userAgent) ? 'outdated' : 'gcm';
}
if (reason) {
setTimeout(() => emitter.emit('replaceState', `/unsupported/${reason}`));
}
});
});
app.use(metrics);
app.use(fileManager);
app.use(dragManager);
app.use(experiments);
app.mount('body');
+283
View File
@@ -0,0 +1,283 @@
import testPilotGA from 'testpilot-ga/src/TestPilotGA';
import storage from './storage';
let hasLocalStorage = false;
try {
hasLocalStorage = typeof localStorage !== 'undefined';
} catch (e) {
// when disabled, any mention of localStorage throws an error
}
const analytics = new testPilotGA({
an: 'Firefox Send',
ds: 'web',
tid: window.GOOGLE_ANALYTICS_ID
});
let appState = null;
let experiment = null;
export default function initialize(state, emitter) {
appState = state;
emitter.on('DOMContentLoaded', () => {
// addExitHandlers();
experiment = storage.enrolled[0];
sendEvent(category(), 'visit', {
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads
});
//TODO restart handlers... somewhere
});
emitter.on('exit', evt => {
exitEvent(evt);
});
}
function category() {
switch (appState.route) {
case '/':
case '/share/:id':
return 'sender';
case '/download/:id/:key':
case '/download/:id':
case '/completed':
return 'recipient';
default:
return 'other';
}
}
function sendEvent() {
const args = Array.from(arguments);
if (experiment && args[2]) {
args[2].xid = experiment[0];
args[2].xvar = experiment[1];
}
return (
hasLocalStorage && analytics.sendEvent.apply(analytics, args).catch(() => 0)
);
}
function urlToMetric(url) {
switch (url) {
case 'https://www.mozilla.org/':
return 'mozilla';
case 'https://www.mozilla.org/about/legal':
return 'legal';
case 'https://testpilot.firefox.com/about':
return 'about';
case 'https://testpilot.firefox.com/privacy':
return 'privacy';
case 'https://testpilot.firefox.com/terms':
return 'terms';
case 'https://www.mozilla.org/privacy/websites/#cookies':
return 'cookies';
case 'https://github.com/mozilla/send':
return 'github';
case 'https://twitter.com/FxTestPilot':
return 'twitter';
case 'https://www.mozilla.org/firefox/new/?scene=2':
return 'download-firefox';
case 'https://qsurvey.mozilla.com/s3/txp-firefox-send':
return 'survey';
case 'https://testpilot.firefox.com/':
case 'https://testpilot.firefox.com/experiments/send':
return 'testpilot';
case 'https://www.mozilla.org/firefox/new/?utm_campaign=send-acquisition&utm_medium=referral&utm_source=send.firefox.com':
return 'promo';
default:
return 'other';
}
}
function setReferrer(state) {
if (category() === 'sender') {
if (state) {
storage.referrer = `${state}-upload`;
}
} else if (category() === 'recipient') {
if (state) {
storage.referrer = `${state}-download`;
}
}
}
function externalReferrer() {
if (/^https:\/\/testpilot\.firefox\.com/.test(document.referrer)) {
return 'testpilot';
}
return 'external';
}
function takeReferrer() {
const referrer = storage.referrer || externalReferrer();
storage.referrer = null;
return referrer;
}
function startedUpload(params) {
return sendEvent('sender', 'upload-started', {
cm1: params.size,
cm5: storage.totalUploads,
cm6: storage.files.length + 1,
cm7: storage.totalDownloads,
cd1: params.type,
cd5: takeReferrer()
});
}
function cancelledUpload(params) {
setReferrer('cancelled');
return sendEvent('sender', 'upload-stopped', {
cm1: params.size,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd1: params.type,
cd2: 'cancelled'
});
}
function completedUpload(params) {
return sendEvent('sender', 'upload-stopped', {
cm1: params.size,
cm2: params.time,
cm3: params.speed,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd1: params.type,
cd2: 'completed'
});
}
function addedPassword(params) {
return sendEvent('sender', 'password-added', {
cm1: params.size,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads
});
}
function startedDownload(params) {
return sendEvent('recipient', 'download-started', {
cm1: params.size,
cm4: params.ttl,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads
});
}
function stoppedDownload(params) {
return sendEvent('recipient', 'download-stopped', {
cm1: params.size,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd2: 'errored',
cd6: params.err
});
}
function cancelledDownload(params) {
setReferrer('cancelled');
return sendEvent('recipient', 'download-stopped', {
cm1: params.size,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd2: 'cancelled'
});
}
function stoppedUpload(params) {
return sendEvent('sender', 'upload-stopped', {
cm1: params.size,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd1: params.type,
cd2: 'errored',
cd6: params.err
});
}
function completedDownload(params) {
return sendEvent('recipient', 'download-stopped', {
cm1: params.size,
cm2: params.time,
cm3: params.speed,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd2: 'completed'
});
}
function deletedUpload(params) {
return sendEvent(category(), 'upload-deleted', {
cm1: params.size,
cm2: params.time,
cm3: params.speed,
cm4: params.ttl,
cm5: storage.totalUploads,
cm6: storage.files.length,
cm7: storage.totalDownloads,
cd1: params.type,
cd4: params.location
});
}
function unsupported(params) {
return sendEvent(category(), 'unsupported', {
cd6: params.err
});
}
function copiedLink(params) {
return sendEvent('sender', 'copied', {
cd4: params.location
});
}
function exitEvent(target) {
return sendEvent(category(), 'exited', {
cd3: urlToMetric(target.currentTarget.href)
});
}
// eslint-disable-next-line no-unused-vars
function addExitHandlers() {
const links = Array.from(document.querySelectorAll('a'));
links.forEach(l => {
if (/^http/.test(l.getAttribute('href'))) {
l.addEventListener('click', exitEvent);
}
});
}
function restart(state) {
setReferrer(state);
return sendEvent(category(), 'restarted', {
cd2: state
});
}
export {
copiedLink,
startedUpload,
cancelledUpload,
stoppedUpload,
completedUpload,
deletedUpload,
startedDownload,
cancelledDownload,
stoppedDownload,
completedDownload,
addedPassword,
restart,
unsupported
};
+12
View File
@@ -0,0 +1,12 @@
const preview = require('../templates/preview');
const download = require('../templates/download');
module.exports = function(state, emit) {
if (state.transfer) {
const s = state.transfer.state;
if (s === 'downloading' || s === 'complete') {
return download(state, emit);
}
}
return preview(state, emit);
};
+10
View File
@@ -0,0 +1,10 @@
const welcome = require('../templates/welcome');
const upload = require('../templates/upload');
module.exports = function(state, emit) {
if (state.transfer && state.transfer.iv) {
//TODO relying on 'iv' is gross
return upload(state, emit);
}
return welcome(state, emit);
};
+43
View File
@@ -0,0 +1,43 @@
const choo = require('choo');
const html = require('choo/html');
const download = require('./download');
const header = require('../templates/header');
const footer = require('../templates/footer');
const fxPromo = require('../templates/fxPromo');
const app = choo();
function body(template) {
return function(state, emit) {
const b = html`<body>
${state.promo === 'header' ? fxPromo(state, emit) : ''}
${header(state)}
<div class="all">
<noscript>
<h2>Firefox Send requires JavaScript</h2>
<p><a href="https://github.com/mozilla/send/blob/master/docs/faq.md#why-does-firefox-send-require-javascript">Why does Firefox Send require JavaScript?</a></p>
<p>Please enable JavaScript and try again.</p>
</noscript>
${template(state, emit)}
</div>
${footer(state)}
</body>`;
if (state.layout) {
return state.layout(state, b);
}
return b;
};
}
app.route('/', body(require('./home')));
app.route('/share/:id', body(require('../templates/share')));
app.route('/download/:id', body(download));
app.route('/download/:id/:key', body(download));
app.route('/completed', body(require('../templates/completed')));
app.route('/unsupported/:reason', body(require('../templates/unsupported')));
app.route('/legal', body(require('../templates/legal')));
app.route('/error', body(require('../templates/error')));
app.route('/blank', body(require('../templates/blank')));
app.route('*', body(require('../templates/notFound')));
module.exports = app;
+119
View File
@@ -0,0 +1,119 @@
import { isFile } from './utils';
class Mem {
constructor() {
this.items = new Map();
}
get length() {
return this.items.size;
}
getItem(key) {
return this.items.get(key);
}
setItem(key, value) {
return this.items.set(key, value);
}
removeItem(key) {
return this.items.delete(key);
}
key(i) {
return this.items.keys()[i];
}
}
class Storage {
constructor() {
try {
this.engine = localStorage || new Mem();
} catch (e) {
this.engine = new Mem();
}
this._files = this.loadFiles();
}
loadFiles() {
const fs = [];
for (let i = 0; i < this.engine.length; i++) {
const k = this.engine.key(i);
if (isFile(k)) {
try {
const f = JSON.parse(this.engine.getItem(k));
if (!f.id) {
f.id = f.fileId;
}
fs.push(f);
} catch (err) {
// obviously you're not a golfer
this.engine.removeItem(k);
}
}
}
return fs.sort((a, b) => a.createdAt - b.createdAt);
}
get totalDownloads() {
return Number(this.engine.getItem('totalDownloads'));
}
set totalDownloads(n) {
this.engine.setItem('totalDownloads', n);
}
get totalUploads() {
return Number(this.engine.getItem('totalUploads'));
}
set totalUploads(n) {
this.engine.setItem('totalUploads', n);
}
get referrer() {
return this.engine.getItem('referrer');
}
set referrer(str) {
this.engine.setItem('referrer', str);
}
get enrolled() {
return JSON.parse(this.engine.getItem('experiments') || '[]');
}
enroll(id, variant) {
const enrolled = this.enrolled;
// eslint-disable-next-line no-unused-vars
if (!enrolled.find(([i, v]) => i === id)) {
enrolled.push([id, variant]);
this.engine.setItem('experiments', JSON.stringify(enrolled));
}
}
get files() {
return this._files;
}
getFileById(id) {
return this._files.find(f => f.id === id);
}
get(id) {
return this.engine.getItem(id);
}
remove(property) {
if (isFile(property)) {
this._files.splice(this._files.findIndex(f => f.id === property), 1);
}
this.engine.removeItem(property);
}
addFile(file) {
this._files.push(file);
this.engine.setItem(file.id, JSON.stringify(file));
}
writeFiles() {
this._files.forEach(f => this.engine.setItem(f.id, JSON.stringify(f)));
}
}
export default new Storage();
+6
View File
@@ -0,0 +1,6 @@
const html = require('choo/html');
module.exports = function() {
const div = html`<div id="page-one"></div>`;
return div;
};
+35
View File
@@ -0,0 +1,35 @@
const html = require('choo/html');
const progress = require('./progress');
const { fadeOut } = require('../utils');
const fxPromo = require('./fxPromo');
module.exports = function(state, emit) {
const div = html`
<div id="page-one">
<div id="download" class="fadeIn">
<div id="download-progress">
<div id="dl-title" class="title">${state.translate(
'downloadFinish'
)}</div>
<div class="description"></div>
${progress(1)}
<div class="upload">
<div class="progress-text"></div>
</div>
</div>
<a class="send-new" data-state="completed" href="/" onclick=${
sendNew
}>${state.translate('sendYourFilesLink')}</a>
</div>
${state.promo === 'body' ? fxPromo(state, emit) : ''}
</div>
`;
async function sendNew(e) {
e.preventDefault();
await fadeOut('download');
emit('pushState', '/');
}
return div;
};
+32
View File
@@ -0,0 +1,32 @@
const html = require('choo/html');
const progress = require('./progress');
const { bytes } = require('../utils');
const fxPromo = require('./fxPromo');
module.exports = function(state, emit) {
const transfer = state.transfer;
const div = html`
<div id="page-one">
<div id="download-progress" class="fadeIn">
<div id="dl-title" class="title">${state.translate(
'downloadingPageProgress',
{
filename: state.fileInfo.name,
size: bytes(state.fileInfo.size)
}
)}</div>
<div class="description">${state.translate('downloadingPageMessage')}</div>
${progress(transfer.progressRatio)}
<div class="upload">
<div class="progress-text">${state.translate(
transfer.msg,
transfer.sizes
)}</div>
</div>
</div>
${state.promo === 'body' ? fxPromo(state, emit) : ''}
</div>
`;
return div;
};
+56
View File
@@ -0,0 +1,56 @@
const html = require('choo/html');
module.exports = function(state, emit) {
const fileInfo = state.fileInfo;
const label =
fileInfo.password === null
? html`
<label class="red"
for="unlock-input">${state.translate('passwordTryAgain')}</label>`
: html`
<label for="unlock-input">
${state.translate('unlockInputLabel')}
</label>`;
const div = html`
<div class="enterPassword">
${label}
<form id="unlock" onsubmit=${checkPassword} data-no-csrf>
<input id="unlock-input"
class="unlock-input input-no-btn"
maxlength="64"
autocomplete="off"
placeholder="${state.translate('unlockInputPlaceholder')}"
oninput=${inputChanged}
type="password"/>
<input type="submit"
id="unlock-btn"
class="btn btn-hidden"
value="${state.translate('unlockButtonLabel')}"/>
</form>
</div>`;
function inputChanged() {
const input = document.getElementById('unlock-input');
const btn = document.getElementById('unlock-btn');
if (input.value.length > 0) {
btn.classList.remove('btn-hidden');
input.classList.remove('input-no-btn');
} else {
btn.classList.add('btn-hidden');
input.classList.add('input-no-btn');
}
}
function checkPassword(event) {
event.preventDefault();
const password = document.getElementById('unlock-input').value;
if (password.length > 0) {
document.getElementById('unlock-btn').disabled = true;
state.fileInfo.url = window.location.href;
state.fileInfo.password = password;
emit('preview');
}
}
return div;
};
+10
View File
@@ -0,0 +1,10 @@
const html = require('choo/html');
const assets = require('../../common/assets');
module.exports = function(state) {
return html`
<div id="upload-error">
<div class="title">${state.translate('errorPageHeader')}</div>
<img id="upload-error-img" src="${assets.get('illustration_error.svg')}"/>
</div>`;
};
+84
View File
@@ -0,0 +1,84 @@
const html = require('choo/html');
const assets = require('../../common/assets');
function timeLeft(milliseconds) {
const minutes = Math.floor(milliseconds / 1000 / 60);
const hours = Math.floor(minutes / 60);
const seconds = Math.floor((milliseconds / 1000) % 60);
if (hours >= 1) {
return `${hours}h ${minutes % 60}m`;
} else if (hours === 0) {
return `${minutes}m ${seconds}s`;
}
return null;
}
module.exports = function(file, state, emit) {
const ttl = file.expiresAt - Date.now();
const remaining = timeLeft(ttl) || state.translate('linkExpiredAlt');
const row = html`
<tr id="${file.id}">
<td class="overflow-col" title="${file.name}">${file.name}</td>
<td class="center-col">
<img onclick=${copyClick} src="${assets.get(
'copy-16.svg'
)}" class="icon-copy" title="${state.translate('copyUrlHover')}">
<span class="text-copied" hidden="true">${state.translate(
'copiedUrl'
)}</span>
</td>
<td>${remaining}</td>
<td class="center-col">
<img onclick=${showPopup} src="${assets.get(
'close-16.svg'
)}" class="icon-delete" title="${state.translate('deleteButtonHover')}">
<div class="popup">
<div class="popuptext" onblur=${cancel} tabindex="-1">
<div class="popup-message">${state.translate('deletePopupText')}</div>
<div class="popup-action">
<span class="popup-no" onclick=${cancel}>${state.translate(
'deletePopupCancel'
)}</span>
<span class="popup-yes" onclick=${deleteFile}>${state.translate(
'deletePopupYes'
)}</span>
</div>
</div>
</div>
</td>
</tr>
`;
function copyClick(e) {
emit('copy', { url: file.url, location: 'upload-list' });
const icon = e.target;
const text = e.target.nextSibling;
icon.hidden = true;
text.hidden = false;
setTimeout(() => {
icon.hidden = false;
text.hidden = true;
}, 500);
}
function showPopup() {
const tr = document.getElementById(file.id);
const popup = tr.querySelector('.popuptext');
popup.classList.add('show');
popup.focus();
}
function cancel(e) {
e.stopPropagation();
const tr = document.getElementById(file.id);
const popup = tr.querySelector('.popuptext');
popup.classList.remove('show');
}
function deleteFile() {
emit('delete', { file, location: 'upload-list' });
emit('render');
}
return row;
};
+32
View File
@@ -0,0 +1,32 @@
const html = require('choo/html');
const file = require('./file');
module.exports = function(state, emit) {
let table = '';
if (state.storage.files.length) {
table = html`
<table id="uploaded-files">
<thead>
<tr>
<th id="uploaded-file">${state.translate('uploadedFile')}</th>
<th id="copy-file-list" class="center-col">${state.translate(
'copyFileList'
)}</th>
<th id="expiry-file-list">${state.translate('expiryFileList')}</th>
<th id="delete-file-list" class="center-col">${state.translate(
'deleteFileList'
)}</th>
</tr>
</thead>
<tbody>
${state.storage.files.map(f => file(f, state, emit))}
</tbody>
</table>
`;
}
return html`
<div id="file-list">
${table}
</div>
`;
};
+31
View File
@@ -0,0 +1,31 @@
const html = require('choo/html');
const assets = require('../../common/assets');
module.exports = function(state) {
return html`<div class="footer">
<div class="legal-links">
<a href="https://www.mozilla.org" role="presentation"><img class="mozilla-logo" src="${assets.get(
'mozilla-logo.svg'
)}" alt="mozilla"/></a>
<a href="https://www.mozilla.org/about/legal">${state.translate(
'footerLinkLegal'
)}</a>
<a href="https://testpilot.firefox.com/about">${state.translate(
'footerLinkAbout'
)}</a>
<a href="/legal">${state.translate('footerLinkPrivacy')}</a>
<a href="/legal">${state.translate('footerLinkTerms')}</a>
<a href="https://www.mozilla.org/privacy/websites/#cookies">${state.translate(
'footerLinkCookies'
)}</a>
</div>
<div class="social-links">
<a href="https://github.com/mozilla/send" role="presentation"><img class="github" src="${assets.get(
'github-icon.svg'
)}" alt="github"/></a>
<a href="https://twitter.com/FxTestPilot" role="presentation"><img class="twitter" src="${assets.get(
'twitter-icon.svg'
)}" alt="twitter"/></a>
</div>
</div>`;
};
+44
View File
@@ -0,0 +1,44 @@
const html = require('choo/html');
const assets = require('../../common/assets');
// function replaceLinks(str, urls) {
// let i = -1;
// const s = str.replace(/<a>([^<]+)<\/a>/g, (m, v) => {
// i++;
// return `<a class="link" href="${urls[i]}">${v}</a>`;
// });
// return [`<span>${s}</span>`];
// }
module.exports = function(state, emit) {
// function close() {
// document.querySelector('.banner').remove();
// }
function clicked(evt) {
emit('exit', evt);
}
return html`
<div class="banner">
<div>
<img
src="${assets.get('firefox_logo-only.svg')}"
class="firefox-logo-small"
alt="Firefox"/>
<span>Send is brought to you by the all-new Firefox.
<a
class="link"
href="https://www.mozilla.org/firefox/new/?utm_campaign=send-acquisition&utm_medium=referral&utm_source=send.firefox.com"
onclick=${clicked}
>Download Firefox now ≫</a></span>
</div>
</div>`;
};
/*
<img
src="${assets.get('close-16.svg')}"
class="icon-delete"
onclick=${close}>
*/
+21
View File
@@ -0,0 +1,21 @@
const html = require('choo/html');
const assets = require('../../common/assets');
module.exports = function(state) {
return html`<header class="header">
<div class="send-logo">
<a href="/">
<img src="${assets.get(
'send_logo.svg'
)}" alt="Send"/><h1 class="site-title">Send</h1>
</a>
<div class="site-subtitle">
<a href="https://testpilot.firefox.com">Firefox Test Pilot</a>
<div>${state.translate('siteSubtitle')}</div>
</div>
</div>
<a href="https://qsurvey.mozilla.com/s3/txp-firefox-send" rel="noreferrer noopener" class="feedback" target="_blank">${state.translate(
'siteFeedback'
)}</a>
</header>`;
};
+34
View File
@@ -0,0 +1,34 @@
const html = require('choo/html');
function replaceLinks(str, urls) {
let i = -1;
const s = str.replace(/<a>([^<]+)<\/a>/g, (m, v) => {
i++;
return `<a href="${urls[i]}">${v}</a>`;
});
return [`<div class="description">${s}</div>`];
}
module.exports = function(state) {
const div = html`
<div id="page-one">
<div id="legal">
<div class="title">${state.translate('legalHeader')}</div>
${html(
replaceLinks(state.translate('legalNoticeTestPilot'), [
'https://testpilot.firefox.com/terms',
'https://testpilot.firefox.com/privacy',
'https://testpilot.firefox.com/experiments/send'
])
)}
${html(
replaceLinks(state.translate('legalNoticeMozilla'), [
'https://www.mozilla.org/privacy/websites/',
'https://www.mozilla.org/about/legal/terms/mozilla/'
])
)}
</div>
</div>
`;
return div;
};
+21
View File
@@ -0,0 +1,21 @@
const html = require('choo/html');
const assets = require('../../common/assets');
module.exports = function(state) {
const div = html`
<div id="page-one">
<div id="download">
<div class="title">${state.translate('expiredPageHeader')}</div>
<div class="share-window">
<img src="${assets.get('illustration_expired.svg')}" id="expired-img">
</div>
<div class="expired-description">${state.translate(
'uploadPageExplainer'
)}</div>
<a class="send-new" href="/" data-state="notfound">${state.translate(
'sendYourFilesLink'
)}</a>
</div>
</div>`;
return div;
};
+74
View File
@@ -0,0 +1,74 @@
const html = require('choo/html');
const assets = require('../../common/assets');
const notFound = require('./notFound');
const downloadPassword = require('./downloadPassword');
const { bytes } = require('../utils');
const fxPromo = require('./fxPromo');
function getFileFromDOM() {
const el = document.getElementById('dl-file');
if (!el) {
return null;
}
return {
nonce: el.getAttribute('data-nonce'),
pwd: !!+el.getAttribute('data-requires-password')
};
}
module.exports = function(state, emit) {
state.fileInfo = state.fileInfo || getFileFromDOM();
if (!state.fileInfo) {
return notFound(state, emit);
}
state.fileInfo.id = state.params.id;
state.fileInfo.key = state.params.key;
const fileInfo = state.fileInfo;
const size = fileInfo.size
? state.translate('downloadFileSize', { size: bytes(fileInfo.size) })
: '';
let action = html`
<div>
<img src="${assets.get('illustration_download.svg')}"
id="download-img"
alt="${state.translate('downloadAltText')}"/>
<div>
<button id="download-btn"
class="btn"
onclick=${download}>${state.translate('downloadButtonLabel')}
</button>
</div>
</div>`;
if (fileInfo.pwd && !fileInfo.password) {
action = downloadPassword(state, emit);
} else if (!state.transfer) {
emit('preview');
}
const title = fileInfo.name
? state.translate('downloadFileName', { filename: fileInfo.name })
: state.translate('downloadFileTitle');
const div = html`
<div id="page-one">
<div id="download">
<div id="download-page-one">
<div class="title">
<span id="dl-file"
data-nonce="${fileInfo.nonce}"
data-requires-password="${fileInfo.pwd}">${title}</span>
<span id="dl-filesize">${' ' + size}</span>
</div>
<div class="description">${state.translate('downloadMessage')}</div>
${action}
</div>
<a class="send-new" href="/">${state.translate('sendYourFilesLink')}</a>
</div>
${state.promo === 'body' ? fxPromo(state, emit) : ''}
</div>
`;
function download(event) {
event.preventDefault();
emit('download', fileInfo);
}
return div;
};
+29
View File
@@ -0,0 +1,29 @@
const html = require('choo/html');
const radius = 73;
const oRadius = radius + 10;
const oDiameter = oRadius * 2;
const circumference = 2 * Math.PI * radius;
module.exports = function(progressRatio) {
const dashOffset = (1 - progressRatio) * circumference;
const percent = Math.floor(progressRatio * 100);
const div = html`
<div class="progress-bar">
<svg id="progress" width="${oDiameter}" height="${
oDiameter
}" viewPort="0 0 ${oDiameter} ${oDiameter}" version="1.1">
<circle r="${radius}" cx="${oRadius}" cy="${oRadius}" fill="transparent"/>
<circle id="bar" r="${radius}" cx="${oRadius}" cy="${
oRadius
}" fill="transparent" transform="rotate(-90 ${oRadius} ${
oRadius
})" stroke-dasharray="${circumference}" stroke-dashoffset="${dashOffset}"/>
<text class="percentage" text-anchor="middle" x="50%" y="98"><tspan class="percent-number">${
percent
}</tspan><tspan class="percent-sign">%</tspan></text>
</svg>
</div>
`;
return div;
};
+90
View File
@@ -0,0 +1,90 @@
const html = require('choo/html');
const assets = require('../../common/assets');
const notFound = require('./notFound');
const uploadPassword = require('./uploadPassword');
const { allowedCopy, delay, fadeOut } = require('../utils');
function passwordComplete(state, password) {
const el = html([
`<div class="selectPassword">${state.translate('passwordResult', {
password: '<pre></pre>'
})}</div>`
]);
el.lastElementChild.textContent = password;
return el;
}
module.exports = function(state, emit) {
const file = state.storage.getFileById(state.params.id);
if (!file) {
return notFound(state, emit);
}
file.password = file.password || '';
const passwordSection = file.password
? passwordComplete(state, file.password)
: uploadPassword(state, emit);
const div = html`
<div id="share-link" class="fadeIn">
<div class="title">${state.translate('uploadSuccessTimingHeader')}</div>
<div id="share-window">
<div id="copy-text">
${state.translate('copyUrlFormLabelWithName', {
filename: file.name
})}</div>
<div id="copy">
<input id="link" type="url" value="${file.url}" readonly="true"/>
<button id="copy-btn"
class="btn"
title="${state.translate('copyUrlFormButton')}"
onclick=${copyLink}>${state.translate('copyUrlFormButton')}</button>
</div>
${passwordSection}
<button id="delete-file"
class="btn"
title="${state.translate('deleteFileButton')}"
onclick=${deleteFile}>${state.translate('deleteFileButton')}</button>
<a class="send-new"
data-state="completed"
href="/"
onclick=${sendNew}>${state.translate('sendAnotherFileLink')}</a>
</div>
</div>
`;
async function sendNew(e) {
e.preventDefault();
await fadeOut('share-link');
emit('pushState', '/');
}
async function copyLink() {
if (allowedCopy()) {
emit('copy', { url: file.url, location: 'success-screen' });
const input = document.getElementById('link');
input.disabled = true;
const copyBtn = document.getElementById('copy-btn');
copyBtn.disabled = true;
copyBtn.classList.add('success');
copyBtn.replaceChild(
html`<img src="${assets.get('check-16.svg')}" class="icon-check">`,
copyBtn.firstChild
);
await delay(2000);
input.disabled = false;
if (!copyBtn.parentNode.classList.contains('wait-password')) {
copyBtn.disabled = false;
}
copyBtn.classList.remove('success');
copyBtn.textContent = state.translate('copyUrlFormButton');
}
}
async function deleteFile() {
emit('delete', { file, location: 'success-screen' });
await fadeOut('share-link');
emit('pushState', '/');
}
return div;
};
+46
View File
@@ -0,0 +1,46 @@
const html = require('choo/html');
const assets = require('../../common/assets');
module.exports = function(state) {
const msg =
state.params.reason === 'outdated'
? html`
<div id="unsupported-browser">
<div class="title">${state.translate('notSupportedHeader')}</div>
<div class="description">${state.translate(
'notSupportedOutdatedDetail'
)}</div>
<a id="update-firefox" href="https://support.mozilla.org/kb/update-firefox-latest-version">
<img src="${assets.get(
'firefox_logo-only.svg'
)}" class="firefox-logo" alt="Firefox"/>
<div class="unsupported-button-text">${state.translate(
'updateFirefox'
)}</div>
</a>
<div class="unsupported-description">${state.translate(
'uploadPageExplainer'
)}</div>
</div>`
: html`
<div id="unsupported-browser">
<div class="title">${state.translate('notSupportedHeader')}</div>
<div class="description">${state.translate('notSupportedDetail')}</div>
<div class="description"><a href="https://github.com/mozilla/send/blob/master/docs/faq.md#why-is-my-browser-not-supported">${state.translate(
'notSupportedLink'
)}</a></div>
<a id="dl-firefox" href="https://www.mozilla.org/firefox/new/?scene=2">
<img src="${assets.get(
'firefox_logo-only.svg'
)}" class="firefox-logo" alt="Firefox"/>
<div class="unsupported-button-text">Firefox<br>
<span>${state.translate('downloadFirefoxButtonSub')}</span>
</div>
</a>
<div class="unsupported-description">${state.translate(
'uploadPageExplainer'
)}</div>
</div>`;
const div = html`<div id="page-one">${msg}</div>`;
return div;
};
+38
View File
@@ -0,0 +1,38 @@
const html = require('choo/html');
const progress = require('./progress');
const { bytes } = require('../utils');
module.exports = function(state, emit) {
const transfer = state.transfer;
const div = html`
<div id="upload-progress" class="fadeIn">
<div class="title" id="upload-filename">${state.translate(
'uploadingPageProgress',
{
filename: transfer.file.name,
size: bytes(transfer.file.size)
}
)}</div>
<div class="description"></div>
${progress(transfer.progressRatio)}
<div class="upload">
<div class="progress-text">${state.translate(
transfer.msg,
transfer.sizes
)}</div>
<button id="cancel-upload" title="${state.translate(
'uploadingPageCancel'
)}" onclick=${cancel}>${state.translate('uploadingPageCancel')}</button>
</div>
</div>
`;
function cancel() {
const btn = document.getElementById('cancel-upload');
btn.disabled = true;
btn.textContent = state.translate('uploadCancelNotification');
emit('cancel');
}
return div;
};
+65
View File
@@ -0,0 +1,65 @@
const html = require('choo/html');
module.exports = function(state, emit) {
const file = state.storage.getFileById(state.params.id);
const div = html`
<div class="selectPassword">
<div id="addPasswordWrapper">
<input id="addPassword" type="checkbox" autocomplete="off" onchange=${
togglePasswordInput
}/>
<label for="addPassword">
${state.translate('requirePasswordCheckbox')}</label>
</div>
<form class="setPassword hidden" onsubmit=${setPassword} data-no-csrf>
<input id="unlock-input"
class="unlock-input input-no-btn"
maxlength="64"
autocomplete="off"
placeholder="${state.translate('unlockInputPlaceholder')}"
oninput=${inputChanged}/>
<input type="submit"
id="unlock-btn"
class="btn btn-hidden"
value="${state.translate('addPasswordButton')}"/>
</form>
</div>`;
function inputChanged() {
const input = document.getElementById('unlock-input');
const btn = document.getElementById('unlock-btn');
if (input.value.length > 0) {
btn.classList.remove('btn-hidden');
input.classList.remove('input-no-btn');
} else {
btn.classList.add('btn-hidden');
input.classList.add('input-no-btn');
}
}
function togglePasswordInput(e) {
const unlockInput = document.getElementById('unlock-input');
const boxChecked = e.target.checked;
document
.querySelector('.setPassword')
.classList.toggle('hidden', !boxChecked);
if (boxChecked) {
unlockInput.focus();
} else {
unlockInput.value = '';
}
inputChanged();
}
function setPassword(event) {
event.preventDefault();
const password = document.getElementById('unlock-input').value;
if (password.length > 0) {
document.getElementById('copy').classList.remove('wait-password');
document.getElementById('copy-btn').disabled = false;
emit('password', { password, file });
}
}
return div;
};
+73
View File
@@ -0,0 +1,73 @@
const html = require('choo/html');
const assets = require('../../common/assets');
const fileList = require('./fileList');
const fxPromo = require('./fxPromo');
const { fadeOut } = require('../utils');
module.exports = function(state, emit) {
const div = html`
<div id="page-one" class="fadeIn">
<div class="title">${state.translate('uploadPageHeader')}</div>
<div class="description">
<div>${state.translate('uploadPageExplainer')}</div>
<a href="https://testpilot.firefox.com/experiments/send"
class="link">${state.translate('uploadPageLearnMore')}</a>
</div>
<div class="upload-window"
ondragover=${dragover}
ondragleave=${dragleave}>
<div id="upload-img">
<img src="${assets.get('upload.svg')}"
title="${state.translate('uploadSvgAlt')}"/>
</div>
<div id="upload-text">${state.translate('uploadPageDropMessage')}</div>
<span id="file-size-msg">
<em>${state.translate('uploadPageSizeMessage')}</em>
</span>
<input id="file-upload"
type="file"
name="fileUploaded"
onfocus=${onfocus}
onblur=${onblur}
onchange=${upload} />
<label for="file-upload"
id="browse"
class="btn browse"
title="${state.translate('uploadPageBrowseButton1')}">
${state.translate('uploadPageBrowseButton1')}</label>
</div>
${state.promo === 'body' ? fxPromo(state, emit) : ''}
${fileList(state, emit)}
</div>
`;
function dragover(event) {
const div = document.querySelector('.upload-window');
div.classList.add('ondrag');
}
function dragleave(event) {
const div = document.querySelector('.upload-window');
div.classList.remove('ondrag');
}
function onfocus(event) {
event.target.classList.add('has-focus');
}
function onblur(event) {
event.target.classList.remove('has-focus');
}
async function upload(event) {
event.preventDefault();
const target = event.target;
const file = target.files[0];
if (file.size === 0) {
return;
}
await fadeOut('page-one');
emit('upload', { file, type: 'click' });
}
return div;
};
+166
View File
@@ -0,0 +1,166 @@
const b64 = require('base64-js');
function arrayToB64(array) {
return b64
.fromByteArray(array)
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '');
}
function b64ToArray(str) {
str = (str + '==='.slice((str.length + 3) % 4))
.replace(/-/g, '+')
.replace(/_/g, '/');
return b64.toByteArray(str);
}
function notify(str) {
return str;
/* TODO: enable once we have an opt-in ui element
if (!('Notification' in window)) {
return;
} else if (Notification.permission === 'granted') {
new Notification(str);
} else if (Notification.permission !== 'denied') {
Notification.requestPermission(function(permission) {
if (permission === 'granted') new Notification(str);
});
}
*/
}
function loadShim(polyfill) {
return new Promise((resolve, reject) => {
const shim = document.createElement('script');
shim.src = polyfill;
shim.addEventListener('load', () => resolve(true));
shim.addEventListener('error', () => resolve(false));
document.head.appendChild(shim);
});
}
async function canHasSend(polyfill) {
try {
const key = await window.crypto.subtle.generateKey(
{
name: 'AES-GCM',
length: 128
},
true,
['encrypt', 'decrypt']
);
await window.crypto.subtle.encrypt(
{
name: 'AES-GCM',
iv: window.crypto.getRandomValues(new Uint8Array(12)),
tagLength: 128
},
key,
new ArrayBuffer(8)
);
return true;
} catch (err) {
return loadShim(polyfill);
}
}
function isFile(id) {
return /^[0-9a-fA-F]{10}$/.test(id);
}
function copyToClipboard(str) {
const aux = document.createElement('input');
aux.setAttribute('value', str);
aux.contentEditable = true;
aux.readOnly = true;
document.body.appendChild(aux);
if (navigator.userAgent.match(/iphone|ipad|ipod/i)) {
const range = document.createRange();
range.selectNodeContents(aux);
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
aux.setSelectionRange(0, str.length);
} else {
aux.select();
}
const result = document.execCommand('copy');
document.body.removeChild(aux);
return result;
}
const LOCALIZE_NUMBERS = !!(
typeof Intl === 'object' &&
Intl &&
typeof Intl.NumberFormat === 'function' &&
typeof navigator === 'object'
);
const UNITS = ['B', 'kB', 'MB', 'GB'];
function bytes(num) {
if (num < 1) {
return '0B';
}
const exponent = Math.min(Math.floor(Math.log10(num) / 3), UNITS.length - 1);
const n = Number(num / Math.pow(1000, exponent));
let nStr = n.toFixed(1);
if (LOCALIZE_NUMBERS) {
try {
const locale = document.querySelector('html').lang;
nStr = n.toLocaleString(locale, {
minimumFractionDigits: 1,
maximumFractionDigits: 1
});
} catch (e) {
// fall through
}
}
return `${nStr}${UNITS[exponent]}`;
}
function percent(ratio) {
if (LOCALIZE_NUMBERS) {
try {
const locale = document.querySelector('html').lang;
return ratio.toLocaleString(locale, { style: 'percent' });
} catch (e) {
// fall through
}
}
return `${Math.floor(ratio * 100)}%`;
}
function allowedCopy() {
const support = !!document.queryCommandSupported;
return support ? document.queryCommandSupported('copy') : false;
}
function delay(delay = 100) {
return new Promise(resolve => setTimeout(resolve, delay));
}
function fadeOut(id) {
const classes = document.getElementById(id).classList;
classes.remove('fadeIn');
classes.add('fadeOut');
return delay(300);
}
const ONE_DAY_IN_MS = 86400000;
module.exports = {
fadeOut,
delay,
allowedCopy,
bytes,
percent,
copyToClipboard,
arrayToB64,
b64ToArray,
notify,
canHasSend,
isFile,
ONE_DAY_IN_MS
};
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="#0A84FF " d="M6 14a1 1 0 0 1-.707-.293l-3-3a1 1 0 0 1 1.414-1.414l2.157 2.157 6.316-9.023a1 1 0 0 1 1.639 1.146l-7 10a1 1 0 0 1-.732.427A.863.863 0 0 1 6 14z"/></svg>

After

Width:  |  Height:  |  Size: 238 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 16 16"><path fill="#fff" d="M6 14a1 1 0 0 1-.707-.293l-3-3a1 1 0 0 1 1.414-1.414l2.157 2.157 6.316-9.023a1 1 0 0 1 1.639 1.146l-7 10a1 1 0 0 1-.732.427A.863.863 0 0 1 6 14z"/></svg>

After

Width:  |  Height:  |  Size: 257 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 16 16"><path fill="#4A4A4A" d="M9.414 8l5.293-5.293a1 1 0 0 0-1.414-1.414L8 6.586 2.707 1.293a1 1 0 0 0-1.414 1.414L6.586 8l-5.293 5.293a1 1 0 1 0 1.414 1.414L8 9.414l5.293 5.293a1 1 0 0 0 1.414-1.414z"/></svg>

After

Width:  |  Height:  |  Size: 287 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path class="icon-copy" fill="#0A8DFF" d="M14.707 8.293l-3-3A1 1 0 0 0 11 5h-1V4a1 1 0 0 0-.293-.707l-3-3A1 1 0 0 0 6 0H3a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h3v3a2 2 0 0 0 2 2h5a2 2 0 0 0 2-2V9a1 1 0 0 0-.293-.707zM12.586 9H11V7.414zm-5-5H6V2.414zM6 7v2H3V2h2v2.5a.5.5 0 0 0 .5.5H8a2 2 0 0 0-2 2zm2 7V7h2v2.5a.5.5 0 0 0 .5.5H13v4z"/></svg>

After

Width:  |  Height:  |  Size: 416 B

File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="15" height="13" viewBox="0 0 15 13" xmlns="http://www.w3.org/2000/svg"><title>Combined Shape</title><path d="M10.274 9.193a5.957 5.957 0 0 1-2.98.778C4.37 9.97 2 7.963 2 5.485 2 3.008 4.37 1 7.294 1c2.924 0 5.294 2.008 5.294 4.485 0 .843-.274 1.632-.751 2.305l.577 2.21-2.14-.807zm-5.983-2.96a.756.756 0 0 0 .763-.748.756.756 0 0 0-.763-.747.756.756 0 0 0-.764.747c0 .413.342.748.764.748zm3.054 0a.756.756 0 0 0 .764-.748.756.756 0 0 0-.764-.747.756.756 0 0 0-.764.747c0 .413.342.748.764.748zm3.054 0a.756.756 0 0 0 .764-.748.756.756 0 0 0-.764-.747.756.756 0 0 0-.763.747c0 .413.342.748.763.748z" fill="#FFF" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 649 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="438.549" height="438.549" viewBox="0 0 438.549 438.549"><path d="M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 0 1-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.3 KiB

+1097
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 578.55 185.54"><path d="M503.5 117.21c0 4.92 2.37 8.82 9 8.82 7.8 0 16.11-5.6 16.61-18.31a80.86 80.86 0 0 0-11-1c-7.83-.01-14.61 2.19-14.61 10.49z"/><path d="M0 0v185.54h578.55V0zm163.78 139.93h-32V96.87c0-13.22-4.41-18.31-13.05-18.31-10.51 0-14.75 7.46-14.75 18.14v26.64h10.12v16.61h-32V96.87c0-13.22-4.4-18.31-13.05-18.31-10.51 0-14.75 7.46-14.75 18.14v26.64h14.54v16.61H22.22v-16.61h10.17V80.09h-11V63.48h32.87V75c4.58-8.13 12.55-13.05 23.22-13.05 11 0 21.19 5.26 24.92 16.45 4.24-10.17 12.88-16.45 24.92-16.45 13.73 0 26.28 8.31 26.28 26.45v34.94h10.17zm48.65 1.69c-23.56 0-39.84-14.41-39.84-38.82 0-22.38 13.56-40.86 41-40.86s40.86 18.48 40.86 39.84c.02 24.42-17.61 39.85-42.02 39.85zm121.72-1.69h-66.8l-2.2-11.53 42-48.32h-23.9l-3.39 11.87-15.77-1.69 2.71-26.79H334L335.69 75l-42.4 48.34H318l3.56-11.87 17.29 1.69zm41.36 0h-22.89v-27.46h22.89zm0-49h-22.89V63.48h22.89zm12 49L420.6 23.34h21.53l-33.06 116.59zm44.42 0L465 23.34h21.53l-33.04 116.59zm113.92 1.69c-10.17 0-15.76-5.94-16.78-15.26-4.41 7.8-12.21 15.26-24.58 15.26-11 0-23.56-5.94-23.56-21.87 0-18.82 18.14-23.22 35.6-23.22a100.23 100.23 0 0 1 12.55.68v-2.54c0-7.8-.17-17.12-12.55-17.12-4.58 0-8.14.34-11.7 2.2L502 90.6l-17.46-1.87 3.39-19.83c13.39-5.43 20.17-7 32.72-7 16.45 0 30.35 8.48 30.35 25.94v33.23c0 4.41 1.69 5.94 5.26 5.94a11.5 11.5 0 0 0 3.22-.51l.17 11.53a29.57 29.57 0 0 1-13.77 3.6z"/><path d="M213.27 78.73c-11.19 0-18.14 8.3-18.14 22.72 0 13.22 6.1 23.39 18 23.39 11.36 0 18.82-9.15 18.82-23.73-.03-15.43-8.33-22.38-18.68-22.38z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.4 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="30" height="27" viewBox="0 0 30 27" xmlns="http://www.w3.org/2000/svg"><title>send logo</title><g stroke="#3E3D40" fill="none" fill-rule="evenodd" transform="translate(-0.231,0.11948695)"><path d="M22.364 19.989l-2.153-2.103a2.046 2.046 0 0 0-2.665-.151l3.402 3.323a.531.531 0 0 1 0 .766l-2.466 2.408a.563.563 0 0 1-.784 0l-3.398-3.32a1.932 1.932 0 0 0 .188 2.564l2.153 2.103c.788.77 2.066.77 2.855 0l2.868-2.802a1.94 1.94 0 0 0 0-2.788M8.77 14.745a.534.534 0 0 0 0 .766l3.399 3.32a2.05 2.05 0 0 1-2.625-.184l-2.153-2.102a1.94 1.94 0 0 1 0-2.79l2.869-2.801a2.052 2.052 0 0 1 2.854 0l2.153 2.103c.73.713.775 1.83.154 2.603l-3.401-3.323a.565.565 0 0 0-.784 0L8.77 14.745zm9.464 5.682a.777.777 0 0 1 0 1.118.822.822 0 0 1-1.144 0l-5.6-5.47a.777.777 0 0 1 0-1.118.822.822 0 0 1 1.144 0l5.6 5.47z" stroke-width=".618" fill="#3E3D40"/><path d="M6.065 20.606c-2.913-1.586-3.988-3.656-3.988-6.468 0-2.81 2.265-6.425 5.786-6.289.1.004.55-.006.649 0 .895-3.27 2.508-6.353 6.898-6.353 4.557 0 7.336 3.716 6.75 7.785.08-.005 1.232.17 1.31.186 3.096.644 4.915 3.275 4.915 5.18 0 1.905-.107 3.029-2.023 4.947" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 612 612"><path d="M612 116.258a250.714 250.714 0 0 1-72.088 19.772c25.929-15.527 45.777-40.155 55.184-69.411-24.322 14.379-51.169 24.82-79.775 30.48-22.907-24.437-55.49-39.658-91.63-39.658-69.334 0-125.551 56.217-125.551 125.513 0 9.828 1.109 19.427 3.251 28.606-104.326-5.24-196.835-55.223-258.75-131.174-10.823 18.51-16.98 40.078-16.98 63.101 0 43.559 22.181 81.993 55.835 104.479a125.556 125.556 0 0 1-56.867-15.756v1.568c0 60.806 43.291 111.554 100.693 123.104-10.517 2.83-21.607 4.398-33.08 4.398-8.107 0-15.947-.803-23.634-2.333 15.985 49.907 62.336 86.199 117.253 87.194-42.947 33.654-97.099 53.655-155.916 53.655-10.134 0-20.116-.612-29.944-1.721 55.567 35.681 121.536 56.485 192.438 56.485 230.948 0 357.188-191.291 357.188-357.188l-.421-16.253c24.666-17.593 46.005-39.697 62.794-64.861z" fill="#010002"/></svg>

After

Width:  |  Height:  |  Size: 873 B

+1
View File
@@ -0,0 +1 @@
<svg width="57" height="57" viewBox="0 0 57 57" xmlns="http://www.w3.org/2000/svg"><title>upload</title><g transform="translate(1 1)" stroke-width="2" stroke="#7FC9FD" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M18 24l10-9 10 9M28 39.545V15"/><circle cx="27.5" cy="27.5" r="27.5"/></g></svg>

After

Width:  |  Height:  |  Size: 336 B

+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src=“favicon-76.png”/>
<square150x150logo src="favicon-228.png"/>
<TileColor>#0297F8</TileColor>
</tile>
</msapplication>
</browserconfig>
+5
View File
@@ -0,0 +1,5 @@
last 2 chrome versions
last 2 firefox versions
firefox esr
ie >= 9
safari >= 9
+38
View File
@@ -0,0 +1,38 @@
const { MessageContext } = require('fluent');
function toJSON(map) {
return JSON.stringify(Array.from(map));
}
module.exports = function(source) {
const localeExp = this.options.locale || /([^/]+)\/[^/]+\.ftl$/;
const result = localeExp.exec(this.resourcePath);
const locale = result && result[1];
// pre-parse the ftl
const context = new MessageContext(locale);
context.addMessages(source);
if (!locale) {
throw new Error(`couldn't find locale in: ${this.resourcePath}`);
}
return `
module.exports = \`
if (typeof window === 'undefined') {
var fluent = require('fluent');
}
var ctx = new fluent.MessageContext('${locale}', {useIsolating: false});
ctx._messages = new Map(${toJSON(context._messages)});
function translate(id, data) {
var msg = ctx.getMessage(id);
if (typeof(msg) !== 'string' && !msg.val && msg.attrs) {
msg = msg.attrs.title || msg.attrs.alt
}
return ctx.format(msg, data);
}
if (typeof window === 'undefined') {
module.exports = translate;
}
else {
window.translate = translate;
}
\``;
};
+19
View File
@@ -0,0 +1,19 @@
const fs = require('fs');
const path = require('path');
function kv(f) {
return `"${f}": require('../assets/${f}')`;
}
module.exports = function() {
const files = fs.readdirSync(path.join(__dirname, '..', 'assets'));
const code = `module.exports = {
"package.json": require('../package.json'),
${files.map(kv).join(',\n')}
};`;
return {
code,
dependencies: files.map(f => require.resolve('../assets/' + f)),
cacheable: false
};
};
+22
View File
@@ -0,0 +1,22 @@
const fs = require('fs');
const path = require('path');
function kv(d) {
return `"${d}": require('../public/locales/${d}/send.ftl')`;
}
module.exports = function() {
const dirs = fs.readdirSync(path.join(__dirname, '..', 'public', 'locales'));
const code = `
module.exports = {
translate: function (id, data) { return window.translate(id, data) },
${dirs.map(kv).join(',\n')}
};`;
return {
code,
dependencies: dirs.map(d =>
require.resolve(`../public/locales/${d}/send.ftl`)
),
cacheable: false
};
};
+11
View File
@@ -0,0 +1,11 @@
const commit = require('git-rev-sync').short();
module.exports = function(source) {
const pkg = JSON.parse(source);
const version = {
commit,
source: pkg.homepage,
version: process.env.CIRCLE_TAG || `v${pkg.version}`
};
return `module.exports = '${JSON.stringify(version)}'`;
};
+16 -7
View File
@@ -3,24 +3,33 @@ machine:
version: 8
services:
- docker
- redis
environment:
PATH: "/home/ubuntu/send/firefox:$PATH"
dependencies:
pre:
- npm i -g get-firefox geckodriver nsp
- get-firefox --platform linux --extract --target /home/ubuntu/send
deployment:
latest:
branch: master
commands:
- npm run predocker
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- docker build -t mozilla/fileshare:latest .
- docker push mozilla/fileshare:latest
- docker build -t mozilla/send:latest .
- docker push mozilla/send:latest
tags:
tags: /.*/
tag: /.*/
owner: mozilla
commands:
- npm run predocker
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- docker build -t mozilla/fileshare:$CIRCLE_TAG .
- docker push mozilla/fileshare:$CIRCLE_TAG
- docker build -t mozilla/send:$CIRCLE_TAG .
- docker push mozilla/send:$CIRCLE_TAG
test:
override:
- npm run build
- npm run lint
- npm test
- nsp check
+32
View File
@@ -0,0 +1,32 @@
const genmap = require('../build/generate_asset_map');
const isServer = typeof genmap === 'function';
const prefix = isServer ? '/' : '';
let manifest = {};
try {
//eslint-disable-next-line node/no-missing-require
manifest = require('../dist/manifest.json');
} catch (e) {
// use middleware
}
const assets = isServer ? manifest : genmap;
function getAsset(name) {
return prefix + assets[name];
}
const instance = {
get: getAsset,
setMiddleware: function(middleware) {
if (middleware) {
instance.get = function getAssetWithMiddleware(name) {
const f = middleware.fileSystem.readFileSync(
middleware.getFilenameFromUrl('/manifest.json')
);
return prefix + JSON.parse(f)[name];
};
}
}
};
module.exports = instance;
+51
View File
@@ -0,0 +1,51 @@
const gen = require('../build/generate_l10n_map');
const isServer = typeof gen === 'function';
const prefix = isServer ? '/' : '';
let manifest = {};
try {
//eslint-disable-next-line node/no-missing-require
manifest = require('../dist/manifest.json');
} catch (e) {
// use middleware
}
const locales = isServer ? manifest : gen;
function getLocale(name) {
return prefix + locales[`public/locales/${name}/send.ftl`];
}
function serverTranslator(name) {
return require(`../dist/${locales[`public/locales/${name}/send.ftl`]}`);
}
function browserTranslator() {
return locales.translate;
}
const translator = isServer ? serverTranslator : browserTranslator;
const instance = {
get: getLocale,
getTranslator: translator,
setMiddleware: function(middleware) {
if (middleware) {
const _eval = require('require-from-string');
instance.get = function getLocaleWithMiddleware(name) {
const f = middleware.fileSystem.readFileSync(
middleware.getFilenameFromUrl('/manifest.json')
);
return prefix + JSON.parse(f)[`public/locales/${name}/send.ftl`];
};
instance.getTranslator = function(name) {
const f = middleware.fileSystem.readFileSync(
middleware.getFilenameFromUrl(instance.get(name))
);
return _eval(f.toString());
};
}
}
};
module.exports = instance;
+2 -1
View File
@@ -7,6 +7,7 @@ services:
ports:
- "1443:1443"
environment:
- P2P_REDIS_HOST=redis
- REDIS_HOST=redis
- NODE_ENV=production
redis:
image: redis:alpine
+2
View File
@@ -0,0 +1,2 @@
# flod as main contact for string changes
public/locales/en-US/*.ftl @flodolo
+32 -7
View File
@@ -1,10 +1,35 @@
Environment Variables:
## Setup
PORT - port the server will listen on (defaults to 1443)
P2P_S3_BUCKET - the S3 bucket name
P2P_REDIS_HOST - host name of the redis server
NODE_ENV - production
Before building the Docker image, you must build the production assets:
Example
```sh
npm run build
```
docker run --net=host -e 'NODE_ENV=production' -e 'P2P_S3_BUCKET=testpilot-p2p-dev' -e 'P2P_REDIS_HOST=dyf9s2r4vo3.bolxr4.0001.usw2.cache.amazonaws.com' mozilla/portal:latest
Then you can run either `docker build` or `docker-compose up`.
## Environment variables:
| Name | Description
|------------------|-------------|
| `PORT` | Port the server will listen on (defaults to 1443).
| `S3_BUCKET` | The S3 bucket name.
| `REDIS_HOST` | Host name of the Redis server.
| `GOOGLE_ANALYTICS_ID` | Google Analytics ID
| `SENTRY_CLIENT` | Sentry Client ID
| `SENTRY_DSN` | Sentry DSN
| `MAX_FILE_SIZE` | in bytes (defaults to 2147483648)
| `NODE_ENV` | "production"
## Example:
```sh
$ docker run --net=host -e 'NODE_ENV=production' \
-e 'S3_BUCKET=testpilot-p2p-dev' \
-e 'REDIS_HOST=dyf9s2r4vo3.bolxr4.0001.usw2.cache.amazonaws.com' \
-e 'GOOGLE_ANALYTICS_ID=UA-35433268-78' \
-e 'SENTRY_CLIENT=https://51e23d7263e348a7a3b90a5357c61cb2@sentry.prod.mozaws.net/168' \
-e 'SENTRY_DSN=https://51e23d7263e348a7a3b90a5357c61cb2:65e23d7263e348a7a3b90a5357c61c44@sentry.prod.mozaws.net/168' \
mozilla/send:latest
```
+43
View File
@@ -0,0 +1,43 @@
## How big of a file can I transfer with Firefox Send?
There is a 2GB file size limit built in to Send, however, in practice you may
be unable to send files that large. Send encrypts and decrypts the files in
the browser which is great for security but will tax your system resources. In
particular you can expect to see your memory usage go up by at least the size
of the file when the transfer is processing. You can see [the results of some
testing](https://github.com/mozilla/send/issues/170#issuecomment-314107793).
For the most reliable operation on common computers, its probably best to stay
under a few hundred megabytes.
## Why is my browser not supported?
Were using the [Web Cryptography JavaScript API with the AES-GCM
algorithm](https://www.w3.org/TR/WebCryptoAPI/#aes-gcm) for our encryption.
Many browsers support this standard and should work fine, but some have not
implemented it yet (mobile browsers lag behind on this, in
particular).
## Why does Firefox Send require JavaScript?
Firefox Send uses JavaScript to:
- Encrypt and decrypt files locally on the client instead of the server.
- Render the user interface.
- Manage translations on the website into [various different languages](https://github.com/mozilla/send#localization).
- Collect data to help us improve Send in accordance with our [Terms & Privacy](https://send.firefox.com/legal).
Since Send is an open source project, you can see all of the cool ways we use JavaScript by [examining our code](https://github.com/mozilla/send/).
## How long are files available for?
Files are available to be downloaded for 24 hours, after which they are removed
from the server. They are also removed immediately after a download completes.
## Can a file be downloaded more than once?
Not currently, but we're considering multiple download support in a future
release.
*Disclaimer: Send is an experiment and under active development. The answers
here may change as we get feedback from you and the project matures.*
+144
View File
@@ -0,0 +1,144 @@
# Send Metrics
The metrics collection and analysis plan for Send, a forthcoming Test Pilot experiment.
## Analysis
Data collected by Send will be used to answer the following high-level questions:
- Do users send files?
- How often? How many?
- What is the retention?
- What is the distribution of senders?
- How do recipients interact with promotional UI elements?
- Are file recipients converted to file senders?
- Are non-Firefox users converted to Firefox users?
- Where does it go wrong?
- How often are there errors in uploading or downloading files?
- What types of errors to users commonly see?
- At what point do errors affect retention?
## Collection
Data will be collected with Google Analytics and follow [Test Pilot standards](https://github.com/mozilla/testpilot/blob/master/docs/experiments/ga.md) for reporting.
### Custom Metrics
- `cm1` - the size of the file, in bytes.
- `cm2` - the amount of time it took to complete the file transfer, in milliseconds. Only include if the file completed transferring (ref: `cd2`).
- `cm3` - the rate of the file transfer, in bytes per second. This is computed by dividing `cm1` by `cm2`, not by monitoring transfer speeds. Only include if the file completed transferring (ref: `cd2`).
- `cm4` - the amount of time until the file will expire, in milliseconds.
- `cm5` - the number of files the user has ever uploaded.
- `cm6` - the number of unexpired files the user has uploaded.
- `cm7` - the number of files the user has ever downloaded.
### Custom Dimensions
- `cd1` - the method by which the user initiated an upload. One of `drag`, `click`.
- `cd2` - the reason that the file transfer stopped. One of `completed`, `errored`, `cancelled`.
- `cd3` - the destination of a link click. One of `experiment-page`, `download-firefox`, `twitter`, `github`, `cookies`, `terms`, `privacy`, `about`, `legal`, `mozilla`.
- `cd4` - the location from which the user copied the URL to an upload file. One of `success-screen`, `upload-list`.
- `cd5` - the referring location. One of `completed-download`, `errored-download`, `cancelled-download`, `completed-upload`, `errored-upload`, `cancelled-upload`, `testpilot`, `external`.
- `cd6` - identifying information about an error. Exclude if there is no error involved. **TODO:** enumerate a list of possibilities.
### Events
_NB:_ due to how files are being tracked, there are no events indicating file expiry. This carries some risk: most notably, we can only derive expiration rates by looking at download rates, which is prone to skew if there are problems in data collection.
#### `upload-started`
Triggered whenever a user begins uploading a file. Includes:
- `ec` - `sender`
- `ea` - `upload-started`
- `cm1`
- `cm5`
- `cm6`
- `cm7`
- `cd1`
- `cd5`
#### `upload-stopped`
Triggered whenever a user stops uploading a file. Includes:
- `ec` - `sender`
- `ea` - `upload-stopped`
- `cm1`
- `cm2`
- `cm3`
- `cm5`
- `cm6`
- `cm7`
- `cd1`
- `cd2`
- `cd6`
#### `password-added`
Triggered whenever a password is added to a file. Includes:
- `cm1`
- `cm5`
- `cm6`
- `cm7`
#### `download-started`
Triggered whenever a user begins downloading a file. Includes:
- `ec` - `recipient`
- `ea` - `download-started`
- `cm1`
- `cm4`
- `cm5`
- `cm6`
- `cm7`
#### `download-stopped`
Triggered whenever a user stops downloading a file.
- `ec` - `recipient`
- `ea` - `download-stopped`
- `cm1`
- `cm2` (if possible and applicable)
- `cm3` (if possible and applicable)
- `cm5`
- `cm6`
- `cm7`
- `cd2`
- `cd6`
#### `exited`
Fired whenever a user follows a link external to Send.
- `ec` - `recipient`, `sender`, or `other`, as applicable.
- `ea` - `exited`
- `cd3`
#### `upload-deleted`
Fired whenever a user deletes a file theyve uploaded.
- `ec` - `sender`
- `ea` - `upload-deleted`
- `cm1`
- `cm2`
- `cm3`
- `cm4`
- `cm5`
- `cm6`
- `cm7`
- `cd1`
- `cd4`
#### `copied`
Fired whenever a user copies the URL of an upload file.
- `ec` - `sender`
- `ea` - `copied`
- `cd4`
#### `restarted`
Fired whenever the user interrupts any part of funnel to return to the start of it (e.g. with a “send another file” or “send your own files” link).
- `ec` - `recipient`, `sender`, or `other`, as applicable.
- `ea` - `restarted`
- `cd2`
#### `unsupported`
Fired whenever a user is presented a message saying that their browser is unsupported due to missing crypto APIs.
- `ec` - `recipient` or `sender`, as applicable.
- `ea` - `unsupported`
- `cd6`
-3
View File
@@ -1,3 +0,0 @@
env:
browser: true
jquery: true
-72
View File
@@ -1,72 +0,0 @@
const FileReceiver = require('./fileReceiver');
const { notify } = require('./utils');
const $ = require('jquery');
const Raven = window.Raven;
$(document).ready(function() {
$('#download-progress').hide();
$('#send-file').click(() => {
window.location.replace(`${window.location.origin}`);
});
const download = () => {
const fileReceiver = new FileReceiver();
const name = document.createElement('p');
const $btn = $('#download-btn');
fileReceiver.on('progress', percentComplete => {
$('#download-page-one').hide();
$('.send-new').hide();
$('#download-progress').show();
// update progress bar
document
.querySelector('#progress-bar')
.style.setProperty('--progress', percentComplete + '%');
$('#progress-text').html(`${percentComplete}%`);
//on complete
if (percentComplete === 100) {
fileReceiver.removeAllListeners('progress');
$('#download-text').html('Download complete!');
$('.send-new').show();
$btn.text('Download complete!');
$btn.attr('disabled', 'true');
notify('Your download has finished.');
}
});
fileReceiver
.download()
.catch(() => {
$('.title').text(
'This link has expired or never existed in the first place.'
);
$('#download-btn').hide();
$('#expired-img').show();
console.log('The file has expired, or has already been deleted.');
return;
})
.then(([decrypted, fname]) => {
name.innerText = fname;
const dataView = new DataView(decrypted);
const blob = new Blob([dataView]);
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = downloadUrl;
if (window.navigator.msSaveBlob) {
// if we are in microsoft edge or IE
window.navigator.msSaveBlob(blob, fname);
return;
}
a.download = fname;
document.body.appendChild(a);
a.click();
})
.catch(err => {
Raven.captureException(err);
return Promise.reject(err);
});
};
window.download = download;
});
-90
View File
@@ -1,90 +0,0 @@
const EventEmitter = require('events');
const { strToIv } = require('./utils');
const Raven = window.Raven;
class FileReceiver extends EventEmitter {
constructor() {
super();
this.salt = strToIv(location.pathname.slice(10, -1));
}
download() {
return Promise.all([
new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onprogress = event => {
if (event.lengthComputable) {
const percentComplete = Math.floor(
event.loaded / event.total * 100
);
this.emit('progress', percentComplete);
}
};
xhr.onload = function(event) {
if (xhr.status === 404) {
reject(
new Error('The file has expired, or has already been deleted.')
);
return;
}
const blob = new Blob([this.response]);
const fileReader = new FileReader();
fileReader.onload = function() {
resolve({
data: this.result,
fname: xhr
.getResponseHeader('Content-Disposition')
.match(/=(.+)/)[1]
});
};
fileReader.readAsArrayBuffer(blob);
};
xhr.open('get', '/assets' + location.pathname.slice(0, -1), true);
xhr.responseType = 'blob';
xhr.send();
}),
window.crypto.subtle.importKey(
'jwk',
{
kty: 'oct',
k: location.hash.slice(1),
alg: 'A128CBC',
ext: true
},
{
name: 'AES-CBC'
},
true,
['encrypt', 'decrypt']
)
])
.then(([fdata, key]) => {
const salt = this.salt;
return Promise.all([
window.crypto.subtle.decrypt(
{
name: 'AES-CBC',
iv: salt
},
key,
fdata.data
),
new Promise((resolve, reject) => {
resolve(fdata.fname);
})
]);
})
.catch(err => {
Raven.captureException(err);
return Promise.reject(err);
});
}
}
module.exports = FileReceiver;
-112
View File
@@ -1,112 +0,0 @@
const EventEmitter = require('events');
const { ivToStr } = require('./utils');
const Raven = window.Raven;
class FileSender extends EventEmitter {
constructor(file) {
super();
this.file = file;
this.iv = window.crypto.getRandomValues(new Uint8Array(16));
}
static delete(fileId, token) {
return new Promise((resolve, reject) => {
if (!fileId || !token) {
return reject();
}
const xhr = new XMLHttpRequest();
xhr.open('post', '/delete/' + fileId, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
resolve();
}
if (xhr.status === 200) {
console.log('The file was successfully deleted.');
} else {
console.log('The file has expired, or has already been deleted.');
}
};
xhr.send(JSON.stringify({ delete_token: token }));
});
}
upload() {
return Promise.all([
window.crypto.subtle.generateKey(
{
name: 'AES-CBC',
length: 128
},
true,
['encrypt', 'decrypt']
),
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsArrayBuffer(this.file);
reader.onload = function(event) {
resolve(new Uint8Array(this.result));
};
})
])
.then(([secretKey, plaintext]) => {
return Promise.all([
window.crypto.subtle.encrypt(
{
name: 'AES-CBC',
iv: this.iv
},
secretKey,
plaintext
),
window.crypto.subtle.exportKey('jwk', secretKey)
]);
})
.then(([encrypted, keydata]) => {
return new Promise((resolve, reject) => {
const file = this.file;
const fileId = ivToStr(this.iv);
const dataView = new DataView(encrypted);
const blob = new Blob([dataView], { type: file.type });
const fd = new FormData();
fd.append('fname', file.name);
fd.append('data', blob, file.name);
const xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', e => {
if (e.lengthComputable) {
const percentComplete = Math.floor(e.loaded / e.total * 100);
this.emit('progress', percentComplete);
}
});
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
// uuid field and url field
const responseObj = JSON.parse(xhr.responseText);
resolve({
url: responseObj.url,
fileId: fileId,
secretKey: keydata.k,
deleteToken: responseObj.uuid
});
}
};
xhr.open('post', '/upload/' + fileId, true);
xhr.send(fd);
});
})
.catch(err => {
Raven.captureException(err);
return Promise.reject(err);
});
}
}
module.exports = FileSender;
-5
View File
@@ -1,5 +0,0 @@
window.Raven = require('raven-js');
window.Raven.config(window.dsn).install();
window.dsn = undefined;
require('./upload');
require('./download');
-162
View File
@@ -1,162 +0,0 @@
const FileSender = require('./fileSender');
const { notify } = require('./utils');
const $ = require('jquery');
$(document).ready(function() {
// reset copy button
const $copyBtn = $('#copy-btn');
$copyBtn.attr('disabled', false);
$copyBtn.html('Copy');
$('#page-one').show();
$('#file-list').show();
$('#upload-progress').hide();
$('#share-link').hide();
for (let i = 0; i < localStorage.length; i++) {
const id = localStorage.key(i);
populateFileList(localStorage.getItem(id));
}
// copy link to clipboard
$copyBtn.click(() => {
const aux = document.createElement('input');
aux.setAttribute('value', $('#link').attr('value'));
document.body.appendChild(aux);
aux.select();
document.execCommand('copy');
document.body.removeChild(aux);
//disable button for 3s
$copyBtn.attr('disabled', true);
$copyBtn.html('Copied!');
window.setTimeout(() => {
$copyBtn.attr('disabled', false);
$copyBtn.html('Copy');
}, 3000);
});
// link back to home page
$('.send-new').click(() => {
$('#page-one').show();
$('#file-list').show();
$('#upload-progress').hide();
$('#share-link').hide();
$copyBtn.attr('disabled', false);
$copyBtn.html('Copy');
});
// on file upload by browse or drag & drop
window.onUpload = event => {
event.preventDefault();
let file = '';
if (event.type === 'drop') {
file = event.dataTransfer.files[0];
} else {
file = event.target.files[0];
}
const fileSender = new FileSender(file);
fileSender.on('progress', percentComplete => {
$('#page-one').hide();
$('#file-list').hide();
$('#upload-progress').show();
$('#upload-filename').innerHTML += file.name;
// update progress bar
document
.querySelector('#progress-bar')
.style.setProperty('--progress', percentComplete + '%');
$('#progress-text').html(`${percentComplete}%`);
});
fileSender.upload().then(info => {
const url = info.url.trim() + `#${info.secretKey}`.trim();
$('#link').attr('value', url);
const fileData = {
name: file.name,
fileId: info.fileId,
url: info.url,
secretKey: info.secretKey,
deleteToken: info.deleteToken
};
localStorage.setItem(info.fileId, JSON.stringify(fileData));
$('#page-one').hide();
$('#file-list').hide();
$('#upload-progress').hide();
$('#share-link').show();
populateFileList(JSON.stringify(fileData));
notify('Your upload has finished.');
});
};
window.allowDrop = function(ev) {
ev.preventDefault();
};
//update file table with current files in localStorage
function populateFileList(file) {
try {
file = JSON.parse(file);
} catch (e) {
return;
}
const row = document.createElement('tr');
const name = document.createElement('td');
const link = document.createElement('td');
const expiry = document.createElement('td');
const del = document.createElement('td');
del.setAttribute('align', 'center');
const btn = document.createElement('button');
const popupDiv = document.createElement('div');
const $popupText = $('<span>', { class: 'popuptext' });
const cellText = document.createTextNode(file.name);
name.appendChild(cellText);
// create delete button
btn.innerHTML = 'x';
btn.classList.add('delete-btn');
link.innerHTML = file.url.trim() + `#${file.secretKey}`.trim();
// create popup
popupDiv.classList.add('popup');
$popupText.html(
'<span class="del-file">Delete</span><span class="nvm" > Nevermind</span>'
);
// delete file
$popupText.find('.del-file').click(e => {
FileSender.delete(file.fileId, file.deleteToken).then(() => {
$(e.target).parents('tr').remove();
localStorage.removeItem(file.fileId);
});
});
// add data cells to table row
row.appendChild(name);
row.appendChild(link);
row.appendChild(expiry);
popupDiv.appendChild(btn);
$(popupDiv).append($popupText);
del.appendChild(popupDiv);
row.appendChild(del);
// show popup
del.addEventListener('click', toggleShow);
// hide popup
$popupText.find('.nvm').click(function(e) {
e.stopPropagation();
toggleShow();
});
$popupText.click(function(e) {
e.stopPropagation();
});
$('tbody').append(row); //add row to table
function toggleShow() {
$popupText.toggleClass('show');
}
}
});
-39
View File
@@ -1,39 +0,0 @@
function ivToStr(iv) {
let hexStr = '';
for (const i in iv) {
if (iv[i] < 16) {
hexStr += '0' + iv[i].toString(16);
} else {
hexStr += iv[i].toString(16);
}
}
window.hexStr = hexStr;
return hexStr;
}
function strToIv(str) {
const iv = new Uint8Array(16);
for (let i = 0; i < str.length; i += 2) {
iv[i / 2] = parseInt(str.charAt(i) + str.charAt(i + 1), 16);
}
return iv;
}
function notify(str) {
if (!('Notification' in window)) {
return;
} else if (Notification.permission === 'granted') {
new Notification(str);
} else if (Notification.permission !== 'denied') {
Notification.requestPermission(function(permission) {
if (permission === 'granted') new Notification(str);
});
}
}
module.exports = {
ivToStr,
strToIv,
notify
};
+12
View File
@@ -0,0 +1,12 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
basepath = "."
[env]
l = "{l10n_base}/public/locales/{locale}/"
[[paths]]
reference = "public/locales/en-US/**"
l10n = "{l}**"
+9411 -1472
View File
File diff suppressed because it is too large Load Diff
+149 -48
View File
@@ -1,56 +1,157 @@
{
"name": "portal-alpha",
"name": "firefox-send",
"description": "File Sharing Experiment",
"version": "0.1.0",
"version": "2.0.0",
"author": "Mozilla (https://mozilla.org)",
"dependencies": {
"aws-sdk": "^2.62.0",
"body-parser": "^1.17.2",
"bytes": "^2.5.0",
"connect-busboy": "0.0.2",
"convict": "^3.0.0",
"cross-env": "^5.0.1",
"express": "^4.15.3",
"express-handlebars": "^3.0.0",
"helmet": "^3.6.1",
"jquery": "^3.2.1",
"mozlog": "^2.1.1",
"raven": "^2.1.0",
"raven-js": "^3.16.0",
"redis": "^2.7.1",
"uglify-es": "3.0.19"
"repository": "mozilla/send",
"homepage": "https://github.com/mozilla/send/",
"license": "MPL-2.0",
"private": true,
"scripts": {
"precommit": "lint-staged",
"clean": "rimraf dist",
"build": "npm run clean && webpack -p",
"lint": "npm-run-all lint:*",
"lint:css": "stylelint 'assets/*.css'",
"lint:js": "eslint .",
"lint-locales": "node scripts/lint-locales",
"lint-locales:dev": "npm run lint-locales",
"lint-locales:prod": "npm run lint-locales -- --production",
"format": "prettier '**/*.js' 'assets/*.css' --single-quote --write",
"get-prod-locales": "node scripts/get-prod-locales",
"get-prod-locales:write": "npm run get-prod-locales -- --write",
"changelog": "github-changes -o mozilla -r send --only-pulls --use-commit-body --no-merges",
"contributors": "git shortlog -s | awk -F\\t '{print $2}' > CONTRIBUTORS",
"release": "npm-run-all contributors changelog",
"test": "mocha test/unit",
"start": "cross-env NODE_ENV=development webpack-dev-server",
"prod": "node server/prod.js"
},
"devDependencies": {
"browserify": "^14.4.0",
"eslint": "^4.0.0",
"eslint-plugin-mocha": "^4.11.0",
"eslint-plugin-node": "^5.0.0",
"eslint-plugin-security": "^1.4.0",
"git-rev-sync": "^1.9.1",
"mocha": "^3.4.2",
"npm-run-all": "^4.0.2",
"prettier": "^1.4.4",
"proxyquire": "^1.8.0",
"sinon": "^2.3.5",
"stylelint": "^7.11.0",
"stylelint-config-standard": "^16.0.0",
"watchify": "^3.9.0"
"lint-staged": {
"*.js": [
"prettier --single-quote --write",
"eslint",
"git add"
],
"*.css": [
"prettier --single-quote --write",
"stylelint",
"git add"
]
},
"engines": {
"node": ">=8.0.0"
"node": ">=8.2.0"
},
"homepage": "https://github.com/mozilla/something-awesome/",
"license": "MPL-2.0",
"repository": "mozilla/something-awesome",
"scripts": {
"predocker": "browserify frontend/src/main.js | uglifyjs > public/bundle.js && npm run version",
"dev": "npm run version && watchify frontend/src/main.js -o public/bundle.js -d | node server/portal_server",
"format": "prettier '{frontend/src/,scripts/,server/,test/}*.js' 'public/*.css' --single-quote --write",
"lint": "npm-run-all lint:*",
"lint:css": "stylelint 'public/*.css'",
"lint:js": "eslint .",
"start": "cross-env NODE_ENV=production node server/portal_server",
"test": "mocha",
"version": "node scripts/version"
}
"devDependencies": {
"autoprefixer": "^7.1.6",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-plugin-yo-yoify": "^1.0.1",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"base64-js": "^1.2.1",
"copy-webpack-plugin": "^4.2.0",
"cross-env": "^5.1.1",
"css-loader": "^0.28.7",
"css-mqpacker": "^6.0.1",
"cssnano": "^3.10.0",
"eslint": "^4.10.0",
"eslint-plugin-mocha": "^4.11.0",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-security": "^1.4.0",
"expose-loader": "^0.7.3",
"extract-loader": "^1.0.1",
"file-loader": "^1.1.5",
"git-rev-sync": "^1.9.1",
"github-changes": "^1.1.1",
"html-loader": "^0.5.1",
"husky": "^0.14.3",
"lint-staged": "^4.3.0",
"mocha": "^3.5.3",
"nanobus": "^4.3.0",
"npm-run-all": "^4.1.2",
"postcss-loader": "^2.0.8",
"prettier": "^1.8.2",
"proxyquire": "^1.8.0",
"raven-js": "^3.19.1",
"redis-mock": "^0.20.0",
"require-from-string": "^2.0.1",
"rimraf": "^2.6.2",
"selenium-webdriver": "^3.6.0",
"sinon": "^4.1.2",
"string-hash": "^1.1.3",
"stylelint-config-standard": "^17.0.0",
"stylelint-no-unsupported-browser-features": "^1.0.1",
"supertest": "^3.0.0",
"testpilot-ga": "^0.3.0",
"val-loader": "^1.0.2",
"webpack": "^3.8.1",
"webpack-dev-server": "2.9.1",
"webpack-manifest-plugin": "^1.3.2",
"webpack-unassert-loader": "^1.2.0"
},
"dependencies": {
"aws-sdk": "^2.149.0",
"body-parser": "^1.18.2",
"choo": "^6.5.1",
"cldr-core": "^32.0.0",
"connect-busboy": "0.0.2",
"convict": "^4.0.1",
"express": "^4.16.2",
"fluent": "^0.4.1",
"fluent-langneg": "^0.1.0",
"helmet": "^3.9.0",
"mkdirp": "^0.5.1",
"mozlog": "^2.1.1",
"raven": "^2.2.1",
"redis": "^2.8.0"
},
"availableLanguages": [
"en-US",
"ast",
"az",
"bs",
"ca",
"cak",
"cs",
"cy",
"de",
"dsb",
"el",
"es-AR",
"es-CL",
"es-ES",
"es-MX",
"et",
"fa",
"fr",
"fy-NL",
"hsb",
"hu",
"id",
"it",
"ja",
"ka",
"kab",
"ko",
"ms",
"nb-NO",
"nl",
"nn-NO",
"pt-BR",
"pt-PT",
"ru",
"sk",
"sl",
"sr",
"sv-SE",
"tl",
"tr",
"uk",
"vi",
"zh-CN",
"zh-TW"
]
}
+15
View File
@@ -0,0 +1,15 @@
const autoprefixer = require('autoprefixer');
const cssnano = require('cssnano');
const mqpacker = require('css-mqpacker');
const config = require('./server/config');
const options = {
plugins: [autoprefixer, mqpacker, cssnano]
};
if (config.env === 'development') {
options.map = { inline: true };
}
module.exports = options;

Some files were not shown because too many files have changed in this diff Show More