From c4d9ddfaf1f5d0585c79f68f5e508110e65ced07 Mon Sep 17 00:00:00 2001 From: Ian Bicking <ianb@colorstudy.com> Date: Mon, 5 Jun 2017 17:11:19 -0500 Subject: [PATCH] Bug 1370383 - Export Screenshots 9.0.0 to Firefox; r=standard8 --HG-- extra : rebase_source : ac3c11c0383ab7cac3417b8d218d931d8f592e1b --- browser/extensions/screenshots/install.rdf | 2 +- browser/extensions/screenshots/moz.build | 4 + .../webextension/_locales/ar/messages.json | 123 ++++++++++++++++++ .../webextension/_locales/de/messages.json | 3 + .../webextension/_locales/dsb/messages.json | 3 + .../webextension/_locales/en_US/messages.json | 3 + .../webextension/_locales/es_MX/messages.json | 3 + .../webextension/_locales/fr/messages.json | 3 + .../webextension/_locales/hsb/messages.json | 3 + .../webextension/_locales/hu/messages.json | 3 + .../webextension/_locales/it/messages.json | 3 + .../webextension/_locales/ja/messages.json | 3 + .../webextension/_locales/pt_BR/messages.json | 4 +- .../webextension/_locales/sk/messages.json | 3 + .../webextension/_locales/sl/messages.json | 3 + .../webextension/_locales/sr/messages.json | 5 +- .../webextension/_locales/sv_SE/messages.json | 3 + .../webextension/_locales/te/messages.json | 9 ++ .../webextension/_locales/uk/messages.json | 3 + .../webextension/background/auth.js | 52 ++++---- .../webextension/background/senderror.js | 9 +- .../webextension/build/buildSettings.js | 5 +- .../webextension/build/inlineSelectionCss.js | 3 + .../screenshots/webextension/build/shot.js | 3 + .../screenshots/webextension/manifest.json | 4 +- .../webextension/onboarding/slides.js | 2 + .../webextension/selector/shooter.js | 17 ++- .../screenshots/webextension/selector/ui.js | 8 ++ .../webextension/selector/uicontrol.js | 18 ++- 29 files changed, 265 insertions(+), 42 deletions(-) create mode 100644 browser/extensions/screenshots/webextension/_locales/ar/messages.json diff --git a/browser/extensions/screenshots/install.rdf b/browser/extensions/screenshots/install.rdf index a2102bbb870b9..d2a3d5c5c709c 100644 --- a/browser/extensions/screenshots/install.rdf +++ b/browser/extensions/screenshots/install.rdf @@ -12,7 +12,7 @@ </Description> </em:targetApplication> <em:type>2</em:type> - <em:version>8.1.0</em:version> + <em:version>9.0.0</em:version> <em:bootstrap>true</em:bootstrap> <em:homepageURL>https://pageshot.net/</em:homepageURL> <em:multiprocessCompatible>true</em:multiprocessCompatible> diff --git a/browser/extensions/screenshots/moz.build b/browser/extensions/screenshots/moz.build index 32560b7506dd2..a31c5ea01c73e 100644 --- a/browser/extensions/screenshots/moz.build +++ b/browser/extensions/screenshots/moz.build @@ -28,6 +28,10 @@ FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales 'webextension/_locales/ach/messages.json' ] +FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["ar"] += [ + 'webextension/_locales/ar/messages.json' +] + FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["az"] += [ 'webextension/_locales/az/messages.json' ] diff --git a/browser/extensions/screenshots/webextension/_locales/ar/messages.json b/browser/extensions/screenshots/webextension/_locales/ar/messages.json new file mode 100644 index 0000000000000..d2fabc28ac7fb --- /dev/null +++ b/browser/extensions/screenshots/webextension/_locales/ar/messages.json @@ -0,0 +1,123 @@ +{ + "addonDescription": { + "message": "خذ مقاطع و لقطات من الوب و اØÙظهم مؤقتًا أو دائمًا." + }, + "addonAuthorsList": { + "message": "موزيلا <screenshots-feedback@mozilla.com>" + }, + "contextMenuLabel": { + "message": "خذ لقطة شاشة" + }, + "myShotsLink": { + "message": "لقطاتي" + }, + "screenshotInstructions": { + "message": "اسØب أو انقر ÙÙŠ الصÙØØ© لاختيار منطقة. اضغط ESC للإلغاء." + }, + "saveScreenshotSelectedArea": { + "message": "اØÙظ" + }, + "saveScreenshotVisibleArea": { + "message": "اØÙظ الجزء المرئي" + }, + "saveScreenshotFullPage": { + "message": "اØÙظ كل الصÙØØ©" + }, + "cancelScreenshot": { + "message": "ألغÙ" + }, + "downloadScreenshot": { + "message": "نزّل" + }, + "notificationLinkCopiedTitle": { + "message": "Ù†Ùسخ الرابط" + }, + "notificationLinkCopiedDetails": { + "message": "Ù†ÙسÙخَ رابط اللقطة إلى الØاÙظة. اضغط $META_KEY$-V للصقها.", + "placeholders": { + "meta_key": { + "content": "$1" + } + } + }, + "requestErrorTitle": { + "message": "خارج الخدمة." + }, + "requestErrorDetails": { + "message": "تعذّر ØÙظ لقطتك. رجاء أعد المØاولة Ùيما بعد." + }, + "connectionErrorTitle": { + "message": "تعذّر الاتصال بلقطات شاشتك." + }, + "connectionErrorDetails": { + "message": "رجاء ÙØص اتصال الإنترنت. إذا كان باستطاعتك الاتصال بالإنترنت، Ùربما هناك عطل مؤقت ÙÙŠ خدمة «لقطات شاشة ÙَيَرÙÙكس»." + }, + "loginErrorDetails": { + "message": "تعذّر ØÙظ لقطتك لعÙطل ÙÙŠ خدمة «لقطات شاشة ÙَيَرÙÙكس». رجاء إعادة المØاولة لاØقًا." + }, + "unshootablePageErrorTitle": { + "message": "تعذّر أخذ لقطة شاشة لهذه الصÙØØ©." + }, + "unshootablePageErrorDetails": { + "message": "ليست هذه صÙØØ© ÙˆÙب قياسية، لذا لا يمكنك أخذ لقطة لها." + }, + "selfScreenshotErrorTitle": { + "message": "لا يمكننا أخذ لقطة لصÙØØ© من صÙØات «لقطات شاشة ÙَيَرÙÙكس»!" + }, + "genericErrorTitle": { + "message": "هناك عطل ÙÙŠ «لقطات شاشة ÙَيَرÙÙكس»." + }, + "genericErrorDetails": { + "message": "لسنا متأكدين ما المشكلة. أتمانع إعادة المØاولة أو أخذ لقطة لصÙØØ© أخرى؟" + }, + "tourBodyOne": { + "message": "خذ لقطات الشاشة و اØÙظها و شارطها دون مغادرة ÙَيَرÙÙكس." + }, + "tourHeaderTwo": { + "message": "التقط ما تريده Ùقط" + }, + "tourBodyTwo": { + "message": "انقر و اسØب لالتقاط جزء معين من الصÙØØ©. يمكنك أيضًا التØويم لإبراز التØديد." + }, + "tourHeaderThree": { + "message": "كما تريدها" + }, + "tourBodyThree": { + "message": "اØÙظ اللقطات التي أخذتها على الوب لمشاركتها بسهولة، أو نزّلها على Øاسوبك. يمكنك أيضًل النقر على زر â€Ù„قطاتي“ للعثور على كل اللقطات التي أخذتها." + }, + "tourHeaderFour": { + "message": "التقط النواÙØ° أو صÙØات كاملة" + }, + "tourBodyFour": { + "message": "اختر الأزرار ÙÙŠ أعلى اليمين لالتقاط المنطقة المرئية ÙÙŠ الناÙذة أو الصÙØØ© كلها." + }, + "tourSkip": { + "message": "تخطَّ" + }, + "tourNext": { + "message": "الشريØØ© التالية" + }, + "tourPrevious": { + "message": "الشريØØ© السابقة" + }, + "tourDone": { + "message": "تمّ" + }, + "termsAndPrivacyNoticeCloudServices": { + "message": "استخدامك لخدمات «لقطات شاشة ÙَيَرÙÙكس» يعني مواÙقتك على $TERMSANDPRIVACYNOTICETERMSLINK$ و $TERMSANDPRIVACYNOTICEPRIVACYLINK$.", + "placeholders": { + "termsandprivacynoticetermslink": { + "content": "$1" + }, + "termsandprivacynoticeprivacylink": { + "content": "$2" + } + } + }, + "termsAndPrivacyNoticeTermsLink": { + "message": "الشروط" + }, + "termsAndPrivacyNoticyPrivacyLink": { + "message": "تنويه الخصوصية" + } +} \ No newline at end of file diff --git a/browser/extensions/screenshots/webextension/_locales/de/messages.json b/browser/extensions/screenshots/webextension/_locales/de/messages.json index c71d73fc8443a..34c57e3ff5ecd 100644 --- a/browser/extensions/screenshots/webextension/_locales/de/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/de/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Sie können kein Bildschirmfoto einer Firefox-Screenshots-Seite machen!" }, + "emptySelectionErrorTitle": { + "message": "Ihr Auswahlbereich ist zu klein" + }, "genericErrorTitle": { "message": "Firefox Screenshots funktioniert nicht richtig." }, diff --git a/browser/extensions/screenshots/webextension/_locales/dsb/messages.json b/browser/extensions/screenshots/webextension/_locales/dsb/messages.json index 151719f291147..ea306cba5fd8b 100644 --- a/browser/extensions/screenshots/webextension/_locales/dsb/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/dsb/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "NjamóžoÅ›o wobrazowku boka Firefox Screenshots fotografÄ›rowaÅ›!" }, + "emptySelectionErrorTitle": { + "message": "WaÅ¡ wubÄ›rk jo pÅ›emaÅ‚y" + }, "genericErrorTitle": { "message": "Hopla! Firefox Screenshots njeźěła." }, diff --git a/browser/extensions/screenshots/webextension/_locales/en_US/messages.json b/browser/extensions/screenshots/webextension/_locales/en_US/messages.json index 6202f89a9a578..2d233e959980c 100644 --- a/browser/extensions/screenshots/webextension/_locales/en_US/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/en_US/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "You can’t take a shot of a Firefox Screenshots page!" }, + "emptySelectionErrorTitle": { + "message": "Your selection is too small" + }, "genericErrorTitle": { "message": "Whoa! Firefox Screenshots went haywire." }, diff --git a/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json b/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json index d2a5891f80b3b..4cd41ceb4d125 100644 --- a/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "¡No puedes tomar una captura de la página de capturas de pantalla de Firefox!" }, + "emptySelectionErrorTitle": { + "message": "Tu selección es demasiado pequeña" + }, "genericErrorTitle": { "message": "¡Oye! Las capturas de pantalla de Firefox salieron mal." }, diff --git a/browser/extensions/screenshots/webextension/_locales/fr/messages.json b/browser/extensions/screenshots/webextension/_locales/fr/messages.json index 6eef6f70ef7a4..44c9fa59bcef8 100644 --- a/browser/extensions/screenshots/webextension/_locales/fr/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/fr/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Vous ne pouvez pas effectuer une capture d’écran d’une page Firefox Screenshots." }, + "emptySelectionErrorTitle": { + "message": "La zone sélectionnée est trop petite" + }, "genericErrorTitle": { "message": "Firefox Screenshots semble avoir un problème." }, diff --git a/browser/extensions/screenshots/webextension/_locales/hsb/messages.json b/browser/extensions/screenshots/webextension/_locales/hsb/messages.json index 174a1112c3002..79016c62b0961 100644 --- a/browser/extensions/screenshots/webextension/_locales/hsb/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/hsb/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Njemóžeće wobrazowku strony Firefox Screenshots fotografować!" }, + "emptySelectionErrorTitle": { + "message": "WaÅ¡ wubÄ›r je pÅ™emaÅ‚y" + }, "genericErrorTitle": { "message": "Hopla! Firefox Screenshots njefunguje." }, diff --git a/browser/extensions/screenshots/webextension/_locales/hu/messages.json b/browser/extensions/screenshots/webextension/_locales/hu/messages.json index 935252a58b0f3..dce33ef671688 100644 --- a/browser/extensions/screenshots/webextension/_locales/hu/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/hu/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Nem készÃthet képet a Firefox képernyÅ‘képek oldalról!" }, + "emptySelectionErrorTitle": { + "message": "A kijelölés túl kicsi" + }, "genericErrorTitle": { "message": "Húha! A Firefox képernyÅ‘képek megkergült." }, diff --git a/browser/extensions/screenshots/webextension/_locales/it/messages.json b/browser/extensions/screenshots/webextension/_locales/it/messages.json index 4b7e802add777..72550f8a2afe9 100644 --- a/browser/extensions/screenshots/webextension/_locales/it/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/it/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Non è possibile salvare uno screenshot di una pagina di Firefox Screenshots" }, + "emptySelectionErrorTitle": { + "message": "L’area selezionata è troppo piccola" + }, "genericErrorTitle": { "message": "Wow! Firefox Screenshots è andato in tilt" }, diff --git a/browser/extensions/screenshots/webextension/_locales/ja/messages.json b/browser/extensions/screenshots/webextension/_locales/ja/messages.json index ae78e2d6a3f5e..b85cbb71eac6b 100644 --- a/browser/extensions/screenshots/webextension/_locales/ja/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/ja/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Firefox Screenshots ページã®ã‚·ãƒ§ãƒƒãƒˆã¯æ’®ã‚Œã¾ã›ã‚“。" }, + "emptySelectionErrorTitle": { + "message": "é¸æŠžç¯„囲ãŒå°ã•ã™ãŽã¾ã™" + }, "genericErrorTitle": { "message": "Firefox Screenshots ã«å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚" }, diff --git a/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json b/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json index 80aaf33596bad..6586019152448 100644 --- a/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json @@ -12,7 +12,7 @@ "message": "Minhas capturas" }, "screenshotInstructions": { - "message": "Arraste ou clique na página para selecionar uma área. Pressione ESC para cancelar." + "message": "Arraste ou clique na página para selecionar uma região. Pressione ESC para cancelar." }, "saveScreenshotSelectedArea": { "message": "Salvar" @@ -41,7 +41,7 @@ } }, "requestErrorTitle": { - "message": "Fora de ordem." + "message": "Com defeito." }, "requestErrorDetails": { "message": "Desculpa! Não pudemos salvar a sua captura de tela. Por favor, tente novamente mais tarde." diff --git a/browser/extensions/screenshots/webextension/_locales/sk/messages.json b/browser/extensions/screenshots/webextension/_locales/sk/messages.json index b03d130267da5..30406d66cd4ab 100644 --- a/browser/extensions/screenshots/webextension/_locales/sk/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/sk/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Nemôžete vytvoriÅ¥ snÃmku obrazovky stránky Firefox Screenshots!" }, + "emptySelectionErrorTitle": { + "message": "Váš výber je prÃliÅ¡ malý" + }, "genericErrorTitle": { "message": "Ups! Služba Firefox Screenshots prestala pracovaÅ¥." }, diff --git a/browser/extensions/screenshots/webextension/_locales/sl/messages.json b/browser/extensions/screenshots/webextension/_locales/sl/messages.json index cfd27cb32f23b..7027897960769 100644 --- a/browser/extensions/screenshots/webextension/_locales/sl/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/sl/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Posnetka strani Firefox Screenshots ni mogoÄe zajeti!" }, + "emptySelectionErrorTitle": { + "message": "VaÅ¡ izbor je premajhen" + }, "genericErrorTitle": { "message": "Uf! Firefox Screenshots se je pokvaril." }, diff --git a/browser/extensions/screenshots/webextension/_locales/sr/messages.json b/browser/extensions/screenshots/webextension/_locales/sr/messages.json index e09ffbe4147eb..ed925c64df93a 100644 --- a/browser/extensions/screenshots/webextension/_locales/sr/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/sr/messages.json @@ -6,7 +6,7 @@ "message": "Mozilla <screenshots-feedback@mozilla.com>" }, "contextMenuLabel": { - "message": "УÑликајте екран" + "message": "УÑликај екран" }, "myShotsLink": { "message": "Моји Ñнимци" @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Ðе можете уÑликати Firefox Screenshots Ñтраницу!" }, + "emptySelectionErrorTitle": { + "message": "Ваша Ñелекција је премала" + }, "genericErrorTitle": { "message": "Ðјој! Firefox Screenshots је пошашавио." }, diff --git a/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json b/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json index b03b54500052f..52351812bd71c 100644 --- a/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Du kan inte ta en skärmbild av sidan Firefox Screenshots!" }, + "emptySelectionErrorTitle": { + "message": "Ditt val är för litet" + }, "genericErrorTitle": { "message": "Oj! Firefox Screenshots verkar inte fungera korrekt." }, diff --git a/browser/extensions/screenshots/webextension/_locales/te/messages.json b/browser/extensions/screenshots/webextension/_locales/te/messages.json index 662cc763ea999..f04aa187ffbf9 100644 --- a/browser/extensions/screenshots/webextension/_locales/te/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/te/messages.json @@ -11,6 +11,9 @@ "saveScreenshotSelectedArea": { "message": "à°à°¦à±à°°à°ªà°°à°šà±" }, + "saveScreenshotVisibleArea": { + "message": "కనిపించే దానిని బదà±à°°à°ªà°°à°šà°‚à°¡à°¿" + }, "saveScreenshotFullPage": { "message": "పూరà±à°¤à°¿ పేజీని à°à°¦à±à°°à°ªà°°à°šà±" }, @@ -23,9 +26,15 @@ "notificationLinkCopiedTitle": { "message": "లంకె కాపీ అయింది" }, + "requestErrorTitle": { + "message": "పని చెయà±à°Ÿ లేదà±." + }, "requestErrorDetails": { "message": "à°•à±à°·à°®à°¿à°šà°‚à°¡à°¿! మీ తెరనౠà°à°¦à±à°°à°ªà°°à°šà°²à±‡à°•à°ªà±‹à°¯à°¾à°‚. దయచేసి కాసేపాగి మళà±à°³à±€ à°ªà±à°°à°¯à°¤à±à°¨à°¿à°‚à°šà°‚à°¡à°¿." }, + "tourHeaderTwo": { + "message": "" + }, "tourHeaderThree": { "message": "మీకౠనచà±à°šà°¿à°¨à°Ÿà±à°Ÿà±à°—à°¾" }, diff --git a/browser/extensions/screenshots/webextension/_locales/uk/messages.json b/browser/extensions/screenshots/webextension/_locales/uk/messages.json index e8cc5f6a3ff24..4451dfd191053 100644 --- a/browser/extensions/screenshots/webextension/_locales/uk/messages.json +++ b/browser/extensions/screenshots/webextension/_locales/uk/messages.json @@ -64,6 +64,9 @@ "selfScreenshotErrorTitle": { "message": "Ви не можете зробити знімок Ñторінки Firefox Screenshots!" }, + "emptySelectionErrorTitle": { + "message": "Обрана облаÑÑ‚ÑŒ Ñ” замалою" + }, "genericErrorTitle": { "message": "Оу! З Firefox Screenshots щоÑÑŒ негаразд." }, diff --git a/browser/extensions/screenshots/webextension/background/auth.js b/browser/extensions/screenshots/webextension/background/auth.js index 168409707c7e1..7bdf7d1754575 100644 --- a/browser/extensions/screenshots/webextension/background/auth.js +++ b/browser/extensions/screenshots/webextension/background/auth.js @@ -12,7 +12,7 @@ this.auth = (function() { let sentryPublicDSN = null; let abTests = {}; - catcher.watchPromise(browser.storage.local.get(["registrationInfo", "abTests"]).then((result) => { + let registrationInfoFetched = catcher.watchPromise(browser.storage.local.get(["registrationInfo", "abTests"]).then((result) => { if (result.abTests) { abTests = result.abTests; } @@ -177,33 +177,37 @@ this.auth = (function() { }; exports.setDeviceInfoFromOldAddon = function(newDeviceInfo) { - if (!(newDeviceInfo.deviceId && newDeviceInfo.secret)) { - throw new Error("Bad deviceInfo"); - } - if (registrationInfo.deviceId === newDeviceInfo.deviceId && - registrationInfo.secret === newDeviceInfo.secret) { - // Probably we already imported the information - return Promise.resolve(false); - } - registrationInfo = { - deviceId: newDeviceInfo.deviceId, - secret: newDeviceInfo.secret, - registered: true - }; - initialized = false; - return browser.storage.local.set({registrationInfo}).then(() => { - return true; + return registrationInfoFetched.then(() => { + if (!(newDeviceInfo.deviceId && newDeviceInfo.secret)) { + throw new Error("Bad deviceInfo"); + } + if (registrationInfo.deviceId === newDeviceInfo.deviceId && + registrationInfo.secret === newDeviceInfo.secret) { + // Probably we already imported the information + return Promise.resolve(false); + } + registrationInfo = { + deviceId: newDeviceInfo.deviceId, + secret: newDeviceInfo.secret, + registered: true + }; + initialized = false; + return browser.storage.local.set({registrationInfo}).then(() => { + return true; + }); }); }; communication.register("getAuthInfo", (sender, ownershipCheck) => { - let info = registrationInfo; - if (info.registered) { - return login({ownershipCheck}).then((result) => { - return {isOwner: result && result.isOwner, deviceId: registrationInfo.deviceId}; - }); - } - return Promise.resolve(info); + return registrationInfoFetched.then(() => { + let info = registrationInfo; + if (info.registered) { + return login({ownershipCheck}).then((result) => { + return {isOwner: result && result.isOwner, deviceId: registrationInfo.deviceId}; + }); + } + return info; + }); }); return exports; diff --git a/browser/extensions/screenshots/webextension/background/senderror.js b/browser/extensions/screenshots/webextension/background/senderror.js index 192a616079706..0983c1dcbf4d7 100644 --- a/browser/extensions/screenshots/webextension/background/senderror.js +++ b/browser/extensions/screenshots/webextension/background/senderror.js @@ -37,6 +37,9 @@ this.senderror = (function() { MY_SHOTS: { title: browser.i18n.getMessage("selfScreenshotErrorTitle") }, + EMPTY_SELECTION: { + title: browser.i18n.getMessage("emptySelectionErrorTitle") + }, generic: { title: browser.i18n.getMessage("genericErrorTitle"), info: browser.i18n.getMessage("genericErrorDetails"), @@ -89,7 +92,7 @@ this.senderror = (function() { return; } if (!Raven.isSetup()) { - Raven.config(dsn).install(); + Raven.config(dsn, {allowSecretKey: true}).install(); } let exception = new Error(e.message); exception.stack = e.multilineStack || e.stack || undefined; @@ -112,7 +115,9 @@ this.senderror = (function() { if (!errorObj.noPopup) { exports.showError(errorObj); } - exports.reportError(errorObj); + if (!errorObj.noReport) { + exports.reportError(errorObj); + } }); return exports; diff --git a/browser/extensions/screenshots/webextension/build/buildSettings.js b/browser/extensions/screenshots/webextension/build/buildSettings.js index 6dfe230ad1a03..ac5d165fd33ec 100644 --- a/browser/extensions/screenshots/webextension/build/buildSettings.js +++ b/browser/extensions/screenshots/webextension/build/buildSettings.js @@ -1,6 +1,7 @@ window.buildSettings = { - defaultSentryDsn: "https://97d8afa496f94764ae255e739b147f4b@sentry.prod.mozaws.net/139", - logLevel: "" || "warn" + defaultSentryDsn: "https://904ccdd4866247c092ae8fc1a4764a63:940d44bdc71d4daea133c19080ccd38d@sentry.prod.mozaws.net/224", + logLevel: "" || "warn", + captureText: ("" === "true") }; null; diff --git a/browser/extensions/screenshots/webextension/build/inlineSelectionCss.js b/browser/extensions/screenshots/webextension/build/inlineSelectionCss.js index fd5088abe8f98..34e78aeed0c8f 100644 --- a/browser/extensions/screenshots/webextension/build/inlineSelectionCss.js +++ b/browser/extensions/screenshots/webextension/build/inlineSelectionCss.js @@ -421,6 +421,9 @@ window.inlineSelectionCss = ` position: absolute; right: 5px; top: 5px; } + html[dir="rtl"] .myshots-all-buttons-container { + left: 5px; + right: inherit; } .myshots-all-buttons-container .spacer { background-color: #c9c9c9; flex: 0 0 1px; diff --git a/browser/extensions/screenshots/webextension/build/shot.js b/browser/extensions/screenshots/webextension/build/shot.js index 7f0e0e5154e90..eee02ed4519b8 100644 --- a/browser/extensions/screenshots/webextension/build/shot.js +++ b/browser/extensions/screenshots/webextension/build/shot.js @@ -493,6 +493,9 @@ class AbstractShot { } delete this._clips[name]; } + delAllClips() { + this._clips = {}; + } biggestClipSortOrder() { let biggest = 0; for (let clipId in this._clips) { diff --git a/browser/extensions/screenshots/webextension/manifest.json b/browser/extensions/screenshots/webextension/manifest.json index f4ff303f510b7..9dae2b5acc59e 100644 --- a/browser/extensions/screenshots/webextension/manifest.json +++ b/browser/extensions/screenshots/webextension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Firefox Screenshots", - "version": "8.1.0", + "version": "9.0.0", "description": "__MSG_addonDescription__", "author": "__MSG_addonAuthorsList__", "homepage_url": "https://github.com/mozilla-services/screenshots", @@ -16,7 +16,7 @@ "16": "icons/icon-16.svg", "32": "icons/icon-32.svg" }, - "default_title": "__MSG_contextMenuLabel__", + "default_title": "Firefox Screenshots", "browser_style": false }, "background": { diff --git a/browser/extensions/screenshots/webextension/onboarding/slides.js b/browser/extensions/screenshots/webextension/onboarding/slides.js index c1eea7b4a0993..f5acbcf4c7ed5 100644 --- a/browser/extensions/screenshots/webextension/onboarding/slides.js +++ b/browser/extensions/screenshots/webextension/onboarding/slides.js @@ -46,6 +46,8 @@ this.slides = (function() { doc.documentElement ); doc.addEventListener("keyup", onKeyUp); + doc.documentElement.dir = browser.i18n.getMessage("@@bidi_dir"); + doc.documentElement.lang = browser.i18n.getMessage("@@ui_locale"); localizeText(doc); activateSlide(doc); resolve(); diff --git a/browser/extensions/screenshots/webextension/selector/shooter.js b/browser/extensions/screenshots/webextension/selector/shooter.js index e3c7e309cf723..cf23709a83410 100644 --- a/browser/extensions/screenshots/webextension/selector/shooter.js +++ b/browser/extensions/screenshots/webextension/selector/shooter.js @@ -1,5 +1,5 @@ /* globals global, documentMetadata, util, uicontrol, ui, catcher */ -/* globals domainFromUrl, randomString */ +/* globals buildSettings, domainFromUrl, randomString */ "use strict"; @@ -67,18 +67,31 @@ this.shooter = (function() { // eslint-disable-line no-unused-vars // isSaving indicates we're aleady in the middle of saving // we use a timeout so in the case of a failure the button will // still start working again + if (Math.floor(selectedPos.left) == Math.floor(selectedPos.right) || + Math.floor(selectedPos.top) == Math.floor(selectedPos.bottom)) { + let exc = new Error("Empty selection"); + exc.popupMessage = "EMPTY_SELECTION"; + exc.noReport = true; + catcher.unhandled(exc); + return; + } const uicontrol = global.uicontrol; let deactivateAfterFinish = true; if (isSaving) { return; } isSaving = setTimeout(() => { + ui.Box.clearSaveDisabled(); isSaving = null; }, 1000); selectedPos = selectedPos.asJson(); - let captureText = util.captureEnclosedText(selectedPos); + let captureText = ""; + if (buildSettings.captureText) { + captureText = util.captureEnclosedText(selectedPos); + } let dataUrl = screenshotPage(selectedPos); if (dataUrl) { + shot.delAllClips(); shot.addClip({ createdDate: Date.now(), image: { diff --git a/browser/extensions/screenshots/webextension/selector/ui.js b/browser/extensions/screenshots/webextension/selector/ui.js index d286ebb0fbfad..8a5d3de69b43c 100644 --- a/browser/extensions/screenshots/webextension/selector/ui.js +++ b/browser/extensions/screenshots/webextension/selector/ui.js @@ -104,6 +104,8 @@ this.ui = (function() { // eslint-disable-line no-unused-vars if (this.addClassName) { this.document.body.className = this.addClassName; } + this.document.documentElement.dir = browser.i18n.getMessage("@@bidi_dir"); + this.document.documentElement.lang = browser.i18n.getMessage("@@ui_locale"); resolve(); }); document.body.appendChild(this.element); @@ -246,6 +248,8 @@ this.ui = (function() { // eslint-disable-line no-unused-vars if (this.addClassName) { this.document.body.className = this.addClassName; } + this.document.documentElement.dir = browser.i18n.getMessage("@@bidi_dir"); + this.document.documentElement.lang = browser.i18n.getMessage("@@ui_locale"); const overlay = this.document.querySelector(".preview-overlay"); overlay.querySelector(".preview-instructions").textContent = browser.i18n.getMessage("screenshotInstructions"); overlay.querySelector(".myshots-link").textContent = browser.i18n.getMessage("myShotsLink"); @@ -537,6 +541,10 @@ this.ui = (function() { // eslint-disable-line no-unused-vars return false; }, + clearSaveDisabled() { + this.save.removeAttribute("disabled"); + }, + el: null, boxTopEl: null, boxLeftEl: null, diff --git a/browser/extensions/screenshots/webextension/selector/uicontrol.js b/browser/extensions/screenshots/webextension/selector/uicontrol.js index c3cd016296582..7b3bb014f6df6 100644 --- a/browser/extensions/screenshots/webextension/selector/uicontrol.js +++ b/browser/extensions/screenshots/webextension/selector/uicontrol.js @@ -376,7 +376,7 @@ this.uicontrol = (function() { ui.Box.remove(); const handler = watchFunction(assertIsTrusted(keyupHandler)); document.addEventListener("keyup", handler); - registeredDocumentHandlers.push({name: "keyup", doc: document, handler}); + registeredDocumentHandlers.push({name: "keyup", doc: document, handler, useCapture: false}); })); }, @@ -874,15 +874,21 @@ this.uicontrol = (function() { window.addEventListener('beforeunload', beforeunloadHandler); } + let mousedownSetOnDocument = false; + function installHandlersOnDocument(docObj) { for (let [eventName, handler] of primedDocumentHandlers) { let watchHandler = watchFunction(handler); - docObj.addEventListener(eventName, watchHandler, eventName !== "keyup"); - registeredDocumentHandlers.push({name: eventName, doc: docObj, watchHandler}); + let useCapture = eventName !== "keyup"; + docObj.addEventListener(eventName, watchHandler, useCapture); + registeredDocumentHandlers.push({name: eventName, doc: docObj, handler: watchHandler, useCapture}); + } + if (!mousedownSetOnDocument) { + let mousedownHandler = primedDocumentHandlers.get("mousedown"); + document.addEventListener("mousedown", mousedownHandler, true); + registeredDocumentHandlers.push({name: "mousedown", doc: document, handler: mousedownHandler, useCapture: true}); + mousedownSetOnDocument = true; } - let mousedownHandler = primedDocumentHandlers.get("mousedown"); - document.addEventListener("mousedown", mousedownHandler, true); - registeredDocumentHandlers.push({name: "mousedown", doc: document, watchHandler: mousedownHandler, useCapture: true}); } function beforeunloadHandler() { -- GitLab